カスタマイズ・コードを生成するための Eclipse Modeling Framework Technologies (EMFT) Java Emitter Templates (JET) の作成

ワークベンチによる pureQuery コードの生成時に、EMFT JET テンプレートが使用されます。 このデフォルトの JET 変換を独自のものでオーバーライドできます。

このタスクについて

ワークベンチのデフォルトの JET 変換をオーバーライドして pureQuery コードを生成する場合は、EMFT JET プロジェクトを作成する、テンプレートを作成する、独自の JET 変換を使用することをワークベンチに伝えるという処理が必要です。

重要: JET 変換の入力モデルとして使用するための XML 文書を作成する必要はありません。カスタマイズ pureQuery コードを生成するときに、コードのベースになっているオブジェクトに基づいて、ウィザードによって XML が自動的に作成されます。この XML は一時的に使用されるだけであり、保存されません。
ただし、ウィザードが作成する XML のフォーマットを知っておく必要があります。スキーマについては、com.ibm.datatools.javatool.transform.codegen プラグインを参照してください。 また、そのスキーマに基づいた XML 文書については、以下のサンプルを参照してください。

カスタマイズ・コードを生成するには、オーバーライドされるテンプレートに対応した pureQuery コード生成ウィザードを使用します。 例えば、GenTableBean.jet テンプレートをオーバーライドする場合は、「表からの pureQuery コードの生成」ウィザードを使用してカスタマイズされたコードを生成することができます。

EMFT JET (現在の名称は Model-To-Text JET) については、www.eclipse.org にアクセスしてください。

手順

