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