Solaris WBEM 開発ガイド

クラスの削除

クラスを削除するには、CIMClientdeleteClass メソッドを使用します。このメソッドは、クラスを削除し、CIMException をスローします。


注 –

基底クラスを削除する場合、最初に既存のサブクラスまたはインスタンスをすべて削除しておく必要があります。



例 4–18 クラスの削除

このプログラム例は、deleteClass メソッドを使用して、デフォルトの名前空間 root\cimv2 にあるクラスを削除します。このプログラムは、次の 4 つの必須文字列引数を取ります。

このプログラムを実行するユーザーは、root\cimv2 名前空間への書き込み権を持つアカウントのユーザー名とパスワードを指定する必要があります。

 
import javax.wbem.cim.CIMClass;
import javax.wbem.cim.CIMException;
import javax.wbem.cim.CIMNameSpace;
import javax.wbem.cim.CIMObjectPath;
import javax.wbem.client.CIMClient;
import javax.wbem.client.UserPrincipal;
import javax.wbem.client.PasswordCredential;

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

/**
 * コマンド行で指定されたクラスを削除する。デフォルトの名前空間 
 *  root\cimv2 で作業を行う
 */
public class DeleteClass {
    public static void main(String args[]) throws CIMException {
        CIMClient cc = null;
        // 4 つの引数が指定されていない場合、使用法を表示して終了する
        if (args.length != 4) {
            System.out.println("Usage: DeleteClass host className " +
                              "username password"); 
            System.exit(1);
        }
        try {
            // args[0] にはホスト名が含まれる。指定されたホスト上の
            // デフォルトの名前空間を指す CIMNameSpace を作成する
            CIMNameSpace cns = new CIMNameSpace(args[0]);

            // args[2] と args[3] には、ユーザー名およびパスワードが
            // 含まれる。
            // ユーザー名を使用して UserPrincipal (up) を、
            // パスワードを使用して PasswordCredential を作成する
            UserPrincipal up = new UserPrincipal(args[2]);
            PasswordCredential pc = new PasswordCredential(args[3]);

            cc = new CIMClient(cns, up, pc);

            // クラス名 (args[4]) を取得し、CIMObjectPath を作成する
            CIMObjectPath cop = new CIMObjectPath(args[1]);
            // クラスを削除する
            cc.deleteClass(cop);
        }
        catch (Exception e) {
            System.out.println("Exception: "+e);
        }
        if (cc != null) {
            cc.close();
        }
    }
}