クラス定義でのパラメータの構文
概要
パラメータ定義では、特定のクラスのすべてのオブジェクトで使用できる定数値を定義します。このクラス・パラメータの値は、クラス定義を作成するときに (またはコンパイル前の任意の時点で) 設定できます。既定では、各パラメータの値は NULL 文字列になりますが、パラメータ定義の一環として NULL 以外の値を指定することもできます。コンパイル時に、パラメータの値はクラスのすべてのインスタンスに対して構築されます。わずかな例外はありますが、この値を実行時に変更することはできません。
詳細
パラメータ定義の構造は以下のとおりです。
/// description
Parameter name As parameter_type [ keyword_list ] = value ;
以下は、この指定の説明です。
-
description (オプション) は、クラス・リファレンスでの表示を意図しています。description は既定ではブランクです。 "クラス・ドキュメントの作成" を参照してください。
-
name (必須) はパラメータの名前です。これは、有効なクラス・メンバ名で、かつ他のクラス・メンバ名と重複しないものである必要があります。
-
parameter_type (オプション) は、パラメータのユーザ・インタフェース・タイプを指定し、スタジオによってインスペクタ内でのパラメータの入力検証に使用されます。
これはクラス名ではありません。次のセクションを参照してください。ほとんどの場合、コンパイラはこのキーワードを無視します。
parameter_type を省略する場合は、単語 As も省略します。
-
value (オプション) は、パラメータの値を指定します。value を省略する場合は、等号 = も省略します。
-
keyword_list (オプション) は、さらにパラメータを定義するキーワードのコンマ区切りリストです。
すべてのキーワードは、"パラメータの構文とキーワード" を参照してください。
このリストを省略する場合は角括弧も省略します。
パラメータに許可されるタイプ
parameter_type オプションは、以下のいずれかの値のとなります。
-
BOOLEAN — True (1) または False (0)
-
CLASSNAME — 有効なクラス名
-
COSCODE — ObjectScript コード
-
COSEXPRESSION — 有効な ObjectScript 式。
パラメータのタイプが COSEXPRESSION である場合は、式は実行時に評価されます。
この値は、パラメータの Type キーワードのその他ほとんどの値とは異なり、コンパイラに影響を与えます。
-
COSIDENTIFIER — 有効な ObjectScript 識別子
-
INTEGER — 整数
-
SQL — SQL 文
-
SQLIDENTIFIER — 有効な SQL 識別子
-
STRING — 文字列値
-
TEXT — 複数行のテキスト値
-
CONFIGVALUE — クラス定義の範囲外で変更可能なパラメータ。この値は、パラメータの Type キーワードのその他ほとんどの値とは異なり、コンパイラに影響を与えます。パラメータのタイプが CONFIGVALUE の場合は、$SYSTEM.OBJ.UpdateConfigParam() を使用してパラメータを変更できます。例えば、以下のようにして、MyApp.MyClass クラス内のパラメータ MYPARM の値を新しく 42 に変更します。
set sc=$system.OBJ.UpdateConfigParam("MyApp.MyClass","MYPARM",42)
$SYSTEM.OBJ.UpdateConfigParam() は、新しいプロセスで使用される生成済みのクラス記述子に影響しますが、クラス定義には影響しません。クラスをリコンパイルすると、InterSystems IRIS により、クラス記述子が再生成され、クラス定義に記載されたようにこのパラメータの値を使用します (そのため、$SYSTEM.OBJ.UpdateConfigParam() によって行った変更は上書きされます)。
parameter_type は省略することもできます。その場合は、インスペクタによってそのパラメータに任意の値を使用できるようになります。
例
/// This is the name of our web service.
Parameter SERVICENAME = "SOAPDemo" ;