クラスへのプロジェクションの追加
この章では、クラス定義にプロジェクション定義を追加する方法を説明します。
プロジェクション定義では、クラス定義がコンパイルされたとき、または削除されたときに、Caché クラス・コンパイラが指定された操作を実行するように指示します。プロジェクションは、(%Projection.AbstractProjectionOpens in a new tab クラスから派生した) プロジェクション・クラスの名前を定義します。プロジェクション・クラスは (クラス定義の削除か、クラスの再コンパイルのいずれかによる)、a) クラスのコンパイル終了時と、b) クラス定義の削除時に呼び出されるメソッドを実装します。
クラスには、任意の数のプロジェクション定義を指定できます。これらのすべてのアクションは、クラスがコンパイルされるときに呼び出されます (呼び出される順序は定義されていません)。
Caché には、Java や MV などからクラスにアクセスするためのクライアント・コードを生成する、事前定義されたプロジェクション・クラスが含まれています。各クラスのパラメータの定義については、クラス・リファレンス内のクラスを参照してください。
C++ 関連クラスを生成するには、Tools > Generate C++ Projection または cpp_generator コマンド行インタフェースを使用します。詳細は、"Caché での C++ の使用法" の "C++ ジェネレータの使用法" の章を参照してください。
クラス | 説明 |
---|---|
%Projection.JavaOpens in a new tab | Java からのクラスへのアクセスを可能にする、Java クライアント・クラスを生成します。 |
%Projection.Monitor | このクラスを、Caché モニタで使用するルーチンとして登録します。メタデータが Monitor.Application、Monitor.Alert、Monitor.Item、および Monitor.ItemGroup に書き込まれます。Monitor.Sample という新規の永続クラスが作成されます。 |
%Projection.MVOpens in a new tab | MV からクラスへのアクセスを可能にする MV クラスを生成します。 |
%Projection.StudioDocumentOpens in a new tab | このクラスをスタジオで使用するルーチンとして登録します。 |
%Studio.Extension.ProjectionOpens in a new tab | XData 'メニュー' ブロックをメニュー・テーブルに投影します。 |
%ZEN.Object.Projection | %ZEN.Component.objectOpens in a new tab クラスで使用されるプロジェクション・クラス。これを使用して、Zen コンポーネントのコンパイル後のアクションを管理します。 |
%ZEN.PageProjectionOpens in a new tab | %ZEN.Component.pageOpens in a new tab で使用されるプロジェクション・クラス。現在は何も実行しません。 |
%ZEN.Template.TemplateProjectionOpens in a new tab | %ZEN.Templage.studioTemplate クラスで使用されるプロジェクション・クラス。 |
また、独自のプロジェクション・クラスを生成し、組み込みのプロジェクション・クラスと同様に、スタジオで使用することもできます。
新規のプロジェクションをクラス定義に追加するには、以下の 2 つの方法があります。
-
クラス・エディタを使用して、クラス定義を編集する方法
-
新規プロジェクション・ウィザードを使用する方法
クラス・エディタを使用してプロジェクションを追加するには、クラス・エディタの空の行にカーソルを置き、プロジェクション宣言を入力します。
また、既存のプロジェクション宣言をコピーして貼り付け、それを編集することもできます。
プロジェクション定義の詳細は、"Caché クラス定義リファレンス" のリファレンス “クラス定義” にある “クラス定義” を参照してください。
新規プロジェクション・ウィザード
新規プロジェクション・ウィザードを起動するには、[クラス]→[追加]→[プロジェクション] を使用して、新規プロジェクションを要求します。または、クラス・インスペクタで右クリックし、[新規プロジェクション] を選択することもできます。
[新規プロジェクション・ウィザード] では、複数のページが表示され、新規プロジェクションに関する情報の入力が促されます。終了するには [完了] を選択します。指定していない情報には既定値が設定されます。
名前および説明ページ
新規プロジェクション・ウィザードで、以下の情報の入力が促されます (これらの値は後で変更できます)。
(必須) 新規プロジェクションの名前。これは、有効なプロジェクション名である必要があります。また、定義済みの既存のプロジェクションと同じ名前を付けることはできません。
(オプション) 新規プロジェクションに関する説明。
プロジェクション・タイプ・ページ
プロジェクトのタイプでは、クラス定義がコンパイルまたは削除されたときのアクションを決定します。定義するプロジェクションの種類を選択できます。
プロジェクション・クラスの名前。このクラスのメソッドは、クラス定義がコンパイル、または削除されるときに実行されます。
プロジェクション・クラスの動作を制御する名前と値の組み合わせです。利用できるパラメータ名のリストは、選択されたプロジェクション・クラスによって決定されます。
新規プロジェクション・ウィザード実行の結果
新規プロジェクション・ウィザードの実行後、クラス・エディタ・ウィンドウは更新され、新規のプロジェクション定義が表示されます。以下に例を示します。
/// This is a Person class
class MyApp.Person extends %Persistent
{
Property Name As %String;
Projection JavaClient As %Projection.Java;
}
このプロジェクション定義を編集するには、クラス・エディタまたはクラス・インスペクタを使用します。