Skip to main content

プロパティの定義と使用

プロパティは、あらゆるオブジェクト・クラスで定義できます。ここでは、概要について説明します。

プロパティの種類

オブジェクト・クラスには、以下の種類のプロパティの任意の組み合わせを含めることができます。

  • リテラル・プロパティ。プロパティはリテラル値を保持します。

  • ストリーム・プロパティ。プロパティは、値を保持するグローバルへのアクセスを提供するストリーム・クラスです。この場合、値は極端に大きいデータ (文字列長の制限値より長い) にすることができます。

  • オブジェクト値プロパティ。プロパティはオブジェクト・クラスです。

  • シリアル・プロパティ。プロパティはシリアル・オブジェクト・クラスです。

  • コレクション・プロパティ。プロパティは、値のコレクション (配列またはリスト) へのアクセスを提供する特殊なオブジェクトです。コレクションはリテラル値またはオブジェクトのいずれかで構成できます。

  • リレーションシップ。プロパティは、別のオブジェクト・クラスを参照し、接続された 2 つのクラスに特定の形式の制約を追加する、特殊なオブジェクトです。これらは、永続クラスでのみサポートされます。

プロパティの定義

プロパティをクラス定義に追加するには、以下のいずれかのような要素をクラスに追加します。

Property PropName as Classname;
Property PropName as Classname [ Keywords ] ;
Property PropName as Classname(PARAM1=value,PARAM2=value) [ Keywords ] ;
Property PropName as Classname(PARAM1=value,PARAM2=value) ;

以下はその説明です。

プロパティ・パラメータを含める場合は、パラメータを括弧で囲み、プロパティ・キーワードの前に置きます。プロパティ・キーワードを含める場合は、これを角括弧で囲み、プロパティ定義の末尾に置きます。

プロパティへの値の割り当て

プロパティに値を割り当てるには、非常に簡単なケースでは、以下を実行します。

  1. 含まれているクラスのインスタンスを作成するか、開いて、そのインスタンスへの OREF を取得します。

  2. SET コマンドとドット構文を使用して、次のように値を割り当てます。

     Set oref.PropertyName = value
    

    oref は、最初の手順で返された OREF、PropertyName はこのオブジェクトのプロパティ名、value はこのプロパティに適した値です。

    • これがリテラル・プロパティの場合、value はリテラル値に評価される必要があります。

    • プロパティがオブジェクト (シリアル・オブジェクトを含む) の場合、value は該当するオブジェクト・クラスを参照する OREF である必要があります。

詳細は、コレクション・プロパティリレーションシップストリーム・プロパティで多少異なります。これらはすべて、データにアクセスするための API を提供するオブジェクト・クラスです。以下に、Sample.Person オブジェクトの FavoriteColors プロパティの最初のリスト項目を設定する例を示します。

 set oref.FavoriteColors.GetAt(1)="red"

別の例として、以下ではストリーム・プロパティにデータを書き込みます。

  Do person.Memo.Write("This is some text. ")
  Do person.Memo.Write("This is some more text.")

プロパティ値の参照

プロパティ値を参照するには、非常に簡単なケースでは、以下を実行します。

  1. 含まれているクラスのインスタンスを作成するか、開いて、そのインスタンスへの OREF を取得します。

  2. ドット構文を使用して、プロパティを参照します。

     Set newvariable = oref.PropertyName
    

    oref は、最初の手順で返された OREF、PropertyName はこのオブジェクトのプロパティ名です。

詳細は、コレクション・プロパティリレーションシップストリーム・プロパティで多少異なります。これらはすべて、データにアクセスするための API を提供するオブジェクト・クラスです。以下に、Sample.Person オブジェクトの FavoriteColors プロパティから最初のリスト項目を取得する例を示します。

 Set newvariable=oref.FavoriteColors.GetAt(1)

同様に、以下では、ストリーム・プロパティからコンソールにデータを書き込みます。

  Write person.Memo.Read()

プロパティ・メソッドの使用法

すべてのプロパティは、生成されたメソッドのセットをクラスに追加します。これらのメソッドには、propnameIsValid()propnameLogicalToDisplay()propnameDisplayToLogical()propnameLogicalToOdbc()propnameOdbcToLogical() などが含まれます。propname はプロパティの名前です。メソッドの詳細とリストは、"プロパティ・メソッドの使用法" を参照してください。

InterSystems IRIS はこれらのメソッドを内部的に使用し、ユーザもこれらを直接呼び出すことができます。どの場合も、引数はプロパティ値です。例えば、Sample.Person に論理値 MF (および表示値 MaleFemale) を持つ Gender という名前のプロパティがあるとします。次のように、指定されたレコードに対してこのプロパティの論理値と表示値を表示できます。

MYNAMESPACE>set p=##class(Sample.Person).%OpenId(1)
 
MYNAMESPACE>w p.Gender
M
MYNAMESPACE>w ##class(Sample.Person).GenderLogicalToDisplay(p.Gender)
Male

関連項目

FeedbackOpens in a new tab