Sun WBEM SDK 開発ガイド

例 — ネームスペースの列挙

例 4–12 のプログラムは、CIM クライアントクラスの enumNameSpace メソッドを使用して、ネームスペースおよびその中に含まれるすべてのネームスペースの名前を出力します。


例 4–12 ネームスペースの列挙 (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();
    	}
 
		}
}