例 4–7 は、クライアントアプリケーションを CIM Object Manager に接続し、次に示すインタフェースを使用してクラスのインスタンスをすべて削除します。
CIMObjectPath – 削除されるオブジェクトの CIM オブジェクトパスを含むオブジェクトを構築する
enumInstance – インスタンスおよびそのサブクラスのすべてのインスタンスを取得する
deleteInstance – 各インスタンスを削除する
import java.rmi.*;
import com.sun.wbem.client.CIMClient;
import com.sun.wbem.cim.CIMInstance;
import com.sun.wbem.cim.CIMValue;
import com.sun.wbem.cim.CIMProperty;
import com.sun.wbem.cim.CIMNameSpace;
import com.sun.wbem.cim.CIMObjectPath;
import com.sun.wbem.cim.CIMClass;
import com.sun.wbem.cim.CIMException;
import java.util.Enumeration;
/**
* このプログラム例では、必須の 4 つのコマンド行引数を受け取り、
* 指定されたクラスとそのサブクラスのすべてのインスタンスを削除する。
* このプログラムでは、指定されたネームスペースへの書き込みアクセス権
* を持つアカウントのユーザー名とパスワードを指定する必要がある
* /
public class DeleteInstances {
public static void main(String args[]) throws CIMException {
// CIMClient クラスのインスタンスを初期化する
CIMClient cc = null;
// 4 つのコマンド引数が必要。すべてが入力されない場合は、コマンド文字列を出力する
if(args.length != 4) {
System.out.println("Usage: DeleteClass host className username password");
System.exit(1);
}
try {
/**
* ネームスペースオブジェクト (cns) を作成する。これには、コマンド行から
* 入力されたホスト名 (args[0]) が格納される。
*/
CIMNameSpace cns = new CIMNameSpace(args[0]);
/**
* CIM Object Manager に接続し、ネームスペース
* オブジェクト (cns) と、コマンド行から入力されたユーザー名
* (args[2]) とパスワード (args[3]) を渡す
*/
cc = new CIMClient(cns, args[2], args[3]);
/**
* 削除するクラスの CIM オブジェクトパス (コマンドから入力された
* args[1] ) を持つオブジェクトを構築する。
*/
CIMObjectPath cop = new CIMObjectPath(args[1]);
/**
* クラスとそのクラスのすべてのサブクラスのインスタンスオブジェクトパス
* を列挙する。インスタンスオブジェクトパスは、CIM Object Manager が
* このインスタンスを見つけるときに参照として使用される。
*/
Enumeration e = cc.enumerateInstanceNames(cop);
/**
* 列挙内のすべてのインスタンスオブジェクトパスを 1 つずつ処理する。
* その中で、列挙された各インスタンスオブジェクトパスを格納する
* オブジェクトを構築し、そのインスタンスを出力し、削除する。
*/
while(e.hasMoreElements()) {
CIMObjectPath op = (CIMObjectPath)e.nextElement();
System.out.println(op);
cc.deleteInstance(op);
}
} catch (Exception e) {
System.out.println("Exception: "+e);
}
if(cc != null) {
cc.close();
}
}
}