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