shohaku.composer
クラス Composer

java.lang.Object
  拡張shohaku.composer.Composer

public class Composer
extends java.lang.Object

XMLで定義された情報をオブジェクトにマッピングし生成されたオブジェクトを合成する機能を提供します。

このライブラリはXMLで定義された情報を shohaku.composer.CompositeRule の指定するルールに基づき shohaku.composer.Node のツリー構造に変換します。
値型の shohaku.composer.Node は自身と内包する要素に基づきオブジェクトを生成します。
複数のノードを再起的に合成する事により、単純なデータ型の集合から複雑なデータ構造を生成します。
また一度定義されたノードは一定の依存関係を含むものの相対的に独立するため複数の文脈で再利用することができます。

Composer のデフォルト実装には基本型と利用頻度が高いと思われるデータ型、および何でも生成可能な汎用型のノードが提供されています。
また複雑な構造を容易に生成するために反復処理や条件分岐を実現する制御インターフェースが提供されています。
デフォルトノード以外の独自のノードの追加やデフォルトノードとの交換、使用するノードの選択、制約の追加も容易に実現できます。

Composer は汎用的なデータ構造を基に複雑なデータ構造を生成したい場合に有用に設計されています。
解決を求められている問題領域によっては他のAPIの使用を検討してください。

使用例として shohaku.configutils パッケージを参照する事が出来ます。


コンストラクタの概要
Composer()
          デフォルトコンストラクタ。
 
メソッドの概要
 java.lang.ClassLoader getClassLoader()
          解析処理に使用する ClassLoader を返します.
 CompositeContext getCompositeContext()
          解析処理全体のコンテキスト情報を返します。
 CompositeRule getCompositeRule()
          解析中又は直前に使用した構成ルールを返します。
 DocumentContext getDocumentContext()
          解析中又は直前に解析したドキュメントのコンテキスト情報を返します。
 org.xml.sax.DTDHandler getDTDHandler()
          XMLリーダに登録される DTD イベントハンドラを返却します。
 org.xml.sax.EntityResolver getEntityResolver()
          XMLリーダに登録されるエンティティリゾルバを返却します。
 org.xml.sax.ErrorHandler getErrorHandler()
          XMLリーダに登録されるエラーイベントハンドラを返却します。
 javax.xml.parsers.SAXParserFactory getFactory()
          解析処理に使用する SAXParserFactory を返します。
 boolean getFeature(java.lang.String name)
          XMLReader の基本となる実装で要求された特定の機能の値を返します。
 org.apache.commons.logging.Log getLogger()
          解析処理プロセス内で使用するログを返却します。
 javax.xml.parsers.SAXParser getParser()
          解析処理に使用する SAXParser を返します。
 java.lang.Object getProperty(java.lang.String name)
          XMLReader の基本となる実装で要求された特定のプロパティを返します。
 org.xml.sax.XMLReader getReader()
          解析処理に使用する XMLReader を返します。
 Node getRoot()
          直前の解析処理のルートノードを返します。
 org.xml.sax.XMLReader getXMLReader()
          解析処理に使用する XMLReader を返します。
 void initialize()
          このオブジェクトを初期化します。
 boolean isErrThrowable()
          解析処理内でエラーが発生した場合に例外を発生させるかを示すフラグを返却します。
 boolean isNamespaceAware()
          ファクトリが名前空間を認識するパーサを作成するように設定されているかどうかを示します。
 boolean isValidating()
          構文解析時に XML コンテンツを検証するパーサを作成するようにファクトリが設定されているかどうかを示します。
 void parse(CompositeRule rule, org.xml.sax.InputSource input)
          解析処理を実行します。
 void parse(CompositeRule rule, java.io.InputStream inStream)
          解析処理を実行します。
 void setClassLoader(java.lang.ClassLoader classLoader)
          解析処理に使用する ClassLoader を設定します.
 void setDTDHandler(org.xml.sax.DTDHandler dtdHandler)
          XMLリーダに DTD イベントハンドラの登録します。
 void setEntityResolver(org.xml.sax.EntityResolver resolver)
          XMLリーダにエンティティリゾルバの登録します。
 void setErrorHandler(org.xml.sax.ErrorHandler errorHandler)
          XMLリーダにエラーイベントハンドラの登録します。
 void setErrThrowable(boolean errThrowable)
          解析処理内でエラーが発生した場合に例外を発生させるかを示すフラグを格納します。
 void setFeature(java.lang.String name, boolean value)
          XMLReader の基本となる実装に特定の機能の値を設定します。
 void setLogger(org.apache.commons.logging.Log log)
          解析処理プロセス内で使用するログを格納します。
 void setNamespaceAware(boolean namespaceAware)
          ファクトリで作成されたパーサが XML 名前空間をサポートするように指定します。
 void setProperty(java.lang.String name, java.lang.Object value)
          XMLReader の基本となる実装に特定のプロパティを設定します。
 void setValidating(boolean validating)
          構文解析時にドキュメントの妥当性を検証するように指定します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Composer

