|
|||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectshohaku.ginkgo.Ginkgo
XMLドキュメントをタグオブジェクトにマッピングし、複雑なオブジェクトグラフを構築する機能を提供します。
XMLドキュメントからのオブジェクトグラフ生成に着目したライブラリです。
このライブラリはXMLで定義された情報を shohaku.ginkgo.NodeCompositeRule の指定するルールに基づき shohaku.ginkgo.TagNode のツリー構造に変換します。
値型の shohaku.ginkgo.TagNode は自身と内包する要素に基づきオブジェクトを生成します。
複数のタグを再起的に合成する事により、単純なデータ型の集合から複雑なグラフ構造を生成します。
また一度定義されたタグは一定の依存関係を含むものの相対的に独立するため複数の文脈で再利用することができます。
具体的には、入れ子のタグやタグの参照を、そのタグ名等の個別の属性ではなく、その生成する値型でマッピングする事により実現しています。
このアプローチの利点は、タグの階層関係や参照関係から、タグ名やタグの実装等の個別の依存関係を無くすことが出来る点です。
その為、タグ名の変更、タグ実装の交換、値の生成プロセスの変更等を既存実装への影響なく行えます。
また属性やテキストは自動的に変換されて、タグのプロパティに格納されるため、宣言のみで多くの機能を実現できます。
属性やテキストに対して式言語が使用できるため、XMLの記載量を少なくする事が出来ます。
デフォルトではOGDL式を使用します(JXEL, OGNL等の他の式言語への拡張も容易です)。
デフォルトのタグ実装として、基本型、コレクション型、ユーティリティ型、コンテキスト制御、オブジェクト生成を行う汎用型のタグ等が提供されています。
また再帰的な構造を容易に生成するために反復処理や条件分岐を実現する制御インターフェースが提供されています。
XMLタグとタグオブジェクトのマッピングは、ルールXMLファイルに定義されるため、タグの関係、制約等を容易にカスタマイズ出来ます。
またタグ属性に対するデフォルト値の指定や別名の指定を定義する事が出来ます。
この機能の応用からデータ構造の再定義や、汎用ノードを基に特殊なノードを定義する事も可能です。
Ginkgo は汎用的なデータ構造を基に複雑なグラフ構造を生成したい場合に有用に設計されています。
単なる XML-Object マッピングとして使用する事も可能ですが、その場合は他のXMLマッピングツールの使用を検討してください。
使用例として shohaku.shoin パッケージを参照する事が出来ます。
コンストラクタの概要 | |
Ginkgo()
デフォルトの構成ルールで初期化します。 |
|
Ginkgo(DocumentCompositeRule docRule)
ドキュメントの構成ルールを指定して初期化します。 |
メソッドの概要 | |
java.lang.ClassLoader |
getClassLoader()
解析処理に使用するクラスローダを返却します. |
Document |
getDocument()
解析中または直前に解析したドキュメントを返却します。 |
DocumentCompositeRule |
getDocumentCompositeRule()
ドキュメントの構成ルールを返却します。 |
shohaku.core.resource.IOResourceLoader |
getIOResourceLoader()
解析処理に使用するIOリソース生成機能を返却します。 |
java.util.Locale |
getLocale()
解析処理に使用するロケールを返却します。 |
shohaku.core.lang.feature.LogFeature |
getLogger()
解析処理プロセス内で使用するログを返却します。 |
NodeCompositeRule |
getNodeCompositeRule()
解析処理に使用するノード構成ルールを返却します。 |
Document |
getParentDocument()
解析処理に使用する親ドキュメントを返却します。 |
SAXDocumentParser |
getSAXDocumentParser()
解析処理に使用するSAXパーサーを返却します。 |
boolean |
isErrThrowable()
解析処理内でエラーが発生した場合に例外を発生させるかを示すフラグを返却します(デフォルトはfalse)。 |
void |
parse(org.xml.sax.InputSource input)
解析処理を実行します。 |
void |
parse(java.io.InputStream inStream)
解析処理を実行します。 |
void |
setClassLoader(java.lang.ClassLoader loader)
解析処理に使用するクラスローダを設定します. |
void |
setDocumentCompositeRule(DocumentCompositeRule docRule)
ドキュメントの構成ルールを格納します。 |
void |
setErrThrowable(boolean errThrowable)
解析処理内でエラーが発生した場合に例外を発生させるかを示すフラグを格納します。 |
void |
setIOResourceLoader(shohaku.core.resource.IOResourceLoader loader)
解析処理に使用するIOリソース生成機能を格納します。 |
void |
setLocale(java.util.Locale locale)
解析処理に使用するロケールを格納します。 |
void |
setLogger(shohaku.core.lang.feature.LogFeature log)
解析処理プロセス内で使用するログを格納します。 |
void |
setNodeCompositeRule(NodeCompositeRule nodeCompositeRule)
解析処理に使用するノード構成ルールを格納します。 |
void |
setParentDocument(Document parentDocument)
解析処理に使用する親ドキュメントを格納します。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public Ginkgo()
public Ginkgo(DocumentCompositeRule docRule)
docRule
- ドキュメントの構成ルールメソッドの詳細 |
public void parse(java.io.InputStream inStream)
inStream
- XMLデータ入力ストリーム
GinkgoException
- 構成する情報に何らかの誤りが在る場合発生します。public void parse(org.xml.sax.InputSource input)
input
- XMLデータソース
GinkgoException
- 構成する情報に何らかの誤りが在る場合発生します。public SAXDocumentParser getSAXDocumentParser()
public Document getDocument()
public shohaku.core.lang.feature.LogFeature getLogger()
public void setLogger(shohaku.core.lang.feature.LogFeature log)
log
- ログpublic shohaku.core.resource.IOResourceLoader getIOResourceLoader()
public void setIOResourceLoader(shohaku.core.resource.IOResourceLoader loader)
loader
- IOリソース生成機能public java.lang.ClassLoader getClassLoader()
public void setClassLoader(java.lang.ClassLoader loader)
loader
- クラスローダpublic boolean isErrThrowable()
public void setErrThrowable(boolean errThrowable)
errThrowable
- true の場合は解析処理内でエラーが発生した場合に例外を発生させるpublic java.util.Locale getLocale()
public void setLocale(java.util.Locale locale)
locale
- 解析処理に使用するロケールpublic DocumentCompositeRule getDocumentCompositeRule()
public void setDocumentCompositeRule(DocumentCompositeRule docRule)
docRule
- ドキュメントの構成ルールpublic NodeCompositeRule getNodeCompositeRule()
public void setNodeCompositeRule(NodeCompositeRule nodeCompositeRule)
nodeCompositeRule
- 解析処理に使用するノード構成ルールpublic Document getParentDocument()
public void setParentDocument(Document parentDocument)
parentDocument
- 親ドキュメント
|
|||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |