例 4–12 のプログラムは、CIM クライアントクラスの enumNameSpace メソッドを使用して、ネームスペースおよびその中に含まれるすべてのネームスペースの名前を出力します。
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 java.util.Enumeration;
/ **
* このプログラムは、CIMObjectPath(cop) で指定されるネームスペース、
* およびそのネームスペース内のすべてのネームスペースの
* リストを取得するために CIMClient.DEEP を条件として、ネームスペース引数を取り、
* CIMClient の enumNameSpace インタフェースを呼び出す。
* 続いて、指定されたネームスペース名を
* 出力する (CIMClient.SHALLOW)。
/**
public class EnumNameSpace {
// EnumNameSpace が、引数の文字列を取る。
public static void main (String args[ ]) {
CIMClient cc = null;
try {
// 引数として渡されるネームスペースのネームスペースオブジェクトを作成
CIMNameSpace cns = new CIMNameSpace(args[0], "");
// 引数として渡されるネームスペース内の CIM Object Manager に接続
CIMClient cc = new CIMClient(cns);
// 現在のホスト上のネームスペース名を保存するためにオブジェクトパスを作成
CIMObjectPath cop = new CIMObjectPath("",args[1]);
// ネームスペースおよびその中に含まれるすべてのネームスペースを列挙
// (CIMClient.DEEP に deep が 設定される)
Enumeration e = cc.enumNameSpace(cop, CIMClient.DEEP);
// ネームスペースの表示を繰り返し、それぞれの名前を出力
for (; e.hasMoreElements();
System.out.println(e.nextElement()));
System.out.println("++++++");
// CIMClient.SHALLOW でネームスペースの表示を繰り返し、
// それぞれの名前を出力
e = cc.enumNamesSpace(cop, CIMClient.SHALLOW);
for (; e.hasMoreElements();
System.out.println(e.nextElement()));
} catch (Exception e) {
System.out.println("Exception: "+e);
}
// クライアント接続が開かれている場合、接続を閉じる。
if(cc != null) {
cc.close();
}
}
}