EMFT JET テンプレートを作成および構成して pureQuery コード用のカスタマイズ・コードを生成するには、以下のようにします。

  1. EMFT JET 変換プロジェクトを作成します。 パッケージ・エクスプローラー内で右クリックし、「新規」>「プロジェクト」を選択します。 「新規プロジェクト」ウィザードで、「EMFT JET 変換」>「EMFT JET 変換プロジェクト」を選択します。
  2. プロジェクトの manifest.mf ファイルを編集します。 このファイルで、pureQuery のデフォルト変換をオーバーライドすることを指定する必要があります。

    DBHelper クラス (com.ibm.datatools.javatool.transform.codegen プラグインに含まれるクラスで、変換に必要なデータベース接続に関する情報を取得する) を使用する場合は、com.ibm.datatools.javatool.transform.codegen プラグインへの従属関係があることをマニフェスト・ファイルで指定する必要があります。 このプラグインに、このクラスに関する文書が含まれています。

    1. プロジェクトの manifest.mf ファイルをダブルクリックします。このファイルが開いて編集できるようになります。
    2. 「拡張」タブをクリックします。
    3. 「すべての拡張」フィールドで、org.eclipse.jet.transform を展開し、次に (transform) を選択します。
    4. 「オーバーライド」フィールドに、com.ibm.datatools.javatool.transform.codegen と入力します。
    5. オプション: 「従属関係」タブをクリックし、必要なプラグインとして com.ibm.datatools.javatool.transform.codegen プラグインを追加します (DBHelper クラスを使用する場合)。
    6. ファイルを保存し、閉じます。
  3. EMFT JET 変換プロジェクト内のファイル dump.jet を削除します。 com.ibm.datatools.javatool.transform.codegen 変換の main.jet ファイルを変換で使用する場合は、main.jet ファイルも削除できます。
  4. EMFT JET 変換プロジェクトの templates ディレクトリーに、com.ibm.datatools.javatool.transform.codegen 変換内のテンプレートをオーバーライドするテンプレートを作成します。 pureQuery のデフォルト・テンプレートの一つをオーバーライドするには、同じ名前のテンプレートを作成します。デフォルト・テンプレートをオーバーライドしない場合、対応する pureQuery コードを生成するときにデフォルト・テンプレートがワークベンチで使用され続けます。

    次の表は、その変換に含まれるテンプレートの一覧です。

    表 1. com.ibm.datatools.javatool.transform.codegen 変換内のテンプレート
    テンプレートの名前 サポート対象 DBMS 説明
    GenProcedureHandler.jet Oracle Oracle データベースに対して実行するストアード・プロシージャーからコードを生成する場合に使用します。
    GenProcedureInlineJunit.jet
    • DB2® for Linux, UNIX, and Windows
    • DB2 for z/OS®
    • Informix® Dynamic Server
    • Oracle
    ストアード・プロシージャーに pureQuery コードを生成」ウィザードで、「インライン・スタイルのテスト・クラスの生成」チェック・ボックスと「JUnit テスト・ケースの生成」チェック・ボックスの両方を選択したときに使用されます。

    対応するストアード・プロシージャーを呼び出すためのインライン・メソッドを含む JUnit テスト・ケースを生成します。

    GenProcedureInlineSample.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    ストアード・プロシージャーに pureQuery コードを生成」ウィザードで、「インライン・スタイルのテスト・クラスの生成」チェック・ボックスを選択したときに使用されます。

    対応するストアード・プロシージャーを呼び出すためのインライン・メソッドを含む Java テスト・クラスを生成します。

    GenProcedureInterface.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    ストアード・プロシージャーに pureQuery コードを生成」ウィザードで、「ストアード・プロシージャーのための Java インターフェースの生成」チェック・ボックスを選択したときに使用されます。

    対応するストアード・プロシージャーを呼び出すためのアノテーション付きメソッドを含む Java インターフェースを生成します。

    GenProcedureInterfaceJunit.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    ストアード・プロシージャーに pureQuery コードを生成」ウィザードで、「ストアード・プロシージャーのための Java インターフ ェースの生成」チェック・ボックス、「ストアード・プロシージャーのための Java インターフェース用のテスト・クラスの生成」チェック・ボックス、および「JUnit テスト・ケースの生成」チェック・ボックスを選択したときに使用されます。

    対応するストアード・プロシージャーを呼び出すためのアノテーション付きメソッドを含む JUnit テスト・ケースを生成します。

    GenProcedureInterfaceTest.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    ストアード・プロシージャーに pureQuery コードを生成」ウィザードで、「ストアード・プロシージャーのための Java インターフェースの生成」チェック・ボックスと「ストアード・プロシージャーのための Java インターフェース用のテスト・クラスの生成」チェック・ボックスの両方を選択したときに使用されます。

    対応するインターフェースのインプリメンテーションをテストするためのテスト・クラスを生成します。

    GenProcedureParmBean.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    ストアード・プロシージャーに pureQuery コードを生成」ウィザードで処理されるストアード・プロシージャーがパラメーターを持つときに使用されます。

    ストアード・プロシージャーのパラメーターを表すプロパティーを含む Bean を生成します。

    GenSampleUtil.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle

    テスト・クラスが実行されるとテスト・クラスによって呼び出される静的メソッドを含むクラスを生成します。これらのメソッドは、テスト・クラスの実行結果をコンソール・ビューに表示します。

    このクラスには、テスト・クラスのためのデータベース接続を確立するコードも含まれます。

    GenSQLBean.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    「SQL ステートメントからの pureQuery コードの生成」ウィザードで「完了」をクリックしたときに使用されます。

    処理されている 1 つまたは複数の SQL ステートメントのタイプに基づいた pureQuery コードが生成されます。

    GenTableBean.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    「表からの pureQuery コードの生成」ウィザードから Bean を生成するときに使用されます。

    表またはビューの列を表すプロパティーを含む Bean を生成します。

    GenTableInlineJunit.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    「表からの pureQuery コードの生成」ウィザードで、「インライン・スタイルのテスト・クラスの生成」チェック・ボックスと「JUnit テスト・ケースの生成」チェック・ボックスの両方を選択したときに使用されます。

    対応するデータベース・オブジェクトにアクセスするためのインライン・メソッドを含む JUnit テスト・ケースを生成します。

    GenTableInlineSample.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    「表からの pureQuery コードの生成」ウィザードで、「インライン・スタイルのテスト・クラスの生成」チェック・ボックスを選択したときに使用されます。

    対応するデータベース・オブジェクトにアクセスするためのインライン・メソッドを含む Java テスト・クラスを生成します。

    GenTableInterface.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    「表からの pureQuery コードの生成」ウィザードで、「表にアノテーション・メソッド・インターフェースを生成」チェック・ボックスを選択したときに使用されます。

    対応するデータベース・オブジェクトにアクセスするためのアノテーション付きメソッドを含む Java インターフェースを生成します。

    GenTableInterfaceJUnit.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    「表からの pureQuery コードの生成」ウィザードで、「表にアノテーション・メソッド・インターフェースを生成」チェック・ボックス、「表にアノテーション・メソッド・インターフェース用のテスト・クラスを生成」チェック・ボックス、および「JUnit テスト・ケースの生成」チェック・ボックスが選択されたときに使用されます。

    対応するインターフェースのインプリメンテーションをテストするための JUnit テスト・ケースを生成します。

    GenTableInterfaceTest.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    「表からの pureQuery コードの生成」ウィザードで、「表に Java インターフェースを生成 (Generate Java interface for table)」チェック・ボックスおよび「表の Java インターフェースにテスト・クラスを生成 (Generate test class for Java interface for table)」チェック・ボックスの両方を選択したときに、使用されます。

    対応するインターフェースのインプリメンテーションをテストするためのテスト・クラスを生成します。

  5. pureQuery 変換の設定ページで、ワークベンチで使用する変換を指定します。
    1. 「ウィンドウ」>「設定」を選択します。
    2. 「データ管理 (Data Management)」 > 「SQL 開発 (SQL Development) > 「pureQuery」 > 「変換」を選択します。
    3. 「変換 ID」フィールドで、EMFT JET 変換プロジェクトの名前を選択します。

次の例は、pureQuery JET テンプレートの入力として使用されるサンプル XML 文書について説明しています。


フィードバック