public Composer()
デフォルトコンストラクタ。

メソッドの詳細

initialize

public void initialize()
このオブジェクトを初期化します。


parse

public void parse(CompositeRule rule,
                  java.io.InputStream inStream)
解析処理を実行します。

パラメータ:
rule - 構成ルール
inStream - XMLデータ入力ストリーム
例外:
CompositeException - 構成する情報に何らかの誤りが在る場合発生します。

parse

public void parse(CompositeRule rule,
                  org.xml.sax.InputSource input)
解析処理を実行します。

パラメータ:
rule - 構成ルール
input - XMLデータソース
例外:
CompositeException - 構成する情報に何らかの誤りが在る場合発生します。

getLogger

public org.apache.commons.logging.Log getLogger()
解析処理プロセス内で使用するログを返却します。

戻り値:
ログ

setLogger

public void setLogger(org.apache.commons.logging.Log log)
解析処理プロセス内で使用するログを格納します。

パラメータ:
log - ログ

getFactory

public javax.xml.parsers.SAXParserFactory getFactory()
解析処理に使用する SAXParserFactory を返します。
生成に失敗した場合 null が返ります。

戻り値:
解析処理に使用する SAXParserFactory

getParser

public javax.xml.parsers.SAXParser getParser()
解析処理に使用する SAXParser を返します。
生成に失敗した場合 null が返ります。

戻り値:
解析処理に使用する SAXParser

getReader

public org.xml.sax.XMLReader getReader()
解析処理に使用する XMLReader を返します。
生成に失敗した場合 null が返ります。

戻り値:
解析処理に使用する XMLReader

getXMLReader

public org.xml.sax.XMLReader getXMLReader()
                                   throws org.xml.sax.SAXException
解析処理に使用する XMLReader を返します。
生成に失敗した場合 SAXException が発生します。

戻り値:
解析処理に使用する XMLReader
例外:
org.xml.sax.SAXException - リーダの生成に失敗した場合発生します。

getProperty

public java.lang.Object getProperty(java.lang.String name)
                             throws org.xml.sax.SAXNotRecognizedException,
                                    org.xml.sax.SAXNotSupportedException
XMLReader の基本となる実装で要求された特定のプロパティを返します。

パラメータ:
name - 取り出されるプロパティの名前
戻り値:
要求されたプロパティの値
例外:
org.xml.sax.SAXNotRecognizedException - 基本となる XMLReader がプロパティ名を認識しない場合
org.xml.sax.SAXNotSupportedException - 基本となる XMLReader はプロパティ名を認識するが、そのプロパティをサポートしない場合
関連項目:
SAXParser.getProperty(java.lang.String)

setProperty

public void setProperty(java.lang.String name,
                        java.lang.Object value)
                 throws org.xml.sax.SAXNotRecognizedException,
                        org.xml.sax.SAXNotSupportedException
XMLReader の基本となる実装に特定のプロパティを設定します。

パラメータ:
name - 設定されるプロパティの名前
value - 設定されるプロパティの値
例外:
org.xml.sax.SAXNotRecognizedException - 基本となる XMLReader がプロパティ名を認識しない場合
org.xml.sax.SAXNotSupportedException - 基本となる XMLReader はプロパティ名を認識するが、そのプロパティをサポートしない場合
関連項目:
SAXParser.setProperty(java.lang.String, java.lang.Object)

getFeature

public boolean getFeature(java.lang.String name)
                   throws javax.xml.parsers.ParserConfigurationException,
                          org.xml.sax.SAXNotRecognizedException,
                          org.xml.sax.SAXNotSupportedException
XMLReader の基本となる実装で要求された特定の機能の値を返します。

パラメータ:
name - 取り出される機能の名前
戻り値:
要求された機能の値
例外:
javax.xml.parsers.ParserConfigurationException - 要求された構成を満たすパーサを生成できない場合
org.xml.sax.SAXNotRecognizedException - 基本となる XMLReader が機能名を認識しない場合
org.xml.sax.SAXNotSupportedException - 基本となる XMLReader は機能名を認識するが、その機能をサポートしない場合
関連項目:
SAXParserFactory.getFeature(java.lang.String)

setFeature

public void setFeature(java.lang.String name,
                       boolean value)
                throws javax.xml.parsers.ParserConfigurationException,
                       org.xml.sax.SAXNotRecognizedException,
                       org.xml.sax.SAXNotSupportedException
XMLReader の基本となる実装に特定の機能の値を設定します。

パラメータ:
name - 設定される機能の名前
value - 設定される機能の値
例外:
javax.xml.parsers.ParserConfigurationException - 要求された構成を満たすパーサを生成できない場合
org.xml.sax.SAXNotRecognizedException - 基本となる XMLReader が機能名を認識しない場合
org.xml.sax.SAXNotSupportedException - 基本となる XMLReader は機能名を認識するが、その機能をサポートしない場合
関連項目:
SAXParserFactory.setFeature(java.lang.String, boolean)

setEntityResolver

public void setEntityResolver(org.xml.sax.EntityResolver resolver)
XMLリーダにエンティティリゾルバの登録します。
登録されない場合はデフォルトのエンティティリゾルバを使用します。

パラメータ:
resolver - エンティティリゾルバ
関連項目:
XMLReader.setEntityResolver(org.xml.sax.EntityResolver)

getEntityResolver

public org.xml.sax.EntityResolver getEntityResolver()
XMLリーダに登録されるエンティティリゾルバを返却します。 登録されない場合はデフォルトのエンティティリゾルバを返却します。

戻り値:
エンティティリゾルバ
関連項目:
XMLReader.getEntityResolver()

setDTDHandler

public void setDTDHandler(org.xml.sax.DTDHandler dtdHandler)
XMLリーダに DTD イベントハンドラの登録します。
登録されない場合はデフォルトの DTD イベントハンドラを使用します。

パラメータ:
dtdHandler - DTD イベントハンドラ
関連項目:
XMLReader.setDTDHandler(org.xml.sax.DTDHandler)

getDTDHandler

public org.xml.sax.DTDHandler getDTDHandler()
XMLリーダに登録される DTD イベントハンドラを返却します。 登録されない場合はデフォルトの DTD イベントハンドラを返却します。

戻り値:
DTD イベントハンドラ
関連項目:
XMLReader.getDTDHandler()

setErrorHandler

public void setErrorHandler(org.xml.sax.ErrorHandler errorHandler)
XMLリーダにエラーイベントハンドラの登録します。
登録されない場合はデフォルトのエラーイベントハンドラを使用します。

パラメータ:
errorHandler - エラーイベントハンドラ
関連項目:
XMLReader.setErrorHandler(org.xml.sax.ErrorHandler)

getErrorHandler

public org.xml.sax.ErrorHandler getErrorHandler()
XMLリーダに登録されるエラーイベントハンドラを返却します。 登録されない場合はデフォルトのエラーイベントハンドラを返却します。

戻り値:
エラーイベントハンドラ
関連項目:
XMLReader.getErrorHandler()

isValidating

public boolean isValidating()
構文解析時に XML コンテンツを検証するパーサを作成するようにファクトリが設定されているかどうかを示します。

戻り値:
構文解析時にドキュメントの妥当性を検証する場合は true、そうでない場合は false
関連項目:
SAXParserFactory.isValidating()

setValidating

public void setValidating(boolean validating)
構文解析時にドキュメントの妥当性を検証するように指定します。デフォルトでは、この値は false に設定されます。

パラメータ:
validating - 構文解析時にドキュメントの妥当性を検証する場合は true、そうでない場合は false
関連項目:
SAXParserFactory.setValidating(boolean)

isNamespaceAware

public boolean isNamespaceAware()
ファクトリが名前空間を認識するパーサを作成するように設定されているかどうかを示します。

戻り値:
名前空間を認識するパーサを作成するように設定されている場合は true、そうでない場合は false
関連項目:
SAXParserFactory.isNamespaceAware()

setNamespaceAware

public void setNamespaceAware(boolean namespaceAware)
ファクトリで作成されたパーサが XML 名前空間をサポートするように指定します。デフォルトでは、この値は false に設定されます。

パラメータ:
namespaceAware - 構文解析時にドキュメントの妥当性を検証する場合は true、そうでない場合は false
関連項目:
SAXParserFactory.setNamespaceAware(boolean)

getClassLoader

public java.lang.ClassLoader getClassLoader()
解析処理に使用する ClassLoader を返します.

戻り値:
解析処理に使用する ClassLoader

setClassLoader

public void setClassLoader(java.lang.ClassLoader classLoader)
解析処理に使用する ClassLoader を設定します.

パラメータ:
classLoader - 解析処理に使用する ClassLoader

isErrThrowable

public boolean isErrThrowable()
解析処理内でエラーが発生した場合に例外を発生させるかを示すフラグを返却します。

戻り値:
true の場合は解析処理内でエラーが発生した場合に例外を発生させる

setErrThrowable

public void setErrThrowable(boolean errThrowable)
解析処理内でエラーが発生した場合に例外を発生させるかを示すフラグを格納します。デフォルトでは、この値は false に設定されます。

パラメータ:
errThrowable - true の場合は解析処理内でエラーが発生した場合に例外を発生させる

getCompositeContext

public CompositeContext getCompositeContext()
解析処理全体のコンテキスト情報を返します。

戻り値:
解析処理全体のコンテキスト情報

getDocumentContext

public DocumentContext getDocumentContext()
解析中又は直前に解析したドキュメントのコンテキスト情報を返します。

戻り値:
解析中又は直前に解析したドキュメントのコンテキスト情報

getCompositeRule

public CompositeRule getCompositeRule()
解析中又は直前に使用した構成ルールを返します。

戻り値:
解析中又は直前に使用した構成ルール

getRoot

public Node getRoot()
直前の解析処理のルートノードを返します。

戻り値:
直前の解析処理のルートノード