Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

クラスへのプロパティの追加

この章では、クラス定義にプロパティを追加する方法について説明します。

オブジェクトのデータや状態は、プロパティに格納されます。クラス定義には、複数のプロパティ定義が含まれています (プロパティ定義が含まれていないこともあります)。

新規のプロパティをクラスに追加するには、以下の 2 つの方法があります。

  • クラス・エディタでプロパティをクラス定義に追加する方法

  • 新規プロパティ・ウィザードを使用する方法

クラス・エディタを使用してプロパティを追加するには、クラス・エディタの空の行にカーソルを置き、プロパティ宣言を入力します。

Class MyApp.Person Extends %Persistent 
{
Property Name As %String;
Property Title As %String;
}

また、既存のプロパティ宣言をコピーして新しい場所に貼り付け、それを編集することもできます。

プロパティ定義の詳細は、"Caché クラス定義リファレンス" のリファレンス “クラス定義” にある “クラス定義” を参照してください。

新規プロパティ・ウィザード

新規プロパティ・ウィザードを開くには、[クラス]→[追加]→[プロパティ] を選択します。または、クラス・インスペクタで右クリックして [追加]→[プロパティ] を選択するか、プロパティのみが表示されている場合は (プロパティは左列の先頭にあります)、右クリックして [新規プロパティ] を選択するか、ツールバーから [新規プロパティ] アイコン generated description: newpropertyicon を選択することもできます。

新規プロパティ・ウィザードでは、情報の入力が促されます。[完了] ボタンはいつでも選択できます。指定していない情報に対しては既定値が設定されます。

名前および説明ページ

新規プロパティ・ウィザードでは、以下の情報の入力が促されます (これらの値は後で変更できます)。

プロパティ名

(必須) 新規プロパティの名前。これは、有効なプロパティ名である必要があります。また、定義済みの既存のプロパティと同じ名前を付けることはできません。プロパティ名に使用できる句読点は、ドット (.) と先頭のパーセント記号 (%) だけです。

名前の概要は、“Caché オブジェクトの使用法” の “Caché クラス” の章を参照してください。

説明

(オプション) 新規プロパティに関する説明。この説明は、クラス・ドキュメントがオンライン・クラス・ライブラリ・ドキュメントに表示されるときに使用されます。

説明には、HTML フォーマット・タグを記述することもできます。詳細は、"Caché オブジェクトの使用法" の “クラスの定義とコンパイル” の章の “クラス・ドキュメントでの HTML マークアップの使用” を参照してください。

プロパティ・タイプ・ページ

新規プロパティ・ウィザードでは、プロパティのタイプ (単一値、コレクション、ストリーム、またはリレーションシップ) を選択するように促されます。データ型などの属性を追加することで、これらの選択をさらに詳細に指定できます。

単一値

単一値プロパティは、単独の値が含まれます。単一値プロパティは、関連するタイプを持ちます。このタイプは、Caché クラスの名前です。使用されているクラスのタイプがデータ型クラスの場合、そのプロパティは単純なリテラル・プロパティです。永続クラスの場合、そのプロパティはそのクラスのインスタンスに対する参照です。シリアル・クラスの場合、そのプロパティは埋め込みオブジェクトを表します。

クラス名は直接入力するか、[参照] ボタンを使用して、ストリームを含む利用できるクラスのリストから選択することもできます。

Caché で用意されている基本的なデータ型クラスの詳細は、"Caché オブジェクトの使用法" の "データ型" の章を参照してください。

コレクション

コレクション・プロパティには、複数の値が含まれます。コレクション・タイプには、リスト (単純に並べられたリスト) と配列 (キー値と関連する要素との単純なディクショナリ) の 2 つがあります。単一値プロパティと同様、コレクション・プロパティにもデータ型があります。この場合、データ型では、コレクション (集合) に含まれる要素のタイプを指定します。

リレーションシップ

リレーションシップ・プロパティは、2 つのオブジェクト間の関係を定義します。リレーションシップの詳細は、このドキュメントの “クラスへのリレーションシップの追加” の章を参照してください。

プロパティの特性ページ

新規のプロパティを、永続またはシリアル・オブジェクトのクラス定義に追加する場合、新規プロパティ・ウィザードでは、さらに特性を指定する必要があります。これには、以下のものがあります。

必須

(オプション) 永続クラス、またはシリアル・クラスに唯一関連します。このプロパティが必須であることを指定します (SQL 専門用語で NOT NULL)。永続またはシリアル・オブジェクトの場合、必須プロパティには必ず値を指定する必要があります。値を指定しないと、オブジェクトの保存に失敗します。

インデックス

(オプション) 永続クラスに唯一関連します。このプロパティに基づいてインデックスを作成することを指定します。これは、このフィールドに基づいてインデックスを作成するのと同じです。

ユニーク

(オプション) 永続クラスに唯一関連します。このプロパティの値が、このクラスのエクステント・オブジェクト (つまり、インスタンスとサブクラスを含むすべてのオブジェクト) 内で一意であることを指定します。これは、このフィールドに基づいて一意のインデックスを作成するのと同じです。

計算

(オプション) オブジェクト・インスタンスが作成されるとき、計算プロパティには、メモリ内ストレージが割り当てられません。その代わり、このプロパティにアクセサ (Get、または Set) メソッドを指定する必要があります。このオプションを選択した場合、新規プロパティ・ウィザードでは、空の Get アクセサ・メソッドを生成できます。

SQL フィールド名

(オプション) 永続クラスの場合、このプロパティに対応する SQL フィールドに使用する名前を指定します。既定では (このフィールドが空白の場合)、SQL フィールド名はプロパティ名と同じになります。プロパティ名と異なるフィールド名を使用する場合、またはプロパティ名が有効な SQL 識別子でない場合は、SQL フィールド名を指定します。

データ型パラメータ・ページ

すべてのプロパティには、プロパティのタイプによって決定されたパラメータ値のリストがあります。これらのパラメータの値は、プロパティの振る舞いを指定します。新規プロパティ・ウィザードの [プロパティ・パラメータ] のページに表示された表を使用すると、特定のパラメータの値を指定できます。

プロパティ・アクセサ・ページ

対応するオーバーライド・チェック・ボックスにチェックを付けると、プロパティに対する Set メソッド (プロパティ値を設定するメソッド) と Get メソッド (プロパティ値を取得するメソッド) をオーバーライドできます。このオプションのいずれかを選択すると、空の Set メソッド、または Get メソッドが作成されます。メソッドの内容は、後で入力します。

新規プロパティ・ウィザード実行の結果

新規プロパティ・ウィザードの実行後、クラス・エディタ・ウィンドウは更新され、新規のプロパティ定義が表示されます。例えば、以下のように表示されます。

/// This is a Person class
Class MyApp.Person extends %Persistent
{
Property Name As %String;
}

このプロパティをさらに変更する場合は、クラス・エディタ、またはクラス・インスペクタを使用します。

FeedbackOpens in a new tab