CIM 修飾子は、CIM クラス、インスタンス、プロパティ、メソッド、またはパラメータの特性を示す要素です。修飾子の属性は、次のとおりです。
データ型
値
名前
MOF (Managed Object Format) 構文では、各 CIM 修飾子は同じ MOF ファイルでそのデータ型を宣言する必要があります。修飾子には、スコープ属性はありません。スコープは、どの CIM 要素がその修飾子を使用できるかを示します。スコープを定義できるのは、修飾子のデータ型宣言内だけです。スコープは、修飾子では変更できません。
次に、CIM 修飾子のデータ型を宣言する MOF 構文を示します。この文は、ブール型 (デフォルト値は false) を使用して修飾子のデータ型 key を定義します。このデータ型が記述できるのは、プロパティと、オブジェクトに対する参照だけです。DisableOverride フレーバは、このキー修飾子がそれらの値を変更できないことを意味します。
Qualifier Key : boolean = false, Scope(property, reference), Flavor(DisableOverride);
次のコード例は、CIM 修飾子の MOF 構文を示します。このサンプル MOF ファイルでは、key と Description はプロパティ test の修飾子です。プロパティのデータ型は、値 a を持つ整数です。
{
[key, Description("test")]
int a
}
例 4–24 のコードセグメントは、CIMQualifier クラスを使用して CIM 要素のベクトル内の CIM 修飾子を識別します。この例は、各 CIM 修飾子ごとにプロパティ名、値、およびデータ型を返します。
修飾子フレーバは、修飾子の使用を制御するフラグです。フレーバは、派生クラスとインスタンスに修飾子を継承できるかどうか、および派生クラスまたはインスタンスが修飾子の本来の値をオーバーライドできるかどうかを指定する規則を記述します。
...
} else if (tableType == QUALIFIER_TABLE) {
CIMQualifier prop = (CIMQualifier)cimElements.elementAt(row);
if (prop != null) {
if (col == nameColumn) {
return prop.getName();
} else if (col == typeColumn) {
CIMValue cv = prop.getValue();
if (cv != null) {
return cv.getType().toString();
} else {
return "NULL"; }
}
...
例 4–25 のコードセグメントは、新しいクラスの CIM 修飾子のリストをそのスーパークラス内の修飾子に設定します。
...
try {
cimSuperClass = cimClient.getClass(new CIMObjectPath(scName));
Vector v = new Vector();
for (Enumeration e = cimSuperClass.getQualifiers().elements();
e.hasMoreElements();) {
CIMQualifier qual = (CIMQualifier)((CIMQualifier)e.nextElement()).clone();
v.addElement(qual);
}
cimClass.setQualifiers(v);
} catch (CIMException exc) {
return;
}
}