クラス定義
概要
Caché では、プロパティ、メソッド、パラメータ (他のクラス言語では定数と呼ぶ) など、よく知られたクラス要素をクラスに含めることができます。また、トリガ、クエリ、インデックスなど、クラスでは通常定義されない項目を含めることもできます。
詳細
クラス定義の構造は以下のとおりです。
Import import_package_list Include include_code IncludeGenerator include_generator_code /// description Class package.shortclassname Extends superclass_list [ class_keyword_list ] { Class_members }
以下は、この指定の説明です。
-
import_package_list (オプション) は、クラスのインポート元にするパッケージの名前を指定します。これは、コンパイラが短いクラス名を解決する方法に影響を与えます。"Caché オブジェクトの使用法" の “パッケージのインポート” を参照してください。
このオプションは、指定する場合には、単一パッケージの名前、または括弧で囲んだ複数パッケージのコンマ区切りリストのいずれかにします。
import_package_list が NULL の場合は、Import 行をクラス定義の先頭に追加しないでください。
Note:クラスがパッケージをインポートする場合、そのクラスは User パッケージを自動的にインポートしません。
インポートされたパッケージは、すべてのスーパークラスから継承されます。サブクラスが 1 つまたは複数のインポート・パッケージを指定する場合、それらはスーパークラスによって定義されているインポート・パッケージに追加されます。
-
include_code (オプション) は、このクラスをコンパイルするときに使用する Caché インクルード (.inc) ファイルを指定します。
このオプションは、指定する場合には、単一インクルード・ファイルの名前 (.inc 拡張子は指定しない)、または括弧で囲んだ複数インクルード・ファイルのコンマ区切りリストのいずれかにします。
include_code が NULL の場合は、クラス定義の先頭の Include 行は省略します。
インクルード・ファイルの概要については、"インターシステムズ・プログラミング・ツールの索引" の “インクルード・ファイル” を参照してください。
インクルード・ファイルは、すべてのスーパークラスから継承されます。サブクラスが 1 つまたは複数のインクルード・ファイルを指定する場合、それらはスーパークラスによって定義されているインクルード・ファイルに追加されます。
-
include_generator_code (オプション) は、このクラスのジェネレータ・メソッドをコンパイルするときに使用する Caché インクルード (.inc) ファイルを指定します。ジェネレータ・メソッドの詳細は、"Caché オブジェクトの使用法" の “メソッド・ジェネレータとトリガ・ジェネレータの定義” を参照してください。
一般的なコメントは、前の項目を参照してください。
include_generator_code が NULL の場合は、IncludeGenerator 行をクラス定義の先頭に追加しないでください。
-
description (オプション) は、クラス・リファレンスでの表示を意図しています。description は複数行で構成することができます。また、HTML フォーマット・タグや、<class>、<method> などの追加のタグを組み込むこともできます。制限と詳細は、"Caché オブジェクトの使用法" の “クラス・ドキュメントの作成” を参照してください。description は既定ではブランクです。
-
package (必須) は、有効なパッケージ名です。これについては、"Caché オブジェクトの使用法" の “パッケージ名” を参照してください。
-
shortclassname (必須) は、有効なクラス名です。package および shortclassname の両方により、完全なクラス名が構成されます。これは長さ制限があります。"Caché オブジェクトの使用法" の “名前付け規約” を参照してください。
-
superclass_list (オプション) は、このクラスの継承元のクラスを指定します。このオプションは、指定する場合には、単一クラスの名前 (.cls 拡張子は指定しない)、または括弧で囲んだ複数クラスのコンマ区切りリストのいずれかにします。
最初のクラスは、プライマリ・スーパークラス と見なされます。後から追加したクラスは、セカンダリ・スーパークラスです。詳細は、"Caché オブジェクトの使用法" の “継承” を参照してください。
superclass_list が NULL の場合、単語 Extends をクラス定義から省きます。
-
class_keyword_list (オプション) は、キーワードのコンマ区切りリストであり、(ほとんどの場合) このクラス定義のコードをコンパイラが生成する方法に影響を与えます。
“クラス・キーワード” のセクションを参照してください。
このリストを省略する場合は、角括弧も省略します。
-
Class_members は、クラス・メンバのゼロ以上の定義です。
概要については、"Caché オブジェクトの使用法" の “クラス・メンバの種類” を参照してください。このリファレンスの他のセクションでは、これらのクラス・メンバの種類の詳細を説明しています。
関連項目
-
Caché オブジェクトの使用法 の "クラスの定義とコンパイル"
このリファレンスでは、ストレージ定義の概要を正式に説明してはいません。ストレージ定義の概要については、"Caché プログラミング入門ガイド" の “永続オブジェクトと Caché SQL” の “ストレージ” を参照してください。さらに、"Caché オブジェクトの使用法" の “永続クラスの定義” の “ストレージ定義とストレージ・クラス” も参照してください。