2.2. Jiemamyファクトリ

Jiemamyのモデルインスタンス等、新しいJiemamy関係のインスタンスは JiemamyFactory から取得します。

Jiemamyファクトリは、コンテキストから以下のように取得します。

例 2.2. Jiemamyファクトリの取得

Jiemamy jiemamy = Jiemamy.newInstance();
JiemamyFactory factory = jiemamy.getFactory();
...


ファクトリは、様々なJiemamyモデルのインスタンスを生成します。テーブルやカラム等はJiemamyFactory#newModel(Class)メソッドを 使用して取得します。以下の例では、テーブルを新規に作成しています。

例 2.3. 新しいモデルインスタンスの取得

TableModel tableModel = factory.newModel(TableModel.class);
...


Jiemamyのインスタンスは、一部の例外を除いて new 演算子によって取得しません。ほとんどのインスタンスは、このファクトリから取得します。 java.lang.Classを鋳型情報として、インスタンスを鋳造するイメージです。

また、データ型だけは特殊で、JiemamyFactory#newDataType(DataTypeMold)メソッドを使用します。DataType型のインスタンスは java.lang.Classだけでは生成にあたっての情報が足りないため、代りにDataTypeMold(データ型の鋳型)を使用します。データ型については、Dialect (SQL方言)に依存する為、DataTypeMoldはDialectから取得する必要があります。この件については後述しますが、簡単にDataTypeの生成例だけを 以下に示します。

例 2.4. 新しいDataTypeインスタンスの取得

BuiltinDataTypeMold mold = dialect.findDataTypeMold(DataTypeCategory.VARCHAR);
BuiltinDataType dataType = factory.newDataType(mold);
dataType.getAdapter(SizedDataTypeAdapter.class).setSize(36);
...