shohaku.ginkgo
クラス Ginkgo

java.lang.Object
  拡張shohaku.ginkgo.Ginkgo

public class Ginkgo
extends java.lang.Object

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
 

コンストラクタの詳細

Ginkgo

public Ginkgo()
デフォルトの構成ルールで初期化します。


Ginkgo

public Ginkgo(DocumentCompositeRule docRule)
ドキュメントの構成ルールを指定して初期化します。

パラメータ:
docRule - ドキュメントの構成ルール
メソッドの詳細

parse

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

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

parse

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

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

getSAXDocumentParser

public SAXDocumentParser getSAXDocumentParser()
解析処理に使用するSAXパーサーを返却します。

戻り値:
解析処理に使用するSAXパーサー

getDocument

public Document getDocument()
解析中または直前に解析したドキュメントを返却します。

戻り値:
解析中または直前に解析したドキュメント

getLogger

public shohaku.core.lang.feature.LogFeature getLogger()
解析処理プロセス内で使用するログを返却します。
登録されていない場合は、デフォルトログが返却されます。

戻り値:
ログ

setLogger

public void setLogger(shohaku.core.lang.feature.LogFeature log)
解析処理プロセス内で使用するログを格納します。

パラメータ:
log - ログ

getIOResourceLoader

public shohaku.core.resource.IOResourceLoader getIOResourceLoader()
解析処理に使用するIOリソース生成機能を返却します。
登録されていない場合は、null が返却されます。

戻り値:
IOリソース生成機能

setIOResourceLoader

public void setIOResourceLoader(shohaku.core.resource.IOResourceLoader loader)
解析処理に使用するIOリソース生成機能を格納します。

パラメータ:
loader - IOリソース生成機能

getClassLoader

public java.lang.ClassLoader getClassLoader()
解析処理に使用するクラスローダを返却します.
登録されていない場合は、このクラスのクラスローダが返却されます。

戻り値:
クラスローダ

setClassLoader

public void setClassLoader(java.lang.ClassLoader loader)
解析処理に使用するクラスローダを設定します.

パラメータ:
loader - クラスローダ

isErrThrowable

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

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

setErrThrowable

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

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

getLocale

public java.util.Locale getLocale()
解析処理に使用するロケールを返却します。
登録されていない場合はデフォルトロケールが返却されます。

戻り値:
解析処理に使用するロケール

setLocale

public void setLocale(java.util.Locale locale)
解析処理に使用するロケールを格納します。

パラメータ:
locale - 解析処理に使用するロケール

getDocumentCompositeRule

public DocumentCompositeRule getDocumentCompositeRule()
ドキュメントの構成ルールを返却します。

戻り値:
ドキュメントの構成ルール

setDocumentCompositeRule

public void setDocumentCompositeRule(DocumentCompositeRule docRule)
ドキュメントの構成ルールを格納します。
引数が null の場合は NullPointerException が発生します。

パラメータ:
docRule - ドキュメントの構成ルール

getNodeCompositeRule

public NodeCompositeRule getNodeCompositeRule()
解析処理に使用するノード構成ルールを返却します。

戻り値:
解析処理に使用するノード構成ルール

setNodeCompositeRule

public void setNodeCompositeRule(NodeCompositeRule nodeCompositeRule)
解析処理に使用するノード構成ルールを格納します。
引数が null の場合は NullPointerException が発生します。

パラメータ:
nodeCompositeRule - 解析処理に使用するノード構成ルール

getParentDocument

public Document getParentDocument()
解析処理に使用する親ドキュメントを返却します。

戻り値:
親ドキュメント

setParentDocument

public void setParentDocument(Document parentDocument)
解析処理に使用する親ドキュメントを格納します。

パラメータ:
parentDocument - 親ドキュメント