Solaris WBEM 開発ガイド

インスタンスの削除

インスタンスの削除には、deleteInstance メソッドを使用します。


例 4–6 インスタンスの削除

この例は、次のことを実行します。

 
import java.rmi.*;
import java.util.Enumeration;

import javax.wbem.cim.CIMClass;
import javax.wbem.cim.CIMException;
import javax.wbem.cim.CIMInstance;
import javax.wbem.cim.CIMNameSpace;
import javax.wbem.cim.CIMObjectPath;

import javax.wbem.client.CIMClient;
import javax.wbem.client.PasswordCredential;
import javax.wbem.client.UserPrincipal;

/** 
 * 指定のクラスのインスタンスをすべて返す。
 * この例は、ホスト名 (args[0])、ユーザー名 (args[1])、パスワード
 * (args[2])、名前空間 (args[3])、およびクラス名 (args[4]) という 
 * 5 つの引数を取る。指定のクラス名のインスタンスをすべて削除
 * する。指定のユーザー名は、指定の名前空間に対する書き込み権
 * を持つ必要がある
 */
public class DeleteInstances {
    public static void main(String args[]) throws CIMException {
        CIMClient cc = null;
        // 5 つの引数が指定されない場合は使用法を表示して終了
        if (args.length != 5) {
           System.out.println("Usage: DeleteInstances host username " +
                              "password namespace classname ");
           System.exit(1);
        }
        try {
            // args[0] にはホスト名、args[3] には名前空間が含まれる。
            // 指定のホスト上の指定の名前空間を指す
            // CIMNameSpace (cns) を作成する
            CIMNameSpace cns = new CIMNameSpace(args[0], args[3]);

            // args[1] と args[2] にはユーザー名とパスワードが含まれる。
            // このユーザー名で UserPrincipal (up) を作成し、
            // このパスワードで PasswordCredential を作成する
            UserPrincipal up = new UserPrincipal(args[1]);
            PasswordCredential pc = new PasswordCredential(args[2]);

            // CIM オブジェクトマネージャに接続し、作成した
            // CIMNamespace、UserPrincipal、および 
            // PasswordCredential オブジェクトを渡す
            cc = new CIMClient(cns, up, pc);

            // クラス名 (args[4]) を取得し、CIMObjectPath を作成する
            CIMObjectPath cop = new CIMObjectPath(args[4]);

            // クラスおよびその全サブクラスのすべてのインスタンス
            // オブジェクトパスの列挙を取得する。インスタンス
            // オブジェクトパスは、CIM オブジェクトマネージャが
            // インスタンスを検索するときに使用する参照
            Enumeration e = cc.enumerateInstanceNames(cop);

            // 列挙内のインスタンスオブジェクトパスを反復する。
            // オブジェクトを構築し、列挙された各インスタンスの
            // オブジェクトパスを格納し、このインスタンスを出力
            // して、削除する
            while (e.hasMoreElements()) {
                CIMObjectPath  op = (CIMObjectPath)e.nextElement();
                System.out.println(op);
                cc.deleteInstance(op);
            } // while の終了 
        } catch (Exception e) {
        // 例外が発生した場合はそれを出力する
        System.out.println("Exception: "+e);
        } // catch の終了

        // セッションの終了
        if (cc != null) {
            cc.close();
        }
    }
}