例 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(); } }