//
// Test10.java
//
// The contents of this file are subject to the SNIA Public License Version 1.0
// (the "License"); you may not use this file except in compliance with the
// License. You may obtain a copy of the License at
//
//      http://www.snia.org/resources/openSource.html
//
// Software distributed under the License is distributed on an "AS IS" basis,
// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
// License for the specific language governing rights and limitations
// under the License.
//
// The Original Code is Test10.java
//
// The Initial Developers of the Original Code are Bapu Patil
//
//
// Revision 1.1  2002/05/15 09:36:59 bpatil
// Initial revision
//

package tests.ClientUnitTests;

import java.util.Enumeration;
import java.util.Vector;
import java.rmi.*;
import java.rmi.server.*;
import java.rmi.Naming;
import java.rmi.Remote;
import java.net.*;
import org.snia.wbemcmd.utils.SimpleEnum;
import org.snia.wbem.client.CIMClient;
import org.snia.wbem.cim.CIMNameSpace;
import org.snia.wbem.cim.CIMObjectPath;
import org.snia.wbem.cim.CIMClass;
import org.snia.wbem.cim.CIMProperty;
import org.snia.wbem.cim.CIMInstance;
import org.snia.wbem.cim.CIMValue;
import org.snia.wbem.cim.CIMQualifierType;
import org.snia.wbem.cim.CIMException;
import org.snia.wbem.cim.*;

public class Test10 {

    public void example(String args[])
    {

	CIMNameSpace clientNameSpace;
	String hostName = "localhost";		// host for cimom
	String nameSpace = "root/cimv2";		// namespace
	CIMClient cc=null;
	int portNo=CIMNameSpace.DEFAULT_PORT;
	String hostURL;
		
	if (args.length==3) {
	    hostName=args[0];
	    nameSpace=args[1];
            portNo=Integer.parseInt(args[2]);
	} else if (args.length!=0) {
	    System.err.println("SetClass [hostname namespace portNo]");
	    System.exit(1);
	}
	
	System.err.println("Connecting to "+hostName+
			    " for namespace "+nameSpace);
	hostURL="http://"+hostName+":"+portNo;
	try {
	    clientNameSpace = new CIMNameSpace(hostURL, nameSpace);  
	    cc = new CIMClient(clientNameSpace, "guest", "guest", CIMClient.XML);
	} catch (CIMException e) {
	    System.err.println("Failed to access CIMOM: "+e);
	    System.exit(1);
	}
	
	System.err.println("Client created");

    
    //
     // return associatorNames
     //

     //
     // Note at the moment associators requires a path to an instance and won't
     // operate on a class (and its unclear what a class would return...)
     //
     //CIMObjectPath paen1 = new CIMObjectPath("Association");
     CIMObjectPath paen1 = new CIMObjectPath("Association");
System.err.println("\n **********Test associatorNames() on Association");
     try {
        //Enumeration en1=cc.associatorNames(paen1, "CIM_System", null, null, null);
        //Enumeration en1=cc.associatorNames(paen1, "PG_ComputerSystem", null, null, null);
        Enumeration en1=cc.associatorNames(paen1, null, null, null, null);
        System.err.println("Fetched associator names --");
        if (en1!=null) {
                while (en1.hasMoreElements()) {
                    CIMObjectPath obj=(CIMObjectPath)(en1.nextElement());
                    System.err.println("Associated path:"+obj.toString());
                }
            }
     } catch (CIMException ce) {
         System.err.println("Failed to get associator names:"+ce);
         System.exit(1);
    }

     //
     // return associated objects
     //
System.err.println("\n **********Test associators() objects on CIM_System");
     try {
        //Enumeration en2=cc.associators(paen1, "PG_ComputerSystem", null, 
         //                                  null, null, true, true, null);
        Enumeration en2=cc.associators(paen1, null, null, 
                                          null, null, true, true, null);

        System.err.println("Fetched associated objects --");
        if (en2!=null) {
                while (en2.hasMoreElements()) {
                    CIMInstance obj=(CIMInstance)(en2.nextElement());
                    System.err.println("Associated object:"+obj.toString());
                }
            }
     } catch (CIMException ce) {
         System.err.println("Failed to get associated objects:"+ce);
         System.exit(1);
    }

     System.out.println("done:");
   }

   
   public Test10() {
   }
   
    public static void main(String args[]){
	Test10 ea=new Test10();
	ea.example(args);
    }
}
