例 4–22 は、ローカルホスト上のデフォルトネームスペース (root\cimv2) に新しい CIM クラスを作成します。このクラスは 2 つのプロパティを持ち、その 1 つはこのクラスのキープロパティです。続いて、newInstance メソッドを使用して、この新しいクラスのインスタンスを作成します。
{
...
/* ローカルホスト上の root\cimv2 ネームスペースに接続し、
新しいクラス myclass を作成 */
// ローカルホスト上のデフォルトネームスペースに接続
CIMClient cc = new CIMClient();
// 新しい CIMClass オブジェクトを構築
CIMClass cimclass = new CIMClass();
// CIM クラス名を myclass に設定
cimclass.setName("myclass");
// 新しい CIM プロパティオブジェクトを構築
CIMProperty cp = new CIMProperty();
// プロパティ名を設定
cp.setName("keyprop");
// プロパティの型として、あらかじめ定義されている CIM データ型のいずれか 1 つを設定
cp.setType(CIMDatatype.getPredefinedType(CIMDataType.STRING));
// 新しい CIM Qualifier オブジェクトを構築
CIMQualifier cq = new CIMQualifier();
// 修飾子名を設定
cq.setName("key");
// 新しいキー修飾子名をプロパティに追加
cp.addQualfier(cq);
/* 整数プロパティを作成し、10 に初期化 */
// 新しい CIM プロパティオブジェクトを構築
CIMProperty mp = new CIMProperty();
// プロパティ名に myprop を設定
mp.setName("myprop");
// プロパティの型に、あらかじめ定義されている CIM データ型のいずれかを設定
mp.setType(CIMDatatype.getPredefinedType(CIMDataType.SINT16));
// mp を CIMValue に初期化する。CIM Object Manager は、
// 値 10 を持つ新しい整数オブジェクトであるこの CIMValue を、
// 上の mp.setType 文でプロパティに対して指定されている
// CIM データ型 (SINT16) に変換する。CIMValue (Integer 10)
// がプロパティ (SINT16) の CIM データ型で定義される値の
// 範囲内にない場合、CIM Object Manager は例外をスローする。
mp.setValue(new CIMValue(new Integer(10)));
/* myclass にこの新しいプロパティを追加した後、クラスを
作成するために CIM Object Manager を呼び出す。 */
// クラスオブジェクトにキープロパティを追加
cimclass.addProperty(cp);
// クラスオブジェクトに整数プロパティを追加
cimclass.addProperty(mp);
/* CIM Object Manager に接続し、新しいクラスを渡す。 */
cc.createClass(new CIMObjectPath(),cimclass);
// myclass に新しい CIM インスタンスを作成
ci = cc.newInstance();
// クライアント接続が開かれている場合、接続を閉じる。
if(cc != null) {
cc.close();
}
}