Sun WBEM SDK 開発ガイド

例 — CIM クラスの作成

例 4–22 は、ローカルホスト上のデフォルトネームスペース (root\cimv2) に新しい CIM クラスを作成します。このクラスは 2 つのプロパティを持ち、その 1 つはこのクラスのキープロパティです。続いて、newInstance メソッドを使用して、この新しいクラスのインスタンスを作成します。


例 4–22 CIM クラスの作成 (CIMClass)

{
...
    /* ローカルホスト上の 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();
    }
}