(file) Return to JMPIImpl.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / ProviderManager2 / JMPI

Diff for /pegasus/src/Pegasus/ProviderManager2/JMPI/JMPIImpl.cpp between version 1.35.2.2 and 1.65

version 1.35.2.2, 2006/05/17 20:57:39 version 1.65, 2007/01/11 16:22:01
Line 29 
Line 29 
 // //
 //============================================================================== //==============================================================================
 // //
 // Author:      Adrian Schuur, schuur@de.ibm.com  
 //  
 // Modified By: Adrian Dutta  
 //              Andy Viciu  
 //              Magda Vacarelu  
 //              David Dillard, VERITAS Software Corp.  
 //                  (david.dillard@veritas.com)  
 //              Mark Hamzy,    hamzy@us.ibm.com  
 //  
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
   
 #include "JMPIImpl.h" #include "JMPIImpl.h"
  
 #if defined(PEGASUS_PLATFORM_WIN32_IX86_MSVC)  #if defined(PEGASUS_OS_TYPE_WINDOWS)
 #include <Pegasus/Common/DynamicLibrary.h> #include <Pegasus/Common/DynamicLibrary.h>
 #else #else
 #include <dlfcn.h> #include <dlfcn.h>
Line 61 
Line 51 
 #include <Pegasus/Provider/CIMOMHandle.h> #include <Pegasus/Provider/CIMOMHandle.h>
 #include <Pegasus/Client/CIMClient.h> #include <Pegasus/Client/CIMClient.h>
 #include <Pegasus/ProviderManager2/JMPI/JMPIProviderManager.h> #include <Pegasus/ProviderManager2/JMPI/JMPIProviderManager.h>
 #include <Pegasus/ProviderManager2/CMPI/CMPI_SelectExp.h>  #include <Pegasus/WQL/WQLSelectStatement.h>
   #include <Pegasus/WQL/WQLParser.h>
   #define CALL_SIGN_WQL "WQL"
  
 PEGASUS_USING_STD; PEGASUS_USING_STD;
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
Line 132 
Line 124 
 /*09 UnsignedInt16NewI           */ { /*UnsignedInt16    */ 9, "<init>",          "(I)V" }, /*09 UnsignedInt16NewI           */ { /*UnsignedInt16    */ 9, "<init>",          "(I)V" },
 /*10 UnsignedInt32NewJ           */ { /*UnsignedInt32    */10, "<init>",          "(J)V" }, /*10 UnsignedInt32NewJ           */ { /*UnsignedInt32    */10, "<init>",          "(J)V" },
 /*11 UnsignedInt64NewBi          */ { /*UnsignedInt64    */11, "<init>",          "(Ljava/math/BigInteger;)V" }, /*11 UnsignedInt64NewBi          */ { /*UnsignedInt64    */11, "<init>",          "(Ljava/math/BigInteger;)V" },
 /*12 CIMObjectPathNewI           */ { /*CIMObjectPath    */12, "<init>",          "(I)V" },  /*12 CIMObjectPathNewJ           */ { /*CIMObjectPath    */12, "<init>",          "(J)V" },
 /*13 CIMExceptionNewSt           */ { /*CIMException     */13, "<init>",          "(Ljava/lang/String;)V" }, /*13 CIMExceptionNewSt           */ { /*CIMException     */13, "<init>",          "(Ljava/lang/String;)V" },
 /*14 CIMPropertyNewI             */ { /*CIMProperty      */15, "<init>",          "(I)V" },  /*14 CIMPropertyNewJ             */ { /*CIMProperty      */15, "<init>",          "(J)V" },
 /*15 VectorAddElement            */ { /*Vector           */ 0, "addElement",      "(Ljava/lang/Object;)V" }, /*15 VectorAddElement            */ { /*Vector           */ 0, "addElement",      "(Ljava/lang/Object;)V" },
 /*16 VectorElementAt             */ { /*Vector           */ 0, "elementAt",       "(I)Ljava/lang/Object;" }, /*16 VectorElementAt             */ { /*Vector           */ 0, "elementAt",       "(I)Ljava/lang/Object;" },
 /*17 CIMOMHandleNewISt           */ { /*CIMOMHandle      */16, "<init>",          "(ILjava/lang/String;)V" },  /*17 CIMOMHandleNewJSt           */ { /*CIMOMHandle      */16, "<init>",          "(JLjava/lang/String;)V" },
 /*18 CIMExceptionNewI            */ { /*CIMException     */13, "<init>",          "(I)V" }, /*18 CIMExceptionNewI            */ { /*CIMException     */13, "<init>",          "(I)V" },
 /*19 CIMClassNewI                */ { /*CIMClass         */17, "<init>",          "(I)V" },  /*19 CIMClassNewJ                */ { /*CIMClass         */17, "<init>",          "(J)V" },
 /*20 CIMInstanceNewI             */ { /*CIMInstance      */18, "<init>",          "(I)V" },  /*20 CIMInstanceNewJ             */ { /*CIMInstance      */18, "<init>",          "(J)V" },
 /*21 CIMObjectPathCInst          */ { /*CIMObjectPath    */12, "cInst",           "()I" },  /*21 CIMObjectPathCInst          */ { /*CIMObjectPath    */12, "cInst",           "()J" },
 /*22 CIMInstanceCInst            */ { /*CIMInstance      */18, "cInst",           "()I" },  /*22 CIMInstanceCInst            */ { /*CIMInstance      */18, "cInst",           "()J" },
 /*23 CIMClassCInst               */ { /*CIMClass         */17, "cInst",           "()I" },  /*23 CIMClassCInst               */ { /*CIMClass         */17, "cInst",           "()J" },
 /*24 ObjectToString              */ { /*Object           */20, "toString",        "()Ljava/lang/String;" }, /*24 ObjectToString              */ { /*Object           */20, "toString",        "()Ljava/lang/String;" },
 /*25 ThrowableGetMessage         */ { /*Throwable        */21, "getMessage",      "()Ljava/lang/String;" }, /*25 ThrowableGetMessage         */ { /*Throwable        */21, "getMessage",      "()Ljava/lang/String;" },
 /*26 CIMExceptionGetID           */ { /*CIMException     */13, "getID",           "()Ljava/lang/String;" }, /*26 CIMExceptionGetID           */ { /*CIMException     */13, "getID",           "()Ljava/lang/String;" },
 /*27 VectorSize                  */ { /*Vector           */ 0, "size",            "()I" }, /*27 VectorSize                  */ { /*Vector           */ 0, "size",            "()I" },
 /*28 CIMPropertyCInst            */ { /*CIMProperty      */15, "cInst",           "()I" },  /*28 CIMPropertyCInst            */ { /*CIMProperty      */15, "cInst",           "()J" },
 /*29 CIMOMHandleGetClass         */ { /*CIMOMHandle      */16, "getClass",        "(Lorg/pegasus/jmpi/CIMObjectPath;Z)Lorg/pegasus/jmpi/CIMClass;" }, /*29 CIMOMHandleGetClass         */ { /*CIMOMHandle      */16, "getClass",        "(Lorg/pegasus/jmpi/CIMObjectPath;Z)Lorg/pegasus/jmpi/CIMClass;" },
 /*30 VectorRemoveElementAt       */ { /*Vector           */ 0, "removeElementAt", "(I)V" }, /*30 VectorRemoveElementAt       */ { /*Vector           */ 0, "removeElementAt", "(I)V" },
 /*31 CIMValueCInst               */ { /*CIMValue         */19, "cInst",           "()I" },  /*31 CIMValueCInst               */ { /*CIMValue         */19, "cInst",           "()J" },
 /*32 CIMExceptionNewISt          */ { /*CIMException     */13, "<init>",          "(ILjava/lang/String;)V" }, /*32 CIMExceptionNewISt          */ { /*CIMException     */13, "<init>",          "(ILjava/lang/String;)V" },
 /*33 CIMExceptionGetCode         */ { /*CIMException     */13, "getCode",         "()I" }, /*33 CIMExceptionGetCode         */ { /*CIMException     */13, "getCode",         "()I" },
 /*34 CIMDateTimeNewI             */ { /*CIMDateTime      */24, "<init>",          "(I)V" },  /*34 CIMDateTimeNewJ             */ { /*CIMDateTime      */24, "<init>",          "(J)V" },
 /*35 SelectExpNewI               */ { /*SelectExp        */25, "<init>",          "(I)V" },  /*35 SelectExpNewJ               */ { /*SelectExp        */25, "<init>",          "(J)V" },
 /*36 CIMQualifierNewI            */ { /*CIMQualifier     */26, "<init>",          "(I)V" },  /*36 CIMQualifierNewJ            */ { /*CIMQualifier     */26, "<init>",          "(J)V" },
 /*37 CIMFlavorNewI               */ { /*CIMFlavor        */28, "<init>",          "(I)V" }, /*37 CIMFlavorNewI               */ { /*CIMFlavor        */28, "<init>",          "(I)V" },
 /*38 CIMFlavorGetFlavor          */ { /*CIMFlavor        */28, "getFlavor",       "()I" }, /*38 CIMFlavorGetFlavor          */ { /*CIMFlavor        */28, "getFlavor",       "()I" },
 /*39 CIMArgumentCInst            */ { /*CIMArgument      */29, "cInst",           "()I" },  /*39 CIMArgumentCInst            */ { /*CIMArgument      */29, "cInst",           "()J" },
 /*40 CIMArgumentNewI             */ { /*CIMArgument      */29, "<init>",          "(I)V" },  /*40 CIMArgumentNewJ             */ { /*CIMArgument      */29, "<init>",          "(J)V" },
 /*41 CIMExceptionNew             */ { /*CIMException     */13, "<init>",          "()V" }, /*41 CIMExceptionNew             */ { /*CIMException     */13, "<init>",          "()V" },
 /*42 CIMExceptionNewStOb         */ { /*CIMException     */13, "<init>",          "(Ljava/lang/String;Ljava/lang/Object;)V" }, /*42 CIMExceptionNewStOb         */ { /*CIMException     */13, "<init>",          "(Ljava/lang/String;Ljava/lang/Object;)V" },
 /*43 CIMExceptionNewStObOb       */ { /*CIMException     */13, "<init>",          "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" }, /*43 CIMExceptionNewStObOb       */ { /*CIMException     */13, "<init>",          "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" },
 /*44 CIMExceptionNewStObObOb     */ { /*CIMException     */13, "<init>",          "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V" }, /*44 CIMExceptionNewStObObOb     */ { /*CIMException     */13, "<init>",          "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V" },
 /*45 CIMValueNewI                */ { /*CIMValue         */19, "<init>",          "(I)V" },  /*45 CIMValueNewJ                */ { /*CIMValue         */19, "<init>",          "(J)V" },
 /*46 CIMObjectNewIZ              */ { /*CIMObject        */31, "<init>",          "(IZ)V" },  /*46 CIMObjectNewJZ              */ { /*CIMObject        */31, "<init>",          "(JZ)V" },
 /*47 CharacterNewC               */ { /*Character        */32, "<init>",          "(C)V" }, /*47 CharacterNewC               */ { /*Character        */32, "<init>",          "(C)V" },
 /*48 OperationContextNewI        */ { /*OperationContext */33, "<init>",          "(I)V" },  /*48 OperationContextNewJ        */ { /*OperationContext */33, "<init>",          "(J)V" },
 /*49 OperationContextUnassociate */ { /*OperationContext */33, "unassociate",     "()V" }, /*49 OperationContextUnassociate */ { /*OperationContext */33, "unassociate",     "()V" },
 /*50 ClassGetInterfaces          */ { /*Class            */34, "getInterfaces",   "()[Ljava/lang/Class;" }, /*50 ClassGetInterfaces          */ { /*Class            */34, "getInterfaces",   "()[Ljava/lang/Class;" },
 /*51 ClassGetName                */ { /*Class            */34, "getName",         "()Ljava/lang/String;" }, /*51 ClassGetName                */ { /*Class            */34, "getName",         "()Ljava/lang/String;" },
   /*52 UnsignedInt64NewStr         */ { /*UnsignedInt64    */11, "<init>",          "(Ljava/lang/String;)V" }
 }; };
  
 const METHOD_STRUCT staticMethodNames[]={ const METHOD_STRUCT staticMethodNames[]={
Line 199 
Line 192 
   jstring     jstringResult  = (jstring)env->CallObjectMethod(globalRefCls, jmidToString);   jstring     jstringResult  = (jstring)env->CallObjectMethod(globalRefCls, jmidToString);
   const char *pszResult      = env->GetStringUTFChars(jstringResult, 0);   const char *pszResult      = env->GetStringUTFChars(jstringResult, 0);
  
   DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getGlobalClassRef: globalRefCls = "<<PEGASUS_STD(hex)<<(int)globalRefCls<<PEGASUS_STD(dec)<<", name = "<<name<<", pszResult = "<<pszResult<<PEGASUS_STD(endl));    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getGlobalClassRef: globalRefCls = "<<PEGASUS_STD(hex)<<(long)globalRefCls<<PEGASUS_STD(dec)<<", name = "<<name<<", pszResult = "<<pszResult<<PEGASUS_STD(endl));
  
   env->ReleaseStringUTFChars (jstringResult, pszResult);   env->ReleaseStringUTFChars (jstringResult, pszResult);
 #else #else
   DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getGlobalClassRef: globalRefCls = "<<PEGASUS_STD(hex)<<(int)globalRefCls<<PEGASUS_STD(dec)<<", name = "<<name<<PEGASUS_STD(endl));    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getGlobalClassRef: globalRefCls = "<<PEGASUS_STD(hex)<<(long)globalRefCls<<PEGASUS_STD(dec)<<", name = "<<name<<PEGASUS_STD(endl));
 #endif #endif
  
   env->DeleteLocalRef(localRefCls);   env->DeleteLocalRef(localRefCls);
Line 231 
Line 224 
  
    methodInitDone=-1;    methodInitDone=-1;
  
    for (unsigned i=0; i<(sizeof(classNames)/sizeof(classNames[0])); i++) {     for (unsigned i = 0; i<(sizeof(classNames)/sizeof(classNames[0])); i++)
      {
 //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<classNames[i]<<PEGASUS_STD(endl)); //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<classNames[i]<<PEGASUS_STD(endl));
       if ((classRefs[i]=getGlobalClassRef(env,classNames[i]))==NULL)       if ((classRefs[i]=getGlobalClassRef(env,classNames[i]))==NULL)
       {       {
Line 241 
Line 235 
       }       }
    }    }
  
    for (unsigned j=0; j<(sizeof(instanceMethodNames)/sizeof(instanceMethodNames[0])); j++) {     for (unsigned j = 0; j<(sizeof(instanceMethodNames)/sizeof(instanceMethodNames[0])); j++)
      {
 //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<j<<": "<<classNames[instanceMethodNames[j].clsIndex]<<": "<<instanceMethodNames[j].methodName<<": "<<instanceMethodNames[j].signature<<PEGASUS_STD(endl)); //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<j<<": "<<classNames[instanceMethodNames[j].clsIndex]<<": "<<instanceMethodNames[j].methodName<<": "<<instanceMethodNames[j].signature<<PEGASUS_STD(endl));
       if ((instanceMethodIDs[j]=env->GetMethodID(classRefs[instanceMethodNames[j].clsIndex],       if ((instanceMethodIDs[j]=env->GetMethodID(classRefs[instanceMethodNames[j].clsIndex],
                                                  instanceMethodNames[j].methodName,                                                  instanceMethodNames[j].methodName,
Line 252 
Line 247 
       }       }
    }    }
  
    for (unsigned k=0; k<(sizeof(staticMethodNames)/sizeof(staticMethodNames[0])); k++) {     for (unsigned k = 0; k<(sizeof(staticMethodNames)/sizeof(staticMethodNames[0])); k++)
      {
 //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<k<<": "<<classNames[staticMethodNames[k].clsIndex]<<": "<<staticMethodNames[k].methodName<<": "<<staticMethodNames[k].signature<<PEGASUS_STD(endl)); //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<k<<": "<<classNames[staticMethodNames[k].clsIndex]<<": "<<staticMethodNames[k].methodName<<": "<<staticMethodNames[k].signature<<PEGASUS_STD(endl));
       if ((staticMethodIDs[k]=env->GetStaticMethodID(classRefs[staticMethodNames[k].clsIndex],       if ((staticMethodIDs[k]=env->GetStaticMethodID(classRefs[staticMethodNames[k].clsIndex],
                                                      staticMethodNames[k].methodName,                                                      staticMethodNames[k].methodName,
Line 288 
Line 284 
    DDD(PEGASUS_STD(cerr)<<"--- JPIjvm::destroyJVM()"<<PEGASUS_STD(endl));    DDD(PEGASUS_STD(cerr)<<"--- JPIjvm::destroyJVM()"<<PEGASUS_STD(endl));
  
 #ifdef JAVA_DESTROY_VM_WORKS #ifdef JAVA_DESTROY_VM_WORKS
    if (jvm!=NULL) {     if (jvm!= NULL)
      {
       JvmVector *jv;       JvmVector *jv;
  
       attachThread(&jv);       attachThread(&jv);
Line 337 
Line 334 
    std::ostringstream oss;    std::ostringstream oss;
  
 #ifdef PEGASUS_DEBUG #ifdef PEGASUS_DEBUG
    if (getenv("PEGASUS_JMPI_TRACE")) JMPIjvm::trace=1;     if (getenv("PEGASUS_JMPI_TRACE"))
    else JMPIjvm::trace=0;        JMPIjvm::trace = 1;
      else
         JMPIjvm::trace = 0;
 #else #else
    JMPIjvm::trace=0;    JMPIjvm::trace=0;
 #endif #endif
Line 348 
Line 347 
    jv.initRc=0;    jv.initRc=0;
  
    envstring=getenv("CLASSPATH");    envstring=getenv("CLASSPATH");
    if (envstring==NULL) {     if (envstring == NULL)
      {
       jv.initRc=1;       jv.initRc=1;
  
       DDD(PEGASUS_STD(cerr) << "--- JMPIjvm::initJVM(): No CLASSPATH environment variable found" << PEGASUS_STD(endl));       DDD(PEGASUS_STD(cerr) << "--- JMPIjvm::initJVM(): No CLASSPATH environment variable found" << PEGASUS_STD(endl));
  
   #ifdef PEGASUS_PLATFORM_ZOS_ZSERIES_IBM
         throw PEGASUS_CIM_EXCEPTION_L(
                    CIM_ERR_FAILED,
                    MessageLoaderParms(
                        "ProviderManager2.JMPI.JMPIImpl.GET_CLASSPATH_FAILED.PEGASUS_OS_ZOS",
                        "Could not get CLASSPATH from environment."
                        " Either CLASSPATH is longer than 255 characters"
                        " or not set at all.")
                    );
   #else
         throw PEGASUS_CIM_EXCEPTION_L(
                    CIM_ERR_FAILED,
                    MessageLoaderParms(
                        "ProviderManager2.JMPI.JMPIImpl.GET_CLASSPATH_FAILED.STANDARD",
                        "Could not get CLASSPATH from environment.")
                    );
   #endif
       return -1;       return -1;
    }    }
  
Line 445 
Line 462 
       free (poptions);       free (poptions);
    }    }
  
    if (res!=0) {     if (res!= 0)
      {
       jv.initRc=1;       jv.initRc=1;
  
       DDD(PEGASUS_STD(cerr) << "--- JMPIjvm::initJVM(): Can not create Java VM"<<PEGASUS_STD(endl));       DDD(PEGASUS_STD(cerr) << "--- JMPIjvm::initJVM(): Can not create Java VM"<<PEGASUS_STD(endl));
Line 455 
Line 473 
  
    cacheIDs(env);    cacheIDs(env);
  
    if (env->ExceptionOccurred()) {     if (env->ExceptionOccurred())
      {
       jv.initRc=1;       jv.initRc=1;
  
       env->ExceptionDescribe();       env->ExceptionDescribe();
Line 483 
Line 502 
 JNIEnv* JMPIjvm::attachThread(JvmVector **jvp) JNIEnv* JMPIjvm::attachThread(JvmVector **jvp)
 { {
    JNIEnv* env = NULL;    JNIEnv* env = NULL;
      int rc;
  
    if (jvm == NULL)    if (jvm == NULL)
    {    {
       initJVM ();        rc = initJVM ();
  
       if (jvm == NULL)        if ((jvm == NULL) || (rc != 0))
          return NULL;          return NULL;
    }    }
  
Line 504 
Line 524 
    jvm->DetachCurrentThread();    jvm->DetachCurrentThread();
 } }
  
 jobject JMPIjvm::getProvider(JNIEnv *env, String jar, String cln,  jobject JMPIjvm::getProvider (JNIEnv     *env,
      const char *cn, jclass *cls)                                String      jarName,
 {                                String      className,
    jobject gProv=NULL;                                const char *pszProviderName,
    jclass scls=NULL;                                jclass     *pjClass)
   {
      jobject   jProviderInstance      = 0;
      jclass    jClassLoaded           = 0;
      jmethodID jId                    = 0;
      jobject   jProviderInstanceLocal = 0;
   
      DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jarName = "<<jarName<<", className = "<<className<<", pszProviderName = "<<pszProviderName<<", pjClass = "<<PEGASUS_STD(hex)<<(long)pjClass<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
   
      // CASE #1
      //    className has been loaded previously.
      //    Return saved instance.
      _objectTable.lookup (className, jProviderInstance);
      _classTable.lookup (className, jClassLoaded);
  
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jar = "<<jar<<", cln = "<<cln<<", cn = "<<cn<<", cls = "<<cls<<PEGASUS_STD(endl));     DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jProviderInstance = "<<PEGASUS_STD(hex)<<(long)jProviderInstance<<", jClassLoaded = "<<(long)jClassLoaded<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
  
    _objectTable.lookup(cln,gProv);     if (  jProviderInstance
    _classTable.lookup(cln,scls);        && jClassLoaded
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: gProv = "<<PEGASUS_STD(hex)<<(int)gProv<<", scls = "<<(int)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));        )
      {
         if (pjClass)
         {
            *pjClass = jClassLoaded;
         }
  
    if (gProv) {        return jProviderInstance;
       *cls=scls;  
       return gProv;  
    }    }
  
    /*     // CASE #2
    DDD(PEGASUS_STD(cout)<<"--- jar: "<<jar<<PEGASUS_STD(endl));     //    className can be loaded via getGlobalClassRef ().
    DDD(PEGASUS_STD(cout)<<"--- cln: "<<cln<<PEGASUS_STD(endl));     //    Load and return the instance.
      // NOTE:
      //    According to http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/functions.html
      //    In JDK 1.1, FindClass searched only local classes in CLASSPATH.
  
    jstring jjar=env->NewStringUTF((const char*)jar.getCString());     jClassLoaded = getGlobalClassRef (env,
    jstring jcln=env->NewStringUTF((const char*)cln.getCString());                                       (const char*)className.getCString ());
  
    jclass jcls=(jclass)env->CallStaticObjectMethod(JMPIjvm::jv.JarClassLoaderRef,jv.JarClassLoaderLoad,     DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jClassLoaded = "<<PEGASUS_STD(hex)<<(long)jClassLoaded<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
       jjar,jcln);  
    if (env->ExceptionCheck()) {     if (env->ExceptionCheck ())
       env->ExceptionDescribe();     {
       PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<cn<<PEGASUS_STD(endl);        // CASE #3
 ////////return NULL;        //    see if the className can be loaded via JarClassLoader.load ().
         //    Load and return the instance.
         jstring jJarName          = 0;
         jstring jClassName        = 0;
         jclass  jClassLoadedLocal = 0;
   
         env->ExceptionClear ();
   
         // NOTE: Instances of "packageName/className" will not work with the jar
         //       class loader.  Change the '/' to a '.'.
         String fixedClassName;
         Uint32 idx            = className.find ('/');
   
         if (idx != PEG_NOT_FOUND)
         {
            fixedClassName = className.subString (0, idx)
                           + "."
                           + className.subString (idx + 1);
         }
         else
         {
            fixedClassName = className;
    }    }
 */  
  
    scls=getGlobalClassRef(env,(const char*)cln.getCString());        DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::getProvider: fixedClassName = "<<fixedClassName<<PEGASUS_STD(endl));
    if (env->ExceptionCheck()) {  
       DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::getProvider: Provider "<<cn<<" not found"<<PEGASUS_STD(endl));        jJarName   = env->NewStringUTF ((const char*)jarName.getCString ());
         jClassName = env->NewStringUTF ((const char*)fixedClassName.getCString ());
   
         DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jJarName = "<<PEGASUS_STD(hex)<<(long)jJarName<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
         DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jClassName = "<<PEGASUS_STD(hex)<<(long)jClassName<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
   
         jClassLoadedLocal = (jclass)env->CallStaticObjectMethod (JMPIjvm::jv.JarClassLoaderClassRef,
                                                                  JMPIjvm::jv.JarClassLoaderLoad,
                                                                  jJarName,
                                                                  jClassName);
   
         DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jClassLoadedLocal = "<<PEGASUS_STD(hex)<<(long)jClassLoadedLocal<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
   
         if (env->ExceptionCheck ())
         {
       DDD(env->ExceptionDescribe());       DDD(env->ExceptionDescribe());
  
       return NULL;           DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<pszProviderName<<PEGASUS_STD(endl));
   
            return 0;
    }    }
    *cls=scls;  
  
    if (scls)        jClassLoaded = (jclass)env->NewGlobalRef (jClassLoadedLocal);
   
         DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jClassLoaded = "<<PEGASUS_STD(hex)<<(long)jClassLoaded<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
   
         env->DeleteLocalRef (jClassLoadedLocal);
      }
   
      if (pjClass)
    {    {
       DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: scls = "<<PEGASUS_STD(hex)<<(int)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));        *pjClass = jClassLoaded;
       _classTable.insert(cln,scls);  
    }    }
  
    jmethodID id=env->GetMethodID(*cls,"<init>","()V");     if (!jClassLoaded)
    jobject lProv=env->NewObject(*cls,id);     {
    gProv=(jobject)env->NewGlobalRef(lProv);        DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<pszProviderName<<PEGASUS_STD(endl));
    if (env->ExceptionCheck()) {  
       DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<cn<<PEGASUS_STD(endl));        return 0;
       return NULL;  
    }    }
  
    if (gProv)     jId = env->GetMethodID (jClassLoaded,
                              "<init>",
                              "()V");
   
      DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jId = "<<PEGASUS_STD(hex)<<(long)jId<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
   
      jProviderInstanceLocal = env->NewObject (jClassLoaded,
                                               jId);
   
      DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jProviderInstanceLocal = "<<PEGASUS_STD(hex)<<(long)jProviderInstanceLocal<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
   
      if (!jProviderInstanceLocal)
    {    {
       DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: gProv = "<<PEGASUS_STD(hex)<<(int)gProv<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));        DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<pszProviderName<<PEGASUS_STD(endl));
       _objectTable.insert(cln,gProv);  
         return 0;
    }    }
  
    return gProv;     jProviderInstance = (jobject)env->NewGlobalRef (jProviderInstanceLocal);
   
      DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jProviderInstance = "<<PEGASUS_STD(hex)<<(long)jProviderInstance<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
   
      if (!jProviderInstance)
      {
         DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<pszProviderName<<PEGASUS_STD(endl));
   
         return 0;
      }
   
      _classTable.insert (className, jClassLoaded);
      _objectTable.insert (className, jProviderInstance);
   
      return jProviderInstance;
 } }
  
 jobject JMPIjvm::getProvider(JNIEnv *env, const char *cn, jclass *cls) jobject JMPIjvm::getProvider(JNIEnv *env, const char *cn, jclass *cls)
Line 579 
Line 684 
  
    _objectTable.lookup(cln,gProv);    _objectTable.lookup(cln,gProv);
    _classTable.lookup(cln,scls);    _classTable.lookup(cln,scls);
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: gProv = "<<PEGASUS_STD(hex)<<(int)gProv<<", scls = "<<(int)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));     DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: gProv = "<<PEGASUS_STD(hex)<<(long)gProv<<", scls = "<<(long)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
  
    if (gProv) {     if (gProv)
      {
       *cls=scls;       *cls=scls;
       return gProv;       return gProv;
    }    }
  
    scls=getGlobalClassRef(env,cn);    scls=getGlobalClassRef(env,cn);
    if (env->ExceptionCheck()) {     if (env->ExceptionCheck())
      {
       DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::getProvider: Provider "<<cn<<" not found"<<PEGASUS_STD(endl));       DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::getProvider: Provider "<<cn<<" not found"<<PEGASUS_STD(endl));
       DDD(env->ExceptionDescribe());       DDD(env->ExceptionDescribe());
  
Line 597 
Line 704 
  
    if (scls)    if (scls)
    {    {
       DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: scls = "<<PEGASUS_STD(hex)<<(int)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));        DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: scls = "<<PEGASUS_STD(hex)<<(long)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
       _classTable.insert(cln,scls);       _classTable.insert(cln,scls);
    }    }
  
    jmethodID id=env->GetMethodID(*cls,"<init>","()V");    jmethodID id=env->GetMethodID(*cls,"<init>","()V");
    jobject lProv=env->NewObject(*cls,id);    jobject lProv=env->NewObject(*cls,id);
    gProv=(jobject)env->NewGlobalRef(lProv);    gProv=(jobject)env->NewGlobalRef(lProv);
    if (env->ExceptionCheck()) {     if (env->ExceptionCheck())
      {
       DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<cn<<PEGASUS_STD(endl));       DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<cn<<PEGASUS_STD(endl));
       return NULL;       return NULL;
    }    }
  
    if (gProv)    if (gProv)
    {    {
       DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: gProv = "<<PEGASUS_STD(hex)<<(int)gProv<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));        DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: gProv = "<<PEGASUS_STD(hex)<<(long)gProv<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
       _objectTable.insert(cln,gProv);       _objectTable.insert(cln,gProv);
    }    }
  
Line 620 
Line 728 
  
 void JMPIjvm::checkException(JNIEnv *env) void JMPIjvm::checkException(JNIEnv *env)
 { {
    if (env->ExceptionCheck()) {     if (env->ExceptionCheck ())
       jstring jMsg=NULL,jId=NULL;     {
         jstring     jMsg = NULL,
                     jId  = NULL;
       int code;       int code;
       const char *cp;       const char *cp;
       String msg=String::EMPTY,id=String::EMPTY;        String      msg  = String::EMPTY,
                     id   = String::EMPTY;
       jthrowable err=env->ExceptionOccurred();       jthrowable err=env->ExceptionOccurred();
   
       DDD(env->ExceptionDescribe());       DDD(env->ExceptionDescribe());
       if (env->IsInstanceOf(err,JMPIjvm::jv.CIMExceptionClassRef)) {  
         if (env->IsInstanceOf (err, JMPIjvm::jv.CIMExceptionClassRef))
         {
          env->ExceptionClear();          env->ExceptionClear();
          if (err) {           if (err)
            {
             jMsg=(jstring)env->CallObjectMethod(err,JMPIjvm::jv.ThrowableGetMessage);             jMsg=(jstring)env->CallObjectMethod(err,JMPIjvm::jv.ThrowableGetMessage);
             code=(int)env->CallIntMethod(err,JMPIjvm::jv.CIMExceptionGetCode);             code=(int)env->CallIntMethod(err,JMPIjvm::jv.CIMExceptionGetCode);
             jId=(jstring)env->CallObjectMethod(err,JMPIjvm::jv.CIMExceptionGetID);             jId=(jstring)env->CallObjectMethod(err,JMPIjvm::jv.CIMExceptionGetID);
             if (jId) {  
               if (jId)
               {
                cp=env->GetStringUTFChars(jId,NULL);                cp=env->GetStringUTFChars(jId,NULL);
                id=String(cp);                id=String(cp);
                env->ReleaseStringUTFChars(jId,cp);                env->ReleaseStringUTFChars(jId,cp);
             }             }
  
             if (jMsg) {              if (jMsg)
               {
                cp=env->GetStringUTFChars(jMsg,NULL);                cp=env->GetStringUTFChars(jMsg,NULL);
                msg=String(cp);                msg=String(cp);
                env->ReleaseStringUTFChars(jMsg,cp);                env->ReleaseStringUTFChars(jMsg,cp);
Line 651 
Line 768 
             throw CIMException((CIMStatusCode)code,id+" ("+msg+")");             throw CIMException((CIMStatusCode)code,id+" ("+msg+")");
          }          }
       }       }
       else {        else
         {
          DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::checkException: exiting..."<<PEGASUS_STD(endl));          DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::checkException: exiting..."<<PEGASUS_STD(endl));
          env->ExceptionDescribe();          env->ExceptionDescribe();
          exit(13);          exit(13);
Line 676 
Line 794 
  
     NULL_CHECK0(cls = (*env).FindClass("java/lang/String"));     NULL_CHECK0(cls = (*env).FindClass("java/lang/String"));
     NULL_CHECK0(mid = (*env).GetMethodID(cls, "<init>", "([B)V"));     NULL_CHECK0(mid = (*env).GetMethodID(cls, "<init>", "([B)V"));
   
     ary = (*env).NewByteArray((jsize)len);     ary = (*env).NewByteArray((jsize)len);
     if (ary != 0) {      if (ary != 0)
       {
         jstring str = 0;         jstring str = 0;
         (*env).SetByteArrayRegion(ary, 0, (jsize)len,          (*env).SetByteArrayRegion (ary,
                                      0,
                                      (jsize)len,
                                    (jbyte *)s);                                    (jbyte *)s);
         if (!(*env).ExceptionOccurred()) {          if (!(*env).ExceptionOccurred ())
           {
             str = (jstring)(*env).NewObject(cls, mid, ary);             str = (jstring)(*env).NewObject(cls, mid, ary);
         }         }
         (*env).DeleteLocalRef(ary);         (*env).DeleteLocalRef(ary);
   
         return str;         return str;
     }     }
     return 0;     return 0;
 } }
  
   
 /************************************************************************** /**************************************************************************
  * name         - NewPlatformStringArray  * name         - NewPlatformStringArray
  * description  - Returns a new array of Java string objects for the specified  * description  - Returns a new array of Java string objects for the specified
Line 708 
Line 831 
  
     NULL_CHECK0(cls = (jarray)(*env).FindClass("java/lang/String"));     NULL_CHECK0(cls = (jarray)(*env).FindClass("java/lang/String"));
     NULL_CHECK0(ary = (*env).NewObjectArray(strc, (jclass)cls, 0));     NULL_CHECK0(ary = (*env).NewObjectArray(strc, (jclass)cls, 0));
     for (i = 0; i < strc; i++) {      for(i = 0; i < strc; i++)
       {
         jstring str = NewPlatformString(env, *strv++);         jstring str = NewPlatformString(env, *strv++);
   
         NULL_CHECK0(str);         NULL_CHECK0(str);
   
         (*env).SetObjectArrayElement((jobjectArray)ary, i, str);         (*env).SetObjectArrayElement((jobjectArray)ary, i, str);
         (*env).DeleteLocalRef(str);         (*env).DeleteLocalRef(str);
     }     }
   
     return (jobjectArray)ary;     return (jobjectArray)ary;
 } }
  
   CIMPropertyList getList (JNIEnv *jEnv, jobjectArray l)
   {
 CIMPropertyList getList(JNIEnv *jEnv, jobjectArray l) {  
    CIMPropertyList pl;    CIMPropertyList pl;
  
    if (l) {     if (l)
      {
       Array<CIMName> n;       Array<CIMName> n;
  
       for (jsize i=0,s=jEnv->GetArrayLength(l); i<s; i++) {        for (jsize i = 0, s = jEnv->GetArrayLength (l); i <s; i++)
         {
          jstring     jObj = (jstring)jEnv->GetObjectArrayElement(l,i);          jstring     jObj = (jstring)jEnv->GetObjectArrayElement(l,i);
          const char *pn   = jEnv->GetStringUTFChars(jObj,NULL);          const char *pn   = jEnv->GetStringUTFChars(jObj,NULL);
  
Line 740 
Line 868 
    return pl;    return pl;
 } }
  
   
   
 extern "C" { extern "C" {
  
   void throwCimException (JNIEnv *jEnv, CIMException &e)
 void throwCimException(JNIEnv *jEnv, CIMException & e) {  {
       JMPIjvm::cacheIDs(jEnv);       JMPIjvm::cacheIDs(jEnv);
       jobject ev=jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,(jint)e.getCode());       jobject ev=jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,(jint)e.getCode());
       jEnv->Throw((jthrowable)ev);       jEnv->Throw((jthrowable)ev);
 } }
  
 void throwFailedException(JNIEnv *jEnv) {  void throwFailedException (JNIEnv *jEnv)
   {
       JMPIjvm::cacheIDs(jEnv);       JMPIjvm::cacheIDs(jEnv);
       jobject ev=jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,1);       jobject ev=jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,1);
       jEnv->Throw((jthrowable)ev);       jEnv->Throw((jthrowable)ev);
 } }
  
 void throwNotSupportedException(JNIEnv *jEnv) {  void throwNotSupportedException (JNIEnv *jEnv)
   {
       JMPIjvm::cacheIDs(jEnv);       JMPIjvm::cacheIDs(jEnv);
       jobject ev=jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,7);       jobject ev=jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,7);
       jEnv->Throw((jthrowable)ev);       jEnv->Throw((jthrowable)ev);
 } }
  
  
   
   
 // ------------------------------------- // -------------------------------------
 // --- // ---
 // -            CIMException  // -            CIMArgument
 // --- // ---
 // ------------------------------------- // -------------------------------------
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1new  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMArgument__1new
   (JNIEnv *jEnv, jobject jThs) {        (JNIEnv *jEnv, jobject jThs)
    JMPIjvm::cacheIDs(jEnv);  {
    jEnv->CallNonvirtualVoidMethod(jThs,JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNew);     CIMParamValue *p = new CIMParamValue (String::EMPTY,CIMValue ());
 }  
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1newS     return DEBUG_ConvertCToJava (CIMParamValue*, jlong, p);
   (JNIEnv *jEnv, jobject jThs, jstring jM) {  
    JMPIjvm::cacheIDs(jEnv);  
    jEnv->CallNonvirtualVoidMethod(jThs,JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewSt,jM);  
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1newSO  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMArgument__1newS
   (JNIEnv *jEnv, jobject jThs, jstring jM, jobject jO1) {        (JNIEnv *jEnv, jobject jThs, jstring jN)
    JMPIjvm::cacheIDs(jEnv);  {
    jEnv->CallNonvirtualVoidMethod(jThs,JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewStOb,jM,jO1);     const char    *str = jEnv->GetStringUTFChars (jN, NULL);
 }     CIMParamValue *p   = new CIMParamValue (str, CIMValue ());
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1newSOO     jEnv->ReleaseStringUTFChars (jN, str);
   (JNIEnv *jEnv, jobject jThs, jstring jM, jobject jO1, jobject jO2) {  
    JMPIjvm::cacheIDs(jEnv);  
    jEnv->CallNonvirtualVoidMethod(jThs,JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewStObOb,jM,jO1,jO2);  
 }  
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1newSOOO     return DEBUG_ConvertCToJava (CIMParamValue*, jlong, p);
   (JNIEnv *jEnv, jobject jThs, jstring jM, jobject jO1, jobject jO2, jobject jO3) {  
    JMPIjvm::cacheIDs(jEnv);  
    jEnv->CallNonvirtualVoidMethod(jThs,JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewStObObOb,jM,jO1,jO2,jO3);  
 } }
  
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMArgument__1newSV
         (JNIEnv *jEnv, jobject jThs, jstring jN, jlong jV)
   {
      const char    *str = jEnv->GetStringUTFChars (jN, NULL);
      CIMValue      *cv  = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
      CIMParamValue *p   = 0;
  
      if (  str
         && cv
         )
      {
         p = new CIMParamValue (str, *cv);
      }
  
 // -------------------------------------     jEnv->ReleaseStringUTFChars (jN, str);
 // ---  
 // -            CIMOMHandle  
 // ---  
 // -------------------------------------  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1getClass     return DEBUG_ConvertCToJava (CIMParamValue*, jlong, p);
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jboolean lo,  }
          jboolean iq, jboolean ic, jobjectArray jPl)  
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMArgument__1getType
         (JNIEnv *jEnv, jobject jThs, jlong jP)
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);     CIMParamValue *cp       = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jP);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     const CIMValue cv       = cp->getValue ();
    CIMPropertyList   pl;     String         ref;
    OperationContext  ctx;     bool           fSuccess = false;
      int            iJType   = 0;
      _dataType     *type     = 0;
  
    if (jPl)     iJType = _dataType::convertCTypeToJavaType (cv.getType (), &fSuccess);
       pl=getList(jEnv,jPl);  
    else  
       pl=CIMPropertyList();  
  
    try {     if (fSuccess)
       CIMClass cls=ch->getClass(ctx,cop->getNameSpace(),     {
                                 cop->getClassName(),        type = new _dataType (iJType,
                                 (Boolean)lo,                              cv.getArraySize (),
                                 (Boolean)iq,                              false,
                                 (Boolean)ic,                              false,
                                 pl);                              cv.isArray (),
                               ref,
                               true);
      }
  
       return DEBUG_ConvertCToJava (CIMClass*, jint, new CIMClass(cls));     return DEBUG_ConvertCToJava (_dataType*, jlong, type);
    }    }
    Catch(jEnv);  
  
    return 0;  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMArgument__1setValue
         (JNIEnv *jEnv, jobject jThs, jlong jP,jlong jV)
   {
      CIMParamValue *cp = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jP);
      CIMValue      *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
   
      cp->setValue (*cv);
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1createClass  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMArgument__1getValue
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jint jCl)        (JNIEnv *jEnv, jobject jThs, jlong jP)
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);     CIMParamValue *cp = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jP);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     CIMValue      *cv = new CIMValue (cp->getValue ());
    CIMClass         *cl  = DEBUG_ConvertJavaToC (jint, CIMClass*, jCl);  
    OperationContext  ctx;  
  
    try {     return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
       ch->createClass(ctx,cop->getNameSpace(),*cl);  
    }    }
    Catch(jEnv);  
   JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMArgument__1getName
         (JNIEnv *jEnv, jobject jThs, jlong jP)
   {
      CIMParamValue *cp  = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jP);
      const String  &n   = cp->getParameterName ();
      jstring        str = jEnv->NewStringUTF (n.getCString ());
   
      return str;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1setClass  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMArgument__1setName
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jint jCl)        (JNIEnv *jEnv, jobject jThs, jlong jP, jstring jN)
 { {
    CIMOMHandle     *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);     CIMParamValue *cp  = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jP);
    CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     const char    *str = jEnv->GetStringUTFChars (jN, NULL);
    CIMClass        *cl  = DEBUG_ConvertJavaToC (jint, CIMClass*, jCl);     String         n (str);
    OperationContext ctx;  
  
    try {     cp->setParameterName (n);
      ch->modifyClass(ctx,cop->getNameSpace(),*cl);  
      jEnv->ReleaseStringUTFChars (jN, str);
    }    }
    Catch(jEnv);  
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMArgument__1finalize
         (JNIEnv *jEnv, jobject jThs, jlong jP)
   {
      CIMParamValue *cp = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jP);
   
      delete cp;
   
      DEBUG_ConvertCleanup (jlong, jP);
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1deleteClass  
    (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop)  // -------------------------------------
   // ---
   // -            CIMClass
   // ---
   // -------------------------------------
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1newInstance
     (JNIEnv *jEnv, jobject jThs, jlong jCls)
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);     CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    OperationContext  ctx;  
  
    try {     if (cls)
       ch->deleteClass(ctx,cop->getNameSpace(),cop->getClassName());     {
         try
         {
            CIMInstance   *ci     = new CIMInstance (cls->getClassName ());
            CIMObjectPath  copNew = ci->getPath ();
   
            copNew.setNameSpace (cls->getPath ().getNameSpace ());
            ci->setPath (copNew);
   
            for (int i = 0, m = cls->getQualifierCount (); i < m; i++)
            {
               try
               {
                  ci->addQualifier (cls->getQualifier (i).clone ());
    }    }
    Catch(jEnv);              catch (Exception e)
               {
 } }
            }
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateClassNames           for (int i = 0, m = cls->getPropertyCount (); i < m; i++)
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jboolean deep)  
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);              CIMProperty cp = cls->getProperty (i);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    CIMNamespaceName  ns  = cop->getNameSpace();  
    OperationContext  ctx;  
  
    try {              ci->addProperty (cp.clone ());
       Array<CIMName>        enm   = ch->enumerateClassNames(ctx,cop->getNameSpace(),cop->getClassName(),(Boolean)deep);  
       Array<CIMObjectPath> *enmop = new Array<CIMObjectPath>();  
  
       for (int i=0,m=enm.size(); i<m; i++) {              for (int j = 0, s = cp.getQualifierCount (); j < s; j++)
          enmop->append(CIMObjectPath(String::EMPTY,ns,enm[i]));              {
                  try
                  {
                     ci->getProperty (i).addQualifier (cp.getQualifier (j));
                  }
                  catch (Exception e)
                  {
                  }
               }
       }       }
  
       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, enmop);           return DEBUG_ConvertCToJava (CIMInstance*, jlong, ci);
    }    }
    Catch(jEnv);    Catch(jEnv);
      }
  
    return 0;    return 0;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateClasses  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1filterProperties
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jboolean deep,        (JNIEnv *jEnv, jobject jThs, jlong jInst, jobjectArray jPl, jboolean iq, jboolean ic, jboolean lo)
         jboolean lo, jboolean iq, jboolean ic)  
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);     CIMClass *cc   = DEBUG_ConvertJavaToC (jlong, CIMClass*, jInst);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     CIMClass *cf   = 0;
    OperationContext  ctx;     CIMName   clsn = cc->getClassName ();
  
    try {     if (lo)
       Array<CIMClass> en=ch->enumerateClasses(ctx,     {
                                               cop->getNameSpace(),        cf = new CIMClass (cc->clone ());
                                               cop->getClassName(),  
                                               (Boolean)deep,  
                                               (Boolean)lo,  
                                               (Boolean)iq,  
                                               (Boolean)ic);  
  
       return DEBUG_ConvertCToJava (Array<CIMClass>*, jint, new Array<CIMClass>(en));        CIMName clsn = cc->getClassName ();
    }  
    Catch(jEnv);  
  
    return 0;        for (int i = cf->getPropertyCount () - 1; i>= 0; i--)
         {
            if (cf->getProperty (i).getClassOrigin () == clsn)
               cf->removeProperty (i);
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1getInstance        return DEBUG_ConvertCToJava (CIMClass*, jlong, cf);
    (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jboolean lo, jboolean iq, jboolean ic,     }
         jobjectArray jPl)     else if (jPl)
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);        CIMPropertyList pl = getList (jEnv,jPl);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);        Array<CIMName>  n  = pl.getPropertyNameArray ();
    OperationContext  ctx;  
    CIMPropertyList   pl;  
   
    if (jPl)  
       pl=getList(jEnv,jPl);  
    else  
       pl=CIMPropertyList();  
  
    try {        cf = new CIMClass (clsn, cc->getSuperClassName ());
       CIMInstance *inst=new CIMInstance(ch->getInstance(ctx,  
                                                         cop->getNameSpace(),  
                                                         *cop,  
                                                         (Boolean)lo,  
                                                         (Boolean)iq,  
                                                         (Boolean)ic,  
                                                         pl));  
       return DEBUG_ConvertCToJava (CIMInstance*, jint, inst);  
    }  
    Catch(jEnv);  
  
    return -1;        for (int i = 0, s = n.size (); i < s; i++)
 }        {
            Uint32 pos = cc->findProperty (n[i]);
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1deleteInstance           if (pos != PEG_NOT_FOUND)
    (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop)  
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);              if (iq)
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);              {
    OperationContext  ctx;                 CIMProperty cp = cc->getProperty (pos).clone ();
  
    try {                 if (!ic)
       ch->deleteInstance(ctx,cop->getNameSpace(),*cop);                    cp.setClassOrigin (CIMName ());
    }  
    Catch(jEnv);  
 }  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1createInstance                 cf->addProperty (cp);
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jint jCi)              }
               else
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);                 CIMProperty cp = cc->getProperty (pos);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);                 CIMName     co;
    CIMInstance      *ci  = DEBUG_ConvertJavaToC (jint, CIMInstance*, jCi);  
    OperationContext  ctx;  
  
    try {                 if (ic)
       ci->setPath(*cop);                    co = cp.getClassOrigin ();
  
       CIMObjectPath obj=ch->createInstance(ctx,cop->getNameSpace(),*ci);                 CIMProperty np (cp.getName (),
                                 cp.getValue (),
                                 cp.getArraySize (),
                                 cp.getReferenceClassName (),
                                 co,
                                 cp.getPropagated ());
  
       return DEBUG_ConvertCToJava (CIMObjectPath*, jint, new CIMObjectPath(obj));                 cf->addProperty (np);
               }
            }
         }
         if (iq)
         {
            for (Uint32 i = 0, s = cc->getQualifierCount (); i < s; i++)
            {
               cf->addQualifier (cc->getQualifier (i));
    }    }
    Catch(jEnv);  
   
    return 0;  
 } }
      }
      else if (iq)
      {
         cf = new CIMClass (cc->clone ());
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1modifyInstance        if (ic)
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jint jCi,           return DEBUG_ConvertCToJava (CIMClass*, jlong, cf);
          jboolean iq, jobjectArray jPl)  
         for (int i = cf->getPropertyCount () - 1; i >= 0; i--)
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);           CIMProperty cp = cf->getProperty (i);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    CIMInstance      *ci  = DEBUG_ConvertJavaToC (jint, CIMInstance*, jCi);  
    CIMPropertyList   pl  = getList(jEnv,jPl);  
    OperationContext  ctx;  
  
    try {           cp.setClassOrigin (CIMName ());
       ci->setPath(*cop);           cf->removeProperty (i);
       ch->modifyInstance(ctx,cop->getNameSpace(),*ci,(Boolean)iq,pl);           cf->addProperty (cp);
    }    }
    Catch(jEnv);  
 } }
      else
      {
         cf = new CIMClass (clsn, cc->getSuperClassName ());
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateInstanceNames        for (int i = cc->getPropertyCount () - 1; i >= 0; i--)
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jboolean deep)  
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);           CIMProperty cp = cc->getProperty (i);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);           CIMName     co;
    OperationContext  ctx;  
  
    try {           if (ic)
       Array<CIMObjectPath> enm=ch->enumerateInstanceNames(ctx,              co = cp.getClassOrigin ();
                                                           cop->getNameSpace(),  
                                                           cop->getClassName()); //,(Boolean)deep);           CIMProperty np (cp.getName (),
       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, new Array<CIMObjectPath>(enm));                          cp.getValue (),
                           cp.getArraySize (),
                           cp.getReferenceClassName (),
                           co,
                           cp.getPropagated ());
   
            cf->addProperty (np);
         }
    }    }
    Catch(jEnv);  
  
    return 0;     return DEBUG_ConvertCToJava (CIMClass*, jlong, cf);
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateInstances  JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMClass__1getName
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jboolean deep,     (JNIEnv *jEnv, jobject jThs, jlong jCls)
         jboolean lo, jboolean iq, jboolean ic, jobjectArray jPl)  
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);     CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    CIMPropertyList   pl;  
    OperationContext  ctx;  
   
    if (jPl)  
       pl=getList(jEnv,jPl);  
    else  
       pl=CIMPropertyList();  
  
    try {    try {
       Array<CIMInstance> en=ch->enumerateInstances(ctx,        const String &cn = cls->getClassName ().getString ();
                                                    cop->getNameSpace(),        jstring str = jEnv->NewStringUTF (cn.getCString ());
                                                    cop->getClassName(),  
                                                    (Boolean)deep,        return str;
                                                    (Boolean)lo,  
                                                    (Boolean)iq,  
                                                    (Boolean)ic,  
                                                    pl);  
       return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, new Array<CIMInstance>(en));  
    }    }
    Catch(jEnv);    Catch(jEnv);
  
    return 0;    return 0;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1execQuery  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1getQualifier
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jstring jQuery, jstring jQl)     (JNIEnv *jEnv, jobject jThs, jlong jCls, jstring jN)
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);     CIMClass   *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     const char *str = jEnv->GetStringUTFChars (jN, NULL);
    OperationContext  ctx;     jlong       rv  = 0;
    const char       *str = jEnv->GetStringUTFChars(jQuery,NULL);     Uint32      pos = cls->findQualifier (String (str));
    String            query(str);  
  
    jEnv->ReleaseStringUTFChars(jQuery,str);     if (pos != PEG_NOT_FOUND)
         rv = DEBUG_ConvertCToJava (CIMQualifier*,
                                    jlong,
                                    new CIMQualifier (cls->getQualifier (pos)));
  
    str=jEnv->GetStringUTFChars(jQl,NULL);     jEnv->ReleaseStringUTFChars (jN, str);
  
    String ql(str);     return rv;
   }
  
    jEnv->ReleaseStringUTFChars(jQl,str);  JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClass__1getQualifiers
         (JNIEnv *jEnv, jobject jThs, jlong jCls, jobject jVec)
   {
      JMPIjvm::cacheIDs (jEnv);
  
    try {     CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
       Array<CIMObject>    enm=ch->execQuery(ctx,cop->getNameSpace(),ql,query);  
       Array<CIMInstance> *enmInst=new Array<CIMInstance>();  
  
       for (int i=0,m=enm.size(); i<m; i++) {     for (int i = 0, s = cls->getQualifierCount (); i < s; i++)
          enmInst->append(CIMInstance(enm[i]));     {
       }        CIMQualifier *cq   = new CIMQualifier (cls->getQualifier (i));
         jlong         jCq  = DEBUG_ConvertCToJava (CIMQualifier*, jlong, cq);
         jobject       qual = jEnv->NewObject (JMPIjvm::jv.CIMQualifierClassRef,JMPIjvm::jv.CIMQualifierNewJ,jCq);
  
       return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, enmInst);        jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,qual);
    }    }
    Catch(jEnv);  
  
    return 0;     return jVec;
 } }
  
   JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMClass__1hasQualifier
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1getProperty       (JNIEnv *jEnv, jobject jThs, jlong jCls, jstring jQ)
    (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jstring jN)  
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);     CIMClass   *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     const char *str = jEnv->GetStringUTFChars (jQ,NULL);
    OperationContext  ctx;     Uint32      pos = cls->findQualifier (String (str));
    const char       *str = jEnv->GetStringUTFChars(jN,NULL);  
    CIMName           prop(str);  
   
    jEnv->ReleaseStringUTFChars(jN,str);  
   
    try {  
       CIMValue *cv = new CIMValue(ch->getProperty(ctx, cop->getNameSpace(),*cop,prop));  
  
       return DEBUG_ConvertCToJava (CIMValue*, jint, cv);     jEnv->ReleaseStringUTFChars (jQ,str);
    }  
    Catch(jEnv);  
  
    return -1;     return (jboolean)(pos != PEG_NOT_FOUND);
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1setProperty  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClass__1addProperty
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jstring jPn, jint jV)        (JNIEnv *jEnv, jobject jThs, jlong jCls, jlong jP)
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);     CIMClass    *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     CIMProperty *p   = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
    OperationContext  ctx;  
    CIMValue         *val = (CIMValue*)jCop;  
    const char       *str = jEnv->GetStringUTFChars(jPn,NULL);  
    CIMName           pName(str);  
   
    jEnv->ReleaseStringUTFChars(jPn,str);  
  
    try {     try
       ch->setProperty(ctx,cop->getNameSpace(),*cop,pName,*val);     {
         cls->addProperty (*p);
    }    }
    Catch(jEnv);    Catch(jEnv);
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1invokeMethod  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClass__1setProperties
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jstring jMn, jobject jIn, jobject jOut)        (JNIEnv *jEnv, jobject jThs, jlong jCls, jobject jVec)
 { {
    JMPIjvm::cacheIDs(jEnv);    JMPIjvm::cacheIDs(jEnv);
  
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);     CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    OperationContext  ctx;  
    const char       *str = jEnv->GetStringUTFChars(jMn,NULL);  
    CIMName           method(str);  
   
    jEnv->ReleaseStringUTFChars(jMn,str);  
   
    Array<CIMParamValue> in;  
    Array<CIMParamValue> out;  
   
    for (int i = 0, m = jEnv->CallIntMethod(jIn,JMPIjvm::jv.VectorSize); i < m; i++) {  
        JMPIjvm::checkException(jEnv);  
   
        jobject jProp = jEnv->CallObjectMethod(jIn,JMPIjvm::jv.VectorElementAt,i);  
  
      for (int i = cls->getPropertyCount () - 1; i >= 0; i--)
      {
         cls->removeProperty (i);
      }
      for (Uint32 i = 0, s = jEnv->CallIntMethod (jVec, JMPIjvm::jv.VectorSize); i < s; i++)
      {
        JMPIjvm::checkException(jEnv);        JMPIjvm::checkException(jEnv);
  
        jint         jp = jEnv->CallIntMethod(jProp,JMPIjvm::jv.CIMPropertyCInst);        jobject      o  = jEnv->CallObjectMethod (jVec,JMPIjvm::jv.VectorElementAt, (i));
        CIMProperty *p  = DEBUG_ConvertJavaToC (jint, CIMProperty*, jp);        jlong        jp = jEnv->CallLongMethod (o,JMPIjvm::jv.CIMPropertyCInst);
         CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jp);
  
        JMPIjvm::checkException(jEnv);        JMPIjvm::checkException(jEnv);
  
        in.append(CIMParamValue(p->getName().getString(),p->getValue()));        cls->addProperty (*cp);
      }
    }    }
    try {  
       CIMValue *val = new CIMValue(ch->invokeMethod(ctx,cop->getNameSpace(),*cop,method,in,out));  
  
       for (int i=0,m=out.size(); i<m; i++) {  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1getProperty
          const CIMParamValue &parm = out[i];       (JNIEnv *jEnv, jobject jThs, jlong jCls, jstring jN)
          const CIMValue       v    = parm.getValue();  {
          CIMProperty         *p    = new CIMProperty(parm.getParameterName(),v,v.getArraySize());     CIMClass   *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
          jint                 jp   = DEBUG_ConvertCToJava (CIMProperty*, jint, p);     const char *str = jEnv->GetStringUTFChars (jN,NULL);
          jobject              prop = jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jp);     jlong       rv  = 0;
      Uint32      pos = cls->findProperty (CIMName (str));
  
          jEnv->CallVoidMethod(jOut,JMPIjvm::jv.VectorAddElement,prop);     if (pos != PEG_NOT_FOUND)
       }        rv = DEBUG_ConvertCToJava (CIMProperty*,
       return DEBUG_ConvertCToJava (CIMValue*, jint, val);                                   jlong,
    }                                   new CIMProperty (cls->getProperty (pos)));
    Catch(jEnv);  
  
    return 0;     jEnv->ReleaseStringUTFChars (jN,str);
   
      return rv;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1invokeMethod24  JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClass__1getProperties
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jstring jMn,        (JNIEnv *jEnv, jobject jThs, jlong jCls, jobject jVec)
         jobjectArray jIn, jobjectArray jOut)  
 { {
    JMPIjvm::cacheIDs(jEnv);    JMPIjvm::cacheIDs(jEnv);
  
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);     CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    OperationContext  ctx;  
    const char       *str = jEnv->GetStringUTFChars(jMn,NULL);  
    CIMName           method(str);  
  
    jEnv->ReleaseStringUTFChars(jMn,str);     for (int i = 0, s = cls->getPropertyCount (); i < s; i++)
      {
         CIMProperty *cp   = new CIMProperty (cls->getProperty (i));
         jlong        jCp  = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
         jobject      prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jCp);
  
    Array<CIMParamValue> in;        jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop);
    Array<CIMParamValue> out;     }
  
    for (int i=0,m=jEnv->GetArrayLength(jIn); i<m; i++) {     return jVec;
        JMPIjvm::checkException(jEnv);  }
  
        jobject jArg=jEnv->GetObjectArrayElement(jIn,i);  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1new
        JMPIjvm::checkException(jEnv);        (JNIEnv *jEnv, jobject jThs, jstring jN)
   {
      const char *str = jEnv->GetStringUTFChars (jN,NULL);
      CIMClass   *cls = new CIMClass (CIMName (str), CIMName ());
  
        jint           jp = jEnv->CallIntMethod(jArg,JMPIjvm::jv.CIMArgumentCInst);     jEnv->ReleaseStringUTFChars (jN,str);
        CIMParamValue *p  = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jp);  
  
        JMPIjvm::checkException(jEnv);     return DEBUG_ConvertCToJava (CIMClass*, jlong, cls);
   
        in.append(*p);  
    }    }
    try {  
       CIMValue *val=new CIMValue(ch->invokeMethod(ctx,cop->getNameSpace(),*cop,method,in,out));  
  
       for (int i=0,m=out.size(),o=jEnv->GetArrayLength(jOut); i<m && i<o; i++) {  JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMClass__1getSuperClass
          CIMParamValue *parm  = new CIMParamValue (out[i]);        (JNIEnv *jEnv, jobject jThs, jlong jCls)
          jint           jParm = DEBUG_ConvertCToJava (CIMParamValue*, jint, parm);  {
      CIMClass     *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
      const String &cn  = cls->getSuperClassName ().getString ();
  
          jEnv->SetObjectArrayElement(jOut,i,     jstring str = jEnv->NewStringUTF (cn.getCString ());
                                      jEnv->NewObject(JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewI,jParm));  
       }  
       return DEBUG_ConvertCToJava (CIMValue*, jint, val);  
    }  
    Catch(jEnv);  
  
    return 0;     return str;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1associatorNames  JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClass__1getKeys
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop,        (JNIEnv *jEnv, jobject jThs, jlong jCls, jobject jVec)
    jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole)  
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);     JMPIjvm::cacheIDs (jEnv);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    OperationContext  ctx;  
    const char       *str = jEnv->GetStringUTFChars(jAssocClass,NULL);  
    CIMName           assocClass(str);  
  
    jEnv->ReleaseStringUTFChars(jAssocClass,str);     CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
  
    str=jEnv->GetStringUTFChars(jResultClass,NULL);     if (cls->hasKeys ())
      {
         Array<CIMName> keyNames;
  
    CIMName resultClass(str);        cls->getKeyNames (keyNames);
  
    jEnv->ReleaseStringUTFChars(jResultClass,str);        for (int i = 0, s = keyNames.size (); i < s; i++)
         {
            Uint32 pos = cls->findProperty (keyNames[i]);
  
    str=jEnv->GetStringUTFChars(jRole,NULL);           if (pos != PEG_NOT_FOUND)
            {
               CIMProperty *cp  = new CIMProperty (cls->getProperty (pos));
               jlong        jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
  
    String role(str);              jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jCp);
  
    jEnv->ReleaseStringUTFChars(jRole,str);              jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop);
            }
         }
      }
  
    str=jEnv->GetStringUTFChars(jResultRole,NULL);     return jVec;
   }
  
    String resultRole(str);  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1getMethod
         (JNIEnv *jEnv, jobject jThs, jlong jCls, jstring jN)
   {
      CIMClass   *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
      const char *str = jEnv->GetStringUTFChars (jN,NULL);
      jlong       rv  = 0;
      Uint32      pos = cls->findMethod (String (str));
  
    jEnv->ReleaseStringUTFChars(jResultRole,str);     if (pos != PEG_NOT_FOUND)
      {
         rv = DEBUG_ConvertCToJava (CIMMethod*, jlong, new CIMMethod (cls->getMethod (pos)));
      }
  
    try {     jEnv->ReleaseStringUTFChars (jN,str);
       Array<CIMObjectPath> enm=ch->associatorNames(ctx,  
                                                    cop->getNameSpace(),  
                                                    *cop,  
                                                    assocClass,  
                                                    resultClass,  
                                                    role,  
                                                    resultRole);  
  
       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, new Array<CIMObjectPath>(enm));     return rv;
    }    }
    Catch(jEnv);  
  
    return 0;  JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMClass__1equals
 }        (JNIEnv *jEnv, jobject jThs, jlong jCls, jlong jClsToBeCompared)
   {
      CIMClass *cls             = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
      CIMClass *clsToBeCompared = DEBUG_ConvertJavaToC (jlong, CIMClass*, jClsToBeCompared);
      bool      fRc             = false;
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1associators     if (  cls
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop,        && clsToBeCompared
    jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole,        )
    jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)  
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);        try
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);        {
    OperationContext  ctx;           fRc = cls->identical (*clsToBeCompared);
    CIMPropertyList   pl  = getList(jEnv,jPl);        }
    const char       *str = jEnv->GetStringUTFChars(jAssocClass,NULL);        Catch (jEnv);
    CIMName           assocClass(str);     }
  
    jEnv->ReleaseStringUTFChars(jAssocClass,str);     return fRc;
   }
  
    str=jEnv->GetStringUTFChars(jResultClass,NULL);  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClass__1finalize
        (JNIEnv *jEnv, jobject jThs, jlong jCls)
   {
      CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
  
    CIMName resultClass(str);     delete cls;
  
    jEnv->ReleaseStringUTFChars(jResultClass,str);     DEBUG_ConvertCleanup (jlong, jCls);
   }
  
    str=jEnv->GetStringUTFChars(jRole,NULL);  
  
    String role(str);  // -------------------------------------
   // ---
   // -            CIMClient
   // ---
   // -------------------------------------
  
    jEnv->ReleaseStringUTFChars(jRole,str);  void checkNs (CIMObjectPath *cop, jlong jNs)
   {
      if (cop->getNameSpace ().isNull ())
      {
         _nameSpace *cNs = DEBUG_ConvertJavaToC (jlong, _nameSpace*, jNs);
  
    str=jEnv->GetStringUTFChars(jResultRole,NULL);        cop->setNameSpace (CIMNamespaceName (cNs->nameSpace ()));
      }
   }
  
    String resultRole(str);  static int normalizeNs (String &ns, String &nsBase, String &lastNsComp)
   {
      Uint32 n = ns.size ();
  
    jEnv->ReleaseStringUTFChars(jResultRole,str);     if (ns[n-1] == '/')
      {
         if (n >= 2)
            ns = ns.subString (0, n-2);
      }
  
    try {     lastNsComp = ns;
       Array<CIMObject>    enm     = ch->associators(ctx,     nsBase     = "root";
                                                     cop->getNameSpace(),  
                                                     *cop,  
                                                     assocClass,  
                                                     resultClass,  
                                                     role,  
                                                     resultRole,  
                                                     (Boolean)includeQualifiers,  
                                                     (Boolean)includeClassOrigin,  
                                                     pl);  
       Array<CIMInstance> *enmInst = new Array<CIMInstance>();  
  
       for (int i=0,m=enm.size(); i<m; i++) {     n = ns.reverseFind ('/');
          enmInst->append(CIMInstance(enm[i]));  
       }  
  
       return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, enmInst);     if (n != PEG_NOT_FOUND)
      {
         lastNsComp = ns.subString (n+1);
         nsBase     = ns.subString (0, n);
    }    }
    Catch(jEnv);  
  
    return 0;    return 0;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1referenceNames  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1newNaUnPw
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop,    (JNIEnv *jEnv, jobject jThs, jlong jNs, jstring jUn, jstring jPw)
    jstring jAssocClass, jstring jRole)  
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);     _nameSpace *cNs = DEBUG_ConvertJavaToC (jlong, _nameSpace*, jNs);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     const char *un  = jEnv->GetStringUTFChars (jUn, NULL);
    OperationContext  ctx;     const char *pw  = jEnv->GetStringUTFChars (jPw, NULL);
    const char       *str = jEnv->GetStringUTFChars(jAssocClass,NULL);     jlong       jCc = 0;
    CIMName           assocClass(str);  
  
    jEnv->ReleaseStringUTFChars(jAssocClass,str);     try {
         CIMClient *cc = new CIMClient ();
  
    str=jEnv->GetStringUTFChars(jRole,NULL);        cc->connect (cNs->hostName (), cNs->port (), un, pw);
  
    String role(str);        jCc = DEBUG_ConvertCToJava (CIMClient*, jlong, cc);
      }
      Catch (jEnv);
  
    jEnv->ReleaseStringUTFChars(jRole,str);     jEnv->ReleaseStringUTFChars (jUn, un);
      jEnv->ReleaseStringUTFChars (jPw, pw);
  
    try {     return jCc;
       Array<CIMObjectPath> enm = ch->referenceNames(ctx,  }
                                                     cop->getNameSpace(),  
                                                     *cop,  
                                                     assocClass,  
                                                     role);  
  
       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, new Array<CIMObjectPath>(enm));  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1disconnect
     (JNIEnv *jEnv, jobject jThs, jlong jCc)
   {
      CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
   
      try {
         cCc->disconnect ();
    }    }
    Catch(jEnv);    Catch(jEnv);
   
    return 0;  
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1references  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1getClass
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop,    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean lo,
    jstring jAssocClass, jstring jRole,           jboolean iq, jboolean ic, jobjectArray jPl)
    jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)  
 { {
    CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);     CIMClient       *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
    OperationContext  ctx;  
    CIMPropertyList   pl  = getList(jEnv,jPl);    CIMPropertyList   pl  = getList(jEnv,jPl);
    const char       *str = jEnv->GetStringUTFChars(jAssocClass,NULL);  
    CIMName           assocClass(str);  
   
    jEnv->ReleaseStringUTFChars(jAssocClass,str);  
   
    str=jEnv->GetStringUTFChars(jRole,NULL);  
   
    String role(str);  
   
    jEnv->ReleaseStringUTFChars(jRole,str);  
  
      if (  cCc
         && cop
         )
      {
    try {    try {
       Array<CIMObject>    enm     = ch->references(ctx,           checkNs (cop, jNs);
                                                    cop->getNameSpace(),  
                                                    *cop,           CIMClass      cls    = cCc->getClass (cop->getNameSpace (),
                                                    assocClass,                                                 cop->getClassName (),
                                                    role,                                                 (Boolean)lo,
                                                    (Boolean)includeQualifiers,                                                 (Boolean)iq,
                                                    (Boolean)includeClassOrigin,                                                 (Boolean)ic,
                                                    pl);                                                    pl);
       Array<CIMInstance> *enmInst = new Array<CIMInstance>();           CIMObjectPath copNew = cls.getPath ();
  
       for (int i=0,m=enm.size(); i<m; i++) {           copNew.setNameSpace (cop->getNameSpace ());
          enmInst->append(CIMInstance(enm[i]));           cls.setPath (copNew);
       }  
  
       return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, enmInst);           return DEBUG_ConvertCToJava (CIMClass*, jlong, new CIMClass (cls));
    }    }
    Catch(jEnv);    Catch(jEnv);
      }
  
    return 0;    return 0;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteClass
    (JNIEnv *jEnv, jobject jThs, jint jCh, jstring jName, jstring jNs, jint jInd)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop)
 {  
    CIMOMHandle *ch  = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);  
    CIMInstance *ind = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInd);  
    const char  *str = jEnv->GetStringUTFChars (jName, NULL);  
    String       name (str);  
   
    jEnv->ReleaseStringUTFChars (jName, str);  
   
    str = jEnv->GetStringUTFChars (jNs, NULL);  
   
    String ns (str);  
   
    jEnv->ReleaseStringUTFChars (jNs, str);  
   
    CIMObjectPath ref (ind->getPath ());  
   
    ref.setNameSpace (ns);  
    DDD(PEGASUS_STD(cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent() ref = "<<ref.toString ()<<PEGASUS_STD(endl));  
    DDD(PEGASUS_STD(cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent() ind = "<<ind->getPath ().toString ()<<PEGASUS_STD(endl));  
    ind->setPath (ref);  
    DDD(PEGASUS_STD(cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent() ind = "<<ind->getPath ().toString ()<<PEGASUS_STD(endl));  
   
    JMPIProviderManager::indProvRecord   *prec        = NULL;  
    String                                sPathString = ind->getPath ().toString ();  
    OperationContext                     *context     = NULL;  
    bool                                  fResult     = false;  
   
    {    {
       AutoMutex lock (JMPIProviderManager::mutexProvTab);     CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
      CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
  
       fResult = JMPIProviderManager::provTab.lookup (name, prec);     try {
         checkNs (cop, jNs);
       DDD(PEGASUS_STD(cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent() fResult = "<<fResult<<", name = "<<name<<PEGASUS_STD(endl));  
    }  
  
    if (fResult)        cCc->deleteClass (cop->getNameSpace (),
    {                          cop->getClassName ());
       if (prec->enabled)  
       {  
          try  
          {  
             prec->handler->deliver (*prec->ctx, *ind);  
          }          }
          Catch(jEnv);          Catch(jEnv);
       }       }
    }  
    else  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1createClass
     (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jlong jCl)
    {    {
       DDD(PEGASUS_STD(cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent() provider name \""<<name<<"\" not found"<<PEGASUS_STD(endl));     CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
      CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMClass      *cl  = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCl);
   
      try {
         cCc->createClass (cop->getNameSpace (), *cl);
    }    }
      Catch (jEnv);
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1finalize  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setClass
    (JNIEnv *jEnv, jobject jThs, jint jCh)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jlong jCl)
 { {
    CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);     CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
      CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMClass      *cl  = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCl);
  
    delete ch;     try {
        checkNs (cop, jNs);
  
    DEBUG_ConvertCleanup (jint, jCh);       cCc->modifyClass (cop->getNameSpace (), *cl);
      }
      Catch (jEnv);
 } }
  
 // -------------------------------------  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1getInstance
 // ---    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean lo,
 // -            CIMClass           jboolean iq, jboolean ic, jobjectArray jPl)
 // ---  
 // -------------------------------------  
   
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClass__1newInstance  
   (JNIEnv *jEnv, jobject jThs, jint jCls)  
 { {
    CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);     CIMClient        *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
      CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMPropertyList   pl  = getList (jEnv, jPl);
  
    try {    try {
       CIMInstance *ci = new CIMInstance(cls->getClassName());        checkNs (cop, jNs);
  
       for (int i=0,m=cls->getQualifierCount(); i<m; i++) {        CIMInstance inst = cCc->getInstance (cop->getNameSpace (),
          try {                                             *cop,
             ci->addQualifier(cls->getQualifier(i).clone());                                             (Boolean)lo,
                                              (Boolean)iq,
                                              (Boolean)ic,
                                              pl);
   
         inst.setPath (*cop);
   
         return DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance (inst));
          }          }
          catch (Exception e) {}     Catch (jEnv);
   
      return 0;
       }       }
       for (int i=0,m=cls->getPropertyCount(); i<m; i++) {  
          CIMProperty cp = cls->getProperty(i);  
  
          ci->addProperty(cp.clone());  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteInstance
     (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop)
   {
      CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
      CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
  
          for (int j=0, s=cp.getQualifierCount(); j<s; j++) {  
             try {             try {
                ci->getProperty(i).addQualifier(cp.getQualifier(j));        checkNs (cop, jNs);
             }  
             catch (Exception e) {}  
          }  
       }  
  
       return DEBUG_ConvertCToJava (CIMInstance*, jint, ci);        cCc->deleteInstance (cop->getNameSpace (), *cop);
    }    }
    Catch(jEnv);    Catch(jEnv);
   
    return 0;  
 } }
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMClass__1getName  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1createInstance
    (JNIEnv *jEnv, jobject jThs, jint jCls)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jlong jCi)
 { {
    CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);     CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
      CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMInstance   *ci  = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jCi);
  
    try {    try {
       const String &cn=cls->getClassName().getString();        checkNs (cop, jNs);
       jstring str=jEnv->NewStringUTF(cn.getCString());  
  
       return str;        ci->setPath (*cop);
   
         CIMObjectPath obj = cCc->createInstance (cop->getNameSpace (), *ci);
   
         return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath (obj));
    }    }
    Catch(jEnv);    Catch(jEnv);
  
    return 0;    return 0;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClass__1getQualifier  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1modifyInstance
    (JNIEnv *jEnv, jobject jThs, jint jCls, jstring jN)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jlong jCi,
            jboolean iq, jobjectArray jPl)
 { {
    CIMClass   *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);     CIMClient       *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    const char *str = jEnv->GetStringUTFChars(jN,NULL);     CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
    jint        rv  = -1;     CIMInstance     *ci  = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jCi);
    Uint32      pos = cls->findQualifier(String(str));     CIMPropertyList  pl  = getList (jEnv, jPl);
  
    if (pos!=PEG_NOT_FOUND)     try {
       rv = DEBUG_ConvertCToJava (CIMQualifier*, jint, new CIMQualifier(cls->getQualifier(pos)));        checkNs (cop, jNs);
  
    jEnv->ReleaseStringUTFChars(jN,str);        ci->setPath (*cop);
  
    return rv;        cCc->modifyInstance (cop->getNameSpace (), *ci, (Boolean)iq, pl);
      }
      Catch (jEnv);
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClass__1getProperty  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateClasses
      (JNIEnv *jEnv, jobject jThs, jint jCls, jstring jN)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean deep, jboolean lo, jboolean iq, jboolean ic)
 { {
    CIMClass   *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);     CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    const char *str = jEnv->GetStringUTFChars(jN,NULL);     CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
    jint        rv  = -1;  
    Uint32      pos = cls->findProperty(CIMName(str));  
  
    if (pos!=PEG_NOT_FOUND)     try {
       rv = DEBUG_ConvertCToJava (CIMProperty*, jint, new CIMProperty(cls->getProperty(pos)));        checkNs (cop, jNs);
  
    jEnv->ReleaseStringUTFChars(jN,str);        Array<CIMClass> enm = cCc->enumerateClasses (cop->getNameSpace (),
                                                      cop->getClassName (),
                                                      (Boolean)deep,
                                                      (Boolean)lo,
                                                      (Boolean)iq,
                                                      (Boolean)ic);
  
    return rv;        return DEBUG_ConvertCToJava (Array<CIMClass>*, jlong, new Array<CIMClass> (enm));
 } }
      Catch (jEnv);
  
 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMClass__1hasQualifier     return 0;
      (JNIEnv *jEnv, jobject jThs, jint jCls, jstring jQ)  
 {  
    CIMClass   *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);  
    const char *str = jEnv->GetStringUTFChars(jQ,NULL);  
    Uint32      pos = cls->findQualifier(String(str));  
   
    jEnv->ReleaseStringUTFChars(jQ,str);  
   
    return (jboolean)(pos!=PEG_NOT_FOUND);  
 } }
  
 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClass__1getProperties  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateClassNames
       (JNIEnv *jEnv, jobject jThs, jint jCls, jobject jVec)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean deep)
 { {
    JMPIjvm::cacheIDs(jEnv);     CIMClient        *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
      CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMNamespaceName  ns  = cop->getNameSpace ();
  
    CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);     try {
         checkNs (cop, jNs);
  
    for (int i=0,s=cls->getPropertyCount(); i<s; i++) {        Array<CIMName>        enm   = cCc->enumerateClassNames (ns,
       CIMProperty *cp  = new CIMProperty(cls->getProperty(i));                                                                cop->getClassName (),
       jint         jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);                                                                (Boolean)deep);
         Array<CIMObjectPath> *enmop = new Array<CIMObjectPath> ();
  
       jobject prop=jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jCp);        for (int i = 0, m = enm.size (); i < m; i++)
         {
            enmop->append (CIMObjectPath (String::EMPTY, ns, enm[i]));
         }
  
       jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,prop);        return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, enmop);
    }    }
      Catch (jEnv);
  
    return jVec;     return 0;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClass__1addProperty  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateInstanceNames
       (JNIEnv *jEnv, jobject jThs, jint jCls, jint jP)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean deep)
 { {
    CIMClass    *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);     CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    CIMProperty *p   = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);     CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
  
    cls->addProperty(*p);     try {
 }        checkNs (cop,jNs);
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClass__1setProperties        Array<CIMObjectPath> enm = cCc->enumerateInstanceNames (cop->getNameSpace (),
       (JNIEnv *jEnv, jobject jThs, jint jCls, jobject jVec)                                                                cop->getClassName ()); //, (Boolean)deep);
 {  
    JMPIjvm::cacheIDs(jEnv);  
  
    CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);        return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));
      }
      Catch (jEnv);
  
    for (int i=cls->getPropertyCount()-1; i>=0; i--) {     return 0;
       cls->removeProperty(i);  
    }    }
    for (Uint32 i=0,s=jEnv->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<s; i++) {  
       JMPIjvm::checkException(jEnv);  
  
       jobject o=jEnv->CallObjectMethod(jVec,JMPIjvm::jv.VectorElementAt,(i));  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateInstances
     (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean deep, jboolean lo,
            jboolean iq, jboolean ic, jobjectArray jPl)
   {
      CIMClient       *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
      CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMPropertyList  pl  = getList (jEnv,jPl);
  
       jint         jp = jEnv->CallIntMethod(o,JMPIjvm::jv.CIMPropertyCInst);     try {
       CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jp);        checkNs (cop, jNs);
  
       JMPIjvm::checkException(jEnv);        CIMPropertyList    props;
         Array<CIMInstance> enm = cCc->enumerateInstances (cop->getNameSpace (),
                                                           cop->getClassName (),
                                                           (Boolean)deep,
                                                           (Boolean)lo,
                                                           (Boolean)iq,
                                                           (Boolean)ic,pl);
  
       cls->addProperty(*cp);        return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, new Array<CIMInstance> (enm));
    }  
 } }
      Catch (jEnv);
  
      return 0;
   }
  
 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClass__1getQualifiers  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateQualifiers
       (JNIEnv *jEnv, jobject jThs, jint jCls, jobject jVec)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop)
 { {
    JMPIjvm::cacheIDs(jEnv);     CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
      CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
  
    CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);     try {
         checkNs (cop, jNs);
  
    for (int i=0,s=cls->getQualifierCount(); i<s; i++) {        Array<CIMQualifierDecl> enm = cCc->enumerateQualifiers (cop->getNameSpace ());
       CIMQualifier *cq   = new CIMQualifier(cls->getQualifier(i));  
       jint          jCq  = DEBUG_ConvertCToJava (CIMQualifier*, jint, cq);  
       jobject       qual = jEnv->NewObject(JMPIjvm::jv.CIMQualifierClassRef,JMPIjvm::jv.CIMQualifierNewI,jCq);  
  
       jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,qual);        return DEBUG_ConvertCToJava (Array<CIMQualifierDecl>*, jlong, new Array<CIMQualifierDecl> (enm));
    }    }
      Catch (jEnv);
  
    return jVec;     return 0;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClass__1new  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1getQualifier
       (JNIEnv *jEnv, jobject jThs, jstring jN)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop)
 { {
    const char *str = jEnv->GetStringUTFChars(jN,NULL);     CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    CIMClass   *cls = new CIMClass(CIMName(str), CIMName());     CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
  
    jEnv->ReleaseStringUTFChars(jN,str);     try {
         checkNs (cop,jNs);
  
    return DEBUG_ConvertCToJava (CIMClass*, jint, cls);        CIMQualifierDecl *val = new CIMQualifierDecl (cCc->getQualifier (cop->getNameSpace (),
                                                                          cop->getClassName ()));
   
         return DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, val);
 } }
      Catch (jEnv);
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMClass__1getSuperClass     return 0;
       (JNIEnv *jEnv, jobject jThs, jint jCls)  }
   
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setQualifier
     (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jlong jQ)
 { {
    CIMClass     *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);     CIMClient        *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    const String &cn  = cls->getSuperClassName().getString();     CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMQualifierDecl *qt  = DEBUG_ConvertJavaToC (jlong, CIMQualifierDecl*, jQ);
  
    jstring str=jEnv->NewStringUTF(cn.getCString());     try {
         checkNs (cop, jNs);
  
    return str;        cCc->setQualifier (cop->getNameSpace (), *qt);
      }
      Catch (jEnv);
 } }
  
 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClass__1getKeys  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteQualifier
       (JNIEnv *jEnv, jobject jThs, jint jCls, jobject jVec)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop)
 { {
    JMPIjvm::cacheIDs(jEnv);     CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
      CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
    CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);  
   
    if (cls->hasKeys()) {  
       Array<CIMName> keyNames;  
       cls->getKeyNames(keyNames);  
       for(int i=0, s=keyNames.size();i<s;i++){  
          Uint32 pos=cls->findProperty(keyNames[i]);  
          if (pos!=PEG_NOT_FOUND){  
             CIMProperty *cp  = new CIMProperty(cls->getProperty(pos));  
             jint         jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);  
  
             jobject prop=jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jCp);     try {
         checkNs (cop, jNs);
  
             jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,prop);        cCc->deleteQualifier (cop->getNameSpace (), cop->getClassName ());
          }  
       }  
    }    }
      Catch (jEnv);
    return jVec;  
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClass__1getMethod  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1getProperty
       (JNIEnv *jEnv, jobject jThs, jint jCls, jstring jN)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jPn)
 { {
    CIMClass   *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);     CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    const char *str = jEnv->GetStringUTFChars(jN,NULL);     CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
    jint        rv  = -1;     const char    *str = jEnv->GetStringUTFChars (jPn, NULL);
    Uint32      pos = cls->findMethod(String(str));     CIMName        pName (str);
      jlong          jCv = 0;
  
    if (pos!=PEG_NOT_FOUND) {     try {
       rv = DEBUG_ConvertCToJava (CIMMethod*, jint, new CIMMethod(cls->getMethod(pos)));        checkNs (cop, jNs);
    }  
  
    jEnv->ReleaseStringUTFChars(jN,str);        CIMValue *val = new CIMValue (cCc->getProperty (cop->getNameSpace (), *cop, pName));
  
    return rv;        jCv = DEBUG_ConvertCToJava (CIMValue*, jlong, val);
 } }
      Catch (jEnv);
  
 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMClass__1equals     jEnv->ReleaseStringUTFChars (jPn, str);
       (JNIEnv *jEnv, jobject jThs, jint jCls, jint jClsToBeCompared)  
 {  
    CIMClass *cls             = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);  
    CIMClass *clsToBeCompared = DEBUG_ConvertJavaToC (jint, CIMClass*, jClsToBeCompared);  
  
    return cls->identical(*clsToBeCompared);     return jCv;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClass__1finalize  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setProperty
      (JNIEnv *jEnv, jobject jThs, jint jCls)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jPn, jlong jV)
 { {
    CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);     CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
      CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMValue      *val = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
      const char    *str = jEnv->GetStringUTFChars (jPn, NULL);
      CIMName        pName (str);
  
    delete cls;     try {
         checkNs (cop,jNs);
   
         cCc->setProperty (cop->getNameSpace (), *cop, pName, *val);
      }
      Catch (jEnv);
  
    DEBUG_ConvertCleanup (jint, jCls);     jEnv->ReleaseStringUTFChars (jPn, str);
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClass__1filterProperties  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1execQuery
       (JNIEnv *jEnv, jobject jThs, jint jInst, jobjectArray jPl, jboolean iq, jboolean ic, jboolean lo)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jQuery, jstring jQl)
 { {
    CIMClass *cc   = DEBUG_ConvertJavaToC (jint, CIMClass*, jInst);     CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    CIMClass *cf   = 0;     CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
    CIMName   clsn = cc->getClassName();     const char    *str = jEnv->GetStringUTFChars (jQuery, NULL);
      String         query (str);
  
    if (lo) {  /* @NOTE
       cf = new CIMClass(cc->clone());  ** This does not work for some reason on the client java code:
   **   DDD (PEGASUS_STD (cout)<<"--- JMPIjvm::Java_org_pegasus_jmpi_CIMClient__1execQuery: jEnv = "<<PEGASUS_STD (hex)<< (long)jEnv<<", jThs = "<< (long)jThs<<PEGASUS_STD (dec)<<", jCc = "<<jCc<<", jNs = "<<jNs<<", jCop = "<<jCop<<", jQuery = "<<PEGASUS_STD (hex)<< (long)jQuery<<", jQl = "<< (long)jQl<<PEGASUS_STD (dec)<<PEGASUS_STD (endl));
   ** What does work is:
   **   printf ("This is a test\n");
   **
   ** To debug these JNI functions insert the following:
   **    if (getenv ("PEGASUS_JMPI_GDB"))
   **    {
   **       bool fLoop = true;
   **       int  i     = 0;
   **
   **       while (fLoop)
   **       {
   **          i = 1;
   **       }
   **    }
   ** Export the variable PEGASUS_JMPI_GDB = 1.
   ** Start gdb in another process.
   **    shell ps -efl
   **    att <ps number>
   **    set fLoop = 0
   */
  
       CIMName clsn=cc->getClassName();     jEnv->ReleaseStringUTFChars (jQuery, str);
  
       for (int i=cf->getPropertyCount()-1; i>=0; i--)     str = jEnv->GetStringUTFChars (jQl, NULL);
          if (cf->getProperty(i).getClassOrigin()==clsn) cf->removeProperty(i);  
  
       return DEBUG_ConvertCToJava (CIMClass*, jint, cf);     String ql (str);
    }  
    else if (jPl) {  
       CIMPropertyList pl = getList(jEnv,jPl);  
       Array<CIMName>  n  = pl.getPropertyNameArray();  
  
       cf = new CIMClass(clsn, cc->getSuperClassName());     jEnv->ReleaseStringUTFChars (jQl, str);
  
       for (int i = 0,s = n.size(); i < s; i++) {     try {
          Uint32 pos=cc->findProperty(n[i]);        checkNs (cop, jNs);
  
          if (pos!=PEG_NOT_FOUND) {        Array<CIMObject>    enm     = cCc->execQuery (cop->getNameSpace (),
             if (iq) {                                                      ql,
                CIMProperty cp = cc->getProperty(pos).clone();                                                      query);
         Array<CIMInstance> *enmInst = new Array<CIMInstance> ();
  
                if (!ic)        for (int i = 0,m = enm.size (); i<m; i++)
                   cp.setClassOrigin(CIMName());        {
            enmInst->append (CIMInstance (enm[i]));
         }
  
                cf->addProperty(cp);        return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, enmInst);
             }             }
             else {     Catch (jEnv);
                CIMProperty cp = cc->getProperty(pos);  
                CIMName     co;  
  
                if (ic)     return 0;
                   co = cp.getClassOrigin();  }
  
                CIMProperty np(cp.getName(),  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod
                               cp.getValue(),    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jMn, jobject jIn, jobject jOut)
                               cp.getArraySize(),  {
                               cp.getReferenceClassName(),     JMPIjvm::cacheIDs (jEnv);
                               co,  
                               cp.getPropagated());  
  
                cf->addProperty(np);     CIMClient            *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
             }     CIMObjectPath        *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
          }     const char           *str = jEnv->GetStringUTFChars (jMn, NULL);
       }     CIMName               method (str);
       if (iq)     jlong                 jCv = 0;
          for (Uint32 i = 0, s = cc->getQualifierCount(); i < s; i++)     Array<CIMParamValue>  in;
             cf->addQualifier(cc->getQualifier(i));     Array<CIMParamValue>  out;
    }  
    else if (iq) {  
       cf = new CIMClass(cc->clone());  
  
       if (ic)     for (int i = 0,m = jEnv->CallIntMethod (jIn,JMPIjvm::jv.VectorSize); i<m; i++)
          return DEBUG_ConvertCToJava (CIMClass*, jint, cf);     {
          JMPIjvm::checkException (jEnv);
  
       for (int i = cf->getPropertyCount()-1; i >= 0; i--) {         jobject jProp = jEnv->CallObjectMethod (jIn,JMPIjvm::jv.VectorElementAt,i);
          CIMProperty cp=cf->getProperty(i);  
  
          cp.setClassOrigin(CIMName());         JMPIjvm::checkException (jEnv);
          cf->removeProperty(i);  
          cf->addProperty(cp);         jlong        jp = jEnv->CallLongMethod (jProp,JMPIjvm::jv.CIMPropertyCInst);
       }         CIMProperty *p  = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jp);
   
          JMPIjvm::checkException (jEnv);
   
          in.append (CIMParamValue (p->getName ().getString (),p->getValue ()));
    }    }
    else {  
       cf = new CIMClass(clsn, cc->getSuperClassName());  
  
       for (int i = cc->getPropertyCount()-1; i >= 0; i--) {     try {
          CIMProperty cp = cc->getProperty(i);        checkNs (cop, jNs);
          CIMName     co;  
  
          if (ic)        CIMValue *val = new CIMValue (cCc->invokeMethod (cop->getNameSpace (),*cop,method,in,out));
             co = cp.getClassOrigin();  
  
          CIMProperty np(cp.getName(),        for (int i = 0,m = out.size (); i<m; i++)
                         cp.getValue(),        {
                         cp.getArraySize(),           const CIMParamValue &parm = out[i];
                         cp.getReferenceClassName(),           const CIMValue       v    = parm.getValue ();
                         co,           CIMProperty         *p    = new CIMProperty (parm.getParameterName (),v,v.getArraySize ());
                         cp.getPropagated());           jlong                jp   = DEBUG_ConvertCToJava (CIMProperty*, jlong, p);
            jobject              prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jp);
  
          cf->addProperty(np);           jEnv->CallVoidMethod (jOut,JMPIjvm::jv.VectorAddElement,prop);
       }  
    }    }
  
    return DEBUG_ConvertCToJava (CIMClass*, jint, cf);        jCv = DEBUG_ConvertCToJava (CIMValue*, jlong, val);
 } }
      Catch (jEnv);
  
      jEnv->ReleaseStringUTFChars (jMn,str);
  
      return jCv;
   }
  
 // -------------------------------------  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod24
 // ---    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jMn,
 // -            CIMInstance          jobjectArray jIn, jobjectArray jOut)
 // ---  
   
 // -------------------------------------  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1new  
       (JNIEnv *jEnv, jobject jThs)  
 { {
    return DEBUG_ConvertCToJava (CIMInstance*, jint, new CIMInstance());     JMPIjvm::cacheIDs (jEnv);
 }  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1newCn     CIMClient            *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
       (JNIEnv *jEnv, jobject jThs, jstring jN)     CIMObjectPath        *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      const char           *str = jEnv->GetStringUTFChars (jMn, NULL);
      CIMName               method (str);
      jlong                 jCv = 0;
      Array<CIMParamValue> in;
      Array<CIMParamValue> out;
   
      if (jIn)
 { {
    const char *str = jEnv->GetStringUTFChars(jN,NULL);        for (int i = 0, m = jEnv->GetArrayLength (jIn); i < m; i++)
    CIMInstance *ci = new CIMInstance(CIMName(str));        {
             JMPIjvm::checkException (jEnv);
  
    jEnv->ReleaseStringUTFChars(jN,str);            jobject jArg = jEnv->GetObjectArrayElement (jIn, i);
   
             JMPIjvm::checkException (jEnv);
  
    return DEBUG_ConvertCToJava (CIMInstance*, jint, ci);            jlong          jp = jEnv->CallLongMethod (jArg,JMPIjvm::jv.CIMArgumentCInst);
             CIMParamValue *p  = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jp);
   
             JMPIjvm::checkException (jEnv);
   
             in.append (*p);
 } }
      }
      try {
         checkNs (cop,jNs);
  
 //Added by Andy Viciu        CIMValue *val = new CIMValue (cCc->invokeMethod (cop->getNameSpace (),
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1setName                                                         *cop,
       (JNIEnv *jEnv, jobject jThs, jint jInst, jstring jN)                                                         method,
                                                          in,
                                                          out));
   
         if (jOut)
 { {
    CIMInstance *ci  = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);           for (int i = 0,m = out.size (),o = jEnv->GetArrayLength (jOut); i<m && i<o; i++)
    const char  *str = jEnv->GetStringUTFChars(jN,NULL);           {
               CIMParamValue *parm  = new CIMParamValue (out[i]);
               jlong          jParm = DEBUG_ConvertCToJava (CIMParamValue*, jlong, parm);
  
    jEnv->ReleaseStringUTFChars(jN,str);              jEnv->SetObjectArrayElement (jOut,
                                           i,
                                           jEnv->NewObject (JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewJ,jParm));
            }
         }
         jCv = DEBUG_ConvertCToJava (CIMValue*, jlong, val);
      }
      Catch (jEnv);
  
    /* NOT SUPPORTED AND NOT NEEDED*/     jEnv->ReleaseStringUTFChars (jMn, str);
   
      return jCv;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1setProperty  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1associatorNames
       (JNIEnv *jEnv, jobject jThs, jint jInst, jstring jN, jint jV)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop,
      jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole)
 { {
    CIMInstance *ci  = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);     CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    CIMValue    *cv  = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);     CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
    const char  *str = jEnv->GetStringUTFChars(jN,NULL);     const char    *str = jEnv->GetStringUTFChars (jAssocClass, NULL);
    Uint32       pos = ci->findProperty(CIMName(str));  
  
    try {     CIMName assocClass;
       if (pos!=PEG_NOT_FOUND)  
       {  
          CIMProperty cp=ci->getProperty(pos);  
  
          if (cp.getType()==cv->getType())     if (  str
         && *str
         )
          {          {
             cp.setValue(*cv);        if (CIMName::legal (str))
         {
            assocClass = str;
          }          }
          else          else
          {          {
             DDD(PEGASUS_STD(cerr)<<"!!! CIMInstance.setProperty - Wrong type of CIMValue (instance name:"<<ci->getClassName().getString()<<", property name: "<<str<<")");           jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
             DDD(PEGASUS_STD(cerr)<<"!!! CIMInstance.setProperty : "<<cp.getType()<<" <> "<<cv->getType()<<PEGASUS_STD(endl));                                         JMPIjvm::jv.CIMExceptionNewISt,
                                          (jint)4, // CIM_ERR_INVALID_PARAMETER
                                          jEnv->NewStringUTF ("Invalid association class name"));
   
            jEnv->Throw ((jthrowable)ev);
  
             throw CIMException(CIM_ERR_FAILED, String("Type mismatch"));           return 0;
         }
          }          }
  
          ci->removeProperty(pos);     jEnv->ReleaseStringUTFChars (jAssocClass,str);
          ci->addProperty(cp);  
      str = jEnv->GetStringUTFChars (jResultClass, NULL);
   
      CIMName resultClass;
   
      if (  str
         && *str
         )
      {
         if (CIMName::legal (str))
         {
            resultClass = str;
       }       }
       else       else
       {       {
          CIMProperty *cp=new CIMProperty(CIMName(str),*cv);           jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
          ci->addProperty(*cp);                                         JMPIjvm::jv.CIMExceptionNewISt,
                                          (jint)4, // CIM_ERR_INVALID_PARAMETER
                                          jEnv->NewStringUTF ("Invalid result class name"));
   
            jEnv->Throw ((jthrowable)ev);
   
            return 0;
       }       }
    }    }
    Catch(jEnv);  
  
    jEnv->ReleaseStringUTFChars(jN,str);     jEnv->ReleaseStringUTFChars (jResultClass, str);
 }  
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1setProperties     str = jEnv->GetStringUTFChars (jRole, NULL);
       (JNIEnv *jEnv, jobject jThs, jint jInst, jobject jV)  
 {  
    throw CIMException(CIM_ERR_NOT_SUPPORTED, String("Not yet supported"));  
 }  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1getProperty     String role (str);
       (JNIEnv *jEnv, jobject jThs, jint jInst, jstring jN)  
 {  
    CIMInstance *ci  = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);  
    const char  *str = jEnv->GetStringUTFChars(jN,NULL);  
    jint         rv  = -1;  
  
    try {     jEnv->ReleaseStringUTFChars (jRole, str);
       Uint32 pos = ci->findProperty(CIMName(str));  
  
       if (pos != PEG_NOT_FOUND)     str = jEnv->GetStringUTFChars (jResultRole, NULL);
       {  
          CIMProperty *cp = new CIMProperty(ci->getProperty(pos));  
  
          rv = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);     String resultRole (str);
       }  
      jEnv->ReleaseStringUTFChars (jResultRole, str);
   
      try {
         checkNs (cop,jNs);
   
         Array<CIMObjectPath> enm = cCc->associatorNames (cop->getNameSpace (),
                                                         *cop,
                                                         assocClass,
                                                         resultClass,
                                                         role,
                                                         resultRole);
         return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));
    }    }
    Catch(jEnv);    Catch(jEnv);
  
    jEnv->ReleaseStringUTFChars(jN,str);     return 0;
   
    return rv;  
 } }
  
 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMInstance__1getKeyValuePairs  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1associators
       (JNIEnv *jEnv, jobject jThs, jint jInst, jobject jVec)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop,
      jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole,
      jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)
 { {
    JMPIjvm::cacheIDs(jEnv);     CIMClient       *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
      CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMPropertyList  pl  = getList (jEnv, jPl);
      const char      *str = jEnv->GetStringUTFChars (jAssocClass, NULL);
  
    CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);     CIMName assocClass;
  
 //@HACK     if (  str
 //cout << "ci->getPropertyCount() = " << ci->getPropertyCount() << endl;        && *str
    for (int i=0,s=ci->getPropertyCount(); i<s; i++) {        )
 //cout << ci->getProperty(i).getName ().getString ()     {
 //     << " "        if (CIMName::legal (str))
 //     << ci->getProperty(i).getQualifierCount ()        {
 //     << " "           assocClass = str;
 //     << ci->getProperty(i).findQualifier(CIMName ("key"))        }
 //     << endl;        else
       if (ci->getProperty(i).findQualifier(String("key"))!=PEG_NOT_FOUND) {        {
          CIMProperty *cp  = new CIMProperty(ci->getProperty(i));           jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
          jint         jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);                                         JMPIjvm::jv.CIMExceptionNewISt,
                                          (jint)4, // CIM_ERR_INVALID_PARAMETER
                                          jEnv->NewStringUTF ("Invalid association class name"));
  
          jobject prop=jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jCp);           jEnv->Throw ((jthrowable)ev);
  
          jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,prop);           return 0;
       }  
    }    }
   
    return jVec;  
 } }
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMInstance__1getClassName     jEnv->ReleaseStringUTFChars (jAssocClass, str);
       (JNIEnv *jEnv, jobject jThs, jint jInst)  
 {  
    CIMInstance  *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);  
    const String &cn = ci->getClassName().getString();  
  
    jstring str=jEnv->NewStringUTF(cn.getCString());     str = jEnv->GetStringUTFChars (jResultClass, NULL);
  
    return str;     CIMName resultClass;
 }  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1getQualifier     if (  str
       (JNIEnv *jEnv, jobject jThs, jint jInst, jstring jN)        && *str
         )
 { {
    CIMInstance *ci  = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);        if (CIMName::legal (str))
    const char  *str = jEnv->GetStringUTFChars(jN,NULL);  
    jint         rv  = -1;  
    Uint32       pos = ci->findQualifier(String(str));  
   
    if (pos!=PEG_NOT_FOUND)  
    {    {
       rv = DEBUG_ConvertCToJava (CIMQualifier*, jint, new CIMQualifier(ci->getQualifier(pos)));           resultClass = str;
    }    }
         else
         {
            jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                          JMPIjvm::jv.CIMExceptionNewISt,
                                          (jint)4, // CIM_ERR_INVALID_PARAMETER
                                          jEnv->NewStringUTF ("Invalid result class name"));
  
    jEnv->ReleaseStringUTFChars(jN,str);           jEnv->Throw ((jthrowable)ev);
  
    return rv;           return 0;
         }
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1clone     jEnv->ReleaseStringUTFChars (jResultClass, str);
       (JNIEnv *jEnv, jobject jThs, jint jInst)  
 {  
    CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);  
    CIMInstance *cl = new CIMInstance(ci->clone());  
  
    return DEBUG_ConvertCToJava (CIMInstance*, jint, cl);     str = jEnv->GetStringUTFChars (jRole, NULL);
 }  
  
 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMInstance__1getProperties     String role (str);
       (JNIEnv *jEnv, jobject jThs, jint jInst, jobject jVec)  
 {  
    JMPIjvm::cacheIDs(jEnv);  
  
    CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);     jEnv->ReleaseStringUTFChars (jRole, str);
  
    for (int i=0,s=ci->getPropertyCount(); i<s; i++) {     str = jEnv->GetStringUTFChars (jResultRole, NULL);
       CIMProperty *cp  = new CIMProperty(ci->getProperty(i));  
       jint         jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);  
  
       jobject prop=jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jCp);     String resultRole (str);
  
       jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,prop);     jEnv->ReleaseStringUTFChars (jResultRole, str);
    }  
  
    return jVec;     try {
 }        checkNs (cop, jNs);
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1finalize        Array<CIMObject> enm = cCc->associators (cop->getNameSpace (),
       (JNIEnv *jEnv, jobject jThs, jint jInst)                                                 *cop,
                                                  assocClass,
                                                  resultClass,
                                                  role,
                                                  resultRole,
                                                  (Boolean)includeQualifiers,
                                                  (Boolean)includeClassOrigin,
                                                  pl);
         Array<CIMInstance> *enmInst = new Array<CIMInstance> ();
   
         for (int i = 0,m = enm.size (); i<m; i++)
 { {
    CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);           enmInst->append (CIMInstance (enm[i]));
         }
  
    delete ci;        return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, enmInst);
      }
      Catch (jEnv);
  
    DEBUG_ConvertCleanup (jint, jInst);     return 0;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1filterProperties  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1referenceNames
       (JNIEnv *jEnv, jobject jThs, jint jInst, jobjectArray jPl, jboolean iq, jboolean ic, jboolean lo)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop,
      jstring jAssocClass, jstring jRole)
 { {
    CIMInstance *ci   = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);     CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    CIMInstance *cf   = 0;     CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
    CIMName      clsn = ci->getClassName();     const char    *str = jEnv->GetStringUTFChars (jAssocClass, NULL);
  
    if (lo) {     CIMName assocClass;
       cf=new CIMInstance(ci->clone());  
       CIMName clsn=ci->getClassName();     if (  str
       for (int i=cf->getPropertyCount()-1; i>=0; i--)        && *str
          if (cf->getProperty(i).getClassOrigin()==clsn) cf->removeProperty(i);        )
       return DEBUG_ConvertCToJava (CIMInstance*, jint, cf);     {
         if (CIMName::legal (str))
         {
            assocClass = str;
    }    }
    else if (jPl) {        else
       CIMPropertyList pl=getList(jEnv,jPl);        {
       Array<CIMName> n=pl.getPropertyNameArray();           jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
       cf=new CIMInstance(clsn);                                         JMPIjvm::jv.CIMExceptionNewISt,
       for (int i=0,s=n.size(); i<s; i++) {                                         (jint)4, // CIM_ERR_INVALID_PARAMETER
          Uint32 pos=ci->findProperty(n[i]);                                         jEnv->NewStringUTF ("Invalid association class name"));
          if (pos!=PEG_NOT_FOUND) {  
             if (iq) {           jEnv->Throw ((jthrowable)ev);
                CIMProperty cp=ci->getProperty(pos).clone();  
                if (!ic) cp.setClassOrigin(CIMName());           return 0;
                cf->addProperty(cp);  
             }  
             else {  
                CIMProperty cp=ci->getProperty(pos);  
                CIMName co;  
                if (ic) co=cp.getClassOrigin();  
                CIMProperty np(cp.getName(),cp.getValue(),cp.getArraySize(),  
                               cp.getReferenceClassName(),co,cp.getPropagated());  
                cf->addProperty(np);  
             }  
          }  
       }  
       cf->setPath(ci->getPath());  
    }  
    else if (iq) {  
       cf=new CIMInstance(ci->clone());  
       if (ic) return DEBUG_ConvertCToJava (CIMInstance*, jint, cf);  
       for (int i=cf->getPropertyCount()-1; i>=0; i--) {  
          CIMProperty cp=cf->getProperty(i);  
          cp.setClassOrigin(CIMName());  
          cf->removeProperty(i);  
          cf->addProperty(cp);  
       }  
    }  
    else {  
       cf=new CIMInstance(clsn);  
       for (int i=ci->getPropertyCount()-1; i>=0; i--) {  
          CIMProperty cp=ci->getProperty(i);  
          CIMName co;  
          if (ic) co=cp.getClassOrigin();  
          CIMProperty np(cp.getName(),cp.getValue(),cp.getArraySize(),  
                         cp.getReferenceClassName(),co,cp.getPropagated());  
          cf->addProperty(np);  
       }       }
       cf->setPath(ci->getPath());  
    }    }
  
    return DEBUG_ConvertCToJava (CIMInstance*, jint, cf);     jEnv->ReleaseStringUTFChars (jAssocClass, str);
 }  
  
 /*     str = jEnv->GetStringUTFChars (jRole, NULL);
  * Class:     org_pegasus_jmpi_CIMInstance  
  * Method:    _getObjectPath  
  * Signature: (I)I  
  */  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1getObjectPath  
   (JNIEnv *jEnv, jobject jThs, jint jciCi)  
 {  
    CIMInstance   *ci     = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciCi);  
    CIMObjectPath *copRet = NULL;  
  
    try     String role (str);
    {  
       if (ci)  
       {  
          const CIMObjectPath& cop = ci->getPath ();  
  
          copRet = new CIMObjectPath (cop);     jEnv->ReleaseStringUTFChars (jRole, str);
       }  
      try {
         checkNs (cop, jNs);
   
         Array<CIMObjectPath> enm = cCc->referenceNames (cop->getNameSpace (),
                                                         *cop,
                                                         assocClass,
                                                         role);
   
         return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));
    }    }
    Catch (jEnv);    Catch (jEnv);
  
    return DEBUG_ConvertCToJava (CIMObjectPath*, jint, copRet);     return 0;
 } }
  
 /*  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1references
  * Class:     org_pegasus_jmpi_CIMInstance    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop,
  * Method:    _setObjectPath     jstring jAssocClass, jstring jRole,
  * Signature: (II)V     jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)
  */  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1setObjectPath  
   (JNIEnv *jEnv, jobject jThs, jint jciCi, jint jciCop)  
 { {
    CIMInstance   *ci  = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciCi);     CIMClient       *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jciCop);     CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMPropertyList  pl  = getList (jEnv, jPl);
      const char      *str = jEnv->GetStringUTFChars (jAssocClass, NULL);
  
    try     CIMName assocClass;
    {  
       if (  ci     if (  str
          && cop        && *str
          )          )
       {       {
          ci->setPath (*cop);        if (CIMName::legal (str))
         {
            assocClass = str;
       }       }
         else
         {
            jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                          JMPIjvm::jv.CIMExceptionNewISt,
                                          (jint)4, // CIM_ERR_INVALID_PARAMETER
                                          jEnv->NewStringUTF ("Invalid association class name"));
   
            jEnv->Throw ((jthrowable)ev);
   
            return 0;
    }    }
    Catch (jEnv);  
 } }
  
 /*     jEnv->ReleaseStringUTFChars (jAssocClass, str);
  * Class:     org_pegasus_jmpi_CIMInstance     str = jEnv->GetStringUTFChars (jRole, NULL);
  * Method:    _getPropertyCount  
  * Signature: (I)I  
  */  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1getPropertyCount  
   (JNIEnv *jEnv, jobject jThs, jint jciCi)  
 {  
    CIMInstance *ci      = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciCi);  
    Uint32       ui32Ret = 0;  
  
    try     String role (str);
    {  
       if (ci)     jEnv->ReleaseStringUTFChars (jRole, str);
   
      try {
         checkNs (cop, jNs);
   
         Array<CIMObject> enm = cCc->references (cop->getNameSpace (),
                                                 *cop,
                                                 assocClass,
                                                 role,
                                                 (Boolean)includeQualifiers,
                                                 (Boolean)includeClassOrigin,
                                                 pl);
         Array<CIMInstance> *enmInst = new Array<CIMInstance> ();
   
         for (int i = 0, m = enm.size (); i < m; i++)
       {       {
          ui32Ret = ci->getPropertyCount ();           enmInst->append (CIMInstance (enm[i]));
       }       }
   
         return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, enmInst);
    }    }
    Catch (jEnv);    Catch (jEnv);
  
    return ui32Ret;     return 0;
 } }
  
 /*  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1createNameSpace
  * Class:     org_pegasus_jmpi_CIMInstance    (JNIEnv *jEnv, jobject jThs, jlong jCc, jstring jNs)
  * Method:    _getProperty  
  * Signature: (II)I  
  */  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1getPropertyI  
   (JNIEnv *jEnv, jobject jThs, jint jciCi, jint ji)  
 { {
    CIMInstance *ci    = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciCi);     CIMClient  *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    CIMProperty *cpRet = NULL;     const char *str = jEnv->GetStringUTFChars (jNs, NULL);
      String      ns (str);
  
    try     jEnv->ReleaseStringUTFChars (jNs, str);
    {  
       if (ci)  
       {  
          CIMProperty  cp;  
  
          cp = ci->getProperty (ji);     String lastNsComp;
      String nsBase;
  
          cpRet = new CIMProperty (cp);     normalizeNs (ns, nsBase, lastNsComp);
       }  
      CIMInstance newInstance (CIMName ("__Namespace"));
      newInstance.addProperty (CIMProperty (CIMName ("name"), lastNsComp));
   
      try {
         cCc->createInstance (CIMNamespaceName (nsBase), newInstance);
    }    }
    Catch (jEnv);    Catch (jEnv);
   
    return DEBUG_ConvertCToJava (CIMProperty*, jint, cpRet);  
 } }
  
 // -------------------------------------  JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateNameSpaces
 // ---    (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jCop, jboolean deep, jobject jVec)
 // -            CIMObjectPath  {
 // ---     JMPIjvm::cacheIDs (jEnv);
 // -------------------------------------  
  
 CIMObjectPath* construct()     CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
      CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      String         ns  = cop->getNameSpace ().getString ();
   
      try {
         Array<CIMObjectPath> enm = cCc->enumerateInstanceNames (cop->getNameSpace (),
                                                                 CIMName ("__Namespace"));
   
         for (int i = 0, s = enm.size (); i < s; i++)
 { {
    CIMObjectPath *cop = new CIMObjectPath();           CIMObjectPath&              cop = enm[i];
    _nameSpace     n;           const Array<CIMKeyBinding>& kb  = cop.getKeyBindings ();
            const String&               n   = kb[0].getValue ();
  
    cop->setNameSpace(n.nameSpace());           if (!deep && n.find ('/') != PEG_NOT_FOUND)
    cop->setHost(n.hostName());              continue;
  
    return cop;           String  x   = ns+"/"+n;
            jstring str = jEnv->NewStringUTF (x.getCString ());
   
            jEnv->CallVoidMethod (jVec, JMPIjvm::jv.VectorAddElement, str);
         }
 } }
      Catch (jEnv);
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1new     return jVec;
       (JNIEnv *jEnv, jobject jThs)  
 {  
    return DEBUG_ConvertCToJava (CIMObjectPath*, jint, construct());  
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1newCn  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteNameSpace
       (JNIEnv *jEnv, jobject jThs, jstring jCn)    (JNIEnv *jEnv, jobject jThs, jlong jCc, jstring jNs)
 { {
    CIMObjectPath *cop = construct();     CIMClient  *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    const char    *str = jEnv->GetStringUTFChars(jCn,NULL);     const char *str = jEnv->GetStringUTFChars (jNs,NULL);
      String      ns (str);
  
    if (str)     jEnv->ReleaseStringUTFChars (jNs,str);
       cop->setClassName(str);  
  
    jEnv->ReleaseStringUTFChars(jCn,str);     String lastNsComp;
      String nsBase;
  
    return DEBUG_ConvertCToJava (CIMObjectPath*, jint, cop);     normalizeNs (ns,nsBase,lastNsComp);
 }  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1newCnNs     CIMObjectPath        cop (String::EMPTY,
       (JNIEnv *jEnv, jobject jThs, jstring jCn, jstring jNs)                               CIMNamespaceName (nsBase),
 {                               CIMName ("__Namespace"));
    CIMObjectPath *cop  = construct();     Array<CIMKeyBinding> kb;
    const char    *str1 = NULL;  
    const char    *str2 = NULL;     kb.append (CIMKeyBinding (("Name"),CIMValue (lastNsComp)));
      cop.setKeyBindings (kb);
  
    try {    try {
       if (jCn) str1=jEnv->GetStringUTFChars(jCn,NULL);        cCc->deleteInstance (CIMNamespaceName (nsBase), cop);
       if (jNs) str2=jEnv->GetStringUTFChars(jNs,NULL);  
       if (str1) cop->setClassName(str1);  
       if (str2) cop->setNameSpace(str2);  
    }    }
    Catch(jEnv);    Catch(jEnv);
   
    if (str1) jEnv->ReleaseStringUTFChars(jCn,str1);  
    if (str2) jEnv->ReleaseStringUTFChars(jNs,str2);  
   
    return DEBUG_ConvertCToJava (CIMObjectPath*, jint, cop);  
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1_newCi  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1finalize
       (JNIEnv *jEnv, jobject jThs, jint jInst)     (JNIEnv *jEnv, jobject jThs, jlong jCc)
 { {
    CIMInstance   *ci  = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);     CIMClient  *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
    CIMObjectPath *cop = new CIMObjectPath(ci->getPath());  
    _nameSpace     n;  
  
    if (cop->getNameSpace().isNull()) cop->setNameSpace(n.nameSpace());     delete cCc;
    if (cop->getHost()==NULL) cop->setHost(n.hostName());  
  
    return DEBUG_ConvertCToJava (CIMObjectPath*, jint, cop);     DEBUG_ConvertCleanup (jlong, jCc);
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1finalize  
       (JNIEnv *jEnv, jobject jThs, jint jCop)  
 {  
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
  
    delete cop;  // -------------------------------------
   // ---
   // -            CIMDataType
   // ---
   // -------------------------------------
  
    DEBUG_ConvertCleanup (jint, jCop);  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMDataType__1new
     (JNIEnv *jEnv, jobject jThs, jint type)
   {
     return DEBUG_ConvertCToJava (_dataType*, jlong, new _dataType (type));
 } }
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getHost  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMDataType__1newAr
       (JNIEnv *jEnv, jobject jThs, jint jCop)    (JNIEnv *jEnv, jobject jThs, jint type, jint size)
 { {
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);    return DEBUG_ConvertCToJava (_dataType*, jlong, new _dataType (type,size));
    const String  &hn = cop->getHost();  
   
    jstring str=jEnv->NewStringUTF(hn.getCString());  
   
    return str;  
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1setHost  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMDataType__1newRef
       (JNIEnv *jEnv, jobject jThs, jint jCop, jstring jName)    (JNIEnv *jEnv, jobject jThs, jint type, jstring jRef)
 { {
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     const char *ref   = jEnv->GetStringUTFChars (jRef,NULL);
    const char    *str = jEnv->GetStringUTFChars(jName,NULL);     jlong       cInst = DEBUG_ConvertCToJava (_dataType*, jlong, new _dataType (type,String (ref)));
  
    cop->setHost(String(str));     jEnv->ReleaseStringUTFChars (jRef,ref);
  
    jEnv->ReleaseStringUTFChars(jName,str);     return cInst;
 } }
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getObjectName  JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDataType__1isReference
       (JNIEnv *jEnv, jobject jThs, jint jCop)    (JNIEnv *jEnv, jobject jThs, jlong jDt)
 { {
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     _dataType *dt = DEBUG_ConvertJavaToC (jlong, _dataType*, jDt);
    const String  &cn  = cop->getClassName().getString();  
   
    jstring str=jEnv->NewStringUTF(cn.getCString());  
  
    return str;     return dt->_reference == true;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1setObjectName  JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDataType__1isArray
       (JNIEnv *jEnv, jobject jThs, jint jCop, jstring jName)    (JNIEnv *jEnv, jobject jThs, jlong jDt)
 { {
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     _dataType *dt = DEBUG_ConvertJavaToC (jlong, _dataType*, jDt);
    const char    *str = jEnv->GetStringUTFChars(jName,NULL);  
  
    cop->setClassName(String(str));     return dt->_array == true;
   
    jEnv->ReleaseStringUTFChars(jName,str);  
 } }
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getNameSpace  JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDataType__1getType
       (JNIEnv *jEnv, jobject jThs, jint jCop)    (JNIEnv *jEnv, jobject jThs, jlong jDt)
 { {
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     _dataType *dt = DEBUG_ConvertJavaToC (jlong, _dataType*, jDt);
    const String  &ns  = cop->getNameSpace().getString();  
   
    jstring str=jEnv->NewStringUTF(ns.getCString());  
  
    return str;     return dt->_type;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1setNameSpace  JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDataType__1getSize
       (JNIEnv *jEnv, jobject jThs, jint jCop, jstring jName)    (JNIEnv *jEnv, jobject jThs, jlong jDt)
 { {
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     _dataType *dt = DEBUG_ConvertJavaToC (jlong, _dataType*, jDt);
    const char    *str = jEnv->GetStringUTFChars(jName,NULL);  
   
    cop->setNameSpace(CIMNamespaceName(str));  
   
    jEnv->ReleaseStringUTFChars(jName,str);  
 }  
   
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1addKey  
       (JNIEnv *jEnv, jobject jThs, jint jCop, jstring jId, jint jVal)  
 {  
    CIMObjectPath       *cop         = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    const char          *str         = jEnv->GetStringUTFChars(jId,NULL);  
    CIMValue            *cv          = DEBUG_ConvertJavaToC (jint, CIMValue*, jVal);  
    Array<CIMKeyBinding> keyBindings = cop->getKeyBindings();  
   
    keyBindings.append(CIMKeyBinding(str,*cv));  
    cop->setKeyBindings(Array<CIMKeyBinding>(keyBindings));  
   
    jEnv->ReleaseStringUTFChars(jId,str);  
 }  
   
 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getKeys  
       (JNIEnv *jEnv, jobject jThs, jint jCop, jobject jVec)  
 {  
    JMPIjvm::cacheIDs(jEnv);  
   
    CIMObjectPath              *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    const Array<CIMKeyBinding> &akb = cop->getKeyBindings();  
   
    for (Uint32 i=0,s=akb.size(); i<s; i++) {  
       const String &n=akb[i].getName().getString();  
       const String &v=akb[i].getValue();  
       CIMKeyBinding::Type t=akb[i].getType();  
       CIMValue *cv = 0;  
       switch (t) {  
       case CIMKeyBinding::NUMERIC:  
          cv=new CIMValue((Sint32)atol(v.getCString()));  
          break;  
       case CIMKeyBinding::STRING:  
          cv=new CIMValue(v);  
          break;  
       case CIMKeyBinding::BOOLEAN:  
          cv=new CIMValue((Boolean)(v.getCString()));  
          break;  
       case CIMKeyBinding::REFERENCE:  
          cv = new CIMValue(CIMObjectPath(akb[i].getValue()));  
          break;  
       default:  
          throwCIMException(jEnv,"+++ unsupported type: ");  
       }  
   
       CIMProperty *cp = 0;  
       if (t!=CIMKeyBinding::REFERENCE)  
          cp=new CIMProperty(n,*cv);  
       else  
          cp=new CIMProperty(n,*cv, 0, ((CIMObjectPath) akb[i].getValue()).getClassName());  
   
       jint    jCp  = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);  
       jobject prop = jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jCp);  
   
       jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,prop);  
    }  
   
    return jVec;  
 }  
   
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getKeyValue  
       (JNIEnv *jEnv, jobject jThs, jint jCop, jstring jStr)  
 {  
    CIMObjectPath              *cop        = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    const Array<CIMKeyBinding> &akb        = cop->getKeyBindings();  
    const char                 *strKeyName = jEnv->GetStringUTFChars(jStr,NULL);  
    jstring                     retStr     = NULL;  
   
    for (Uint32 i=0,s=akb.size(); i<s; i++)  
    {  
       const String &n=akb[i].getName().getString();  
   
       if (n==String(strKeyName))  
       {  
          retStr=jEnv->NewStringUTF(akb[i].getValue().getCString());  
          break;  
       }  
    }  
   
    jEnv->ReleaseStringUTFChars(jStr,strKeyName);  
   
    return retStr;  
 }  
   
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1set  
       (JNIEnv *jEnv, jobject jThs, jstring jStr)  
 {  
    const char    *strCop = jEnv->GetStringUTFChars(jStr,NULL);  
    CIMObjectPath *cop    = new CIMObjectPath();  
   
    cop->set(String(strCop));  
   
    jEnv->ReleaseStringUTFChars(jStr,strCop);  
   
    return DEBUG_ConvertCToJava (CIMObjectPath*, jint, cop);  
 }  
   
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1setKeys  
       (JNIEnv *jEnv, jobject jThs, jint jCop, jobject jVec)  
 {  
    JMPIjvm::cacheIDs(jEnv);  
   
    CIMObjectPath        *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    Array<CIMKeyBinding>  akb;  
   
    for (Uint32 i=0,s=jEnv->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<s; i++) {  
       jobject o=jEnv->CallObjectMethod(jVec,JMPIjvm::jv.VectorElementAt,(i));  
   
       jint         jCp = jEnv->CallIntMethod(o,JMPIjvm::jv.CIMPropertyCInst);  
       CIMProperty *cp  = DEBUG_ConvertJavaToC (jint, CIMProperty*, jCp);  
   
       akb.append(CIMKeyBinding(cp->getName(),cp->getValue()));  
    }  
    cop->setKeyBindings(akb);  
 }  
   
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1clone  
       (JNIEnv *jEnv, jobject jThs, jint jCop)  
 {  
    CIMObjectPath *cop  = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    CIMObjectPath *copl = new CIMObjectPath(cop->getHost(), cop->getNameSpace(), cop->getClassName(), cop->getKeyBindings());  
   
    return DEBUG_ConvertCToJava (CIMObjectPath*, jint, copl);  
 }  
   
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1toString  
       (JNIEnv *jEnv, jobject jThs, jint jCop)  
 {  
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    const String  &ns  = cop->toString();  
   
    jstring str=jEnv->NewStringUTF(ns.getCString());  
   
    return str;  
 }  
   
 // -------------------------------------  
 // ---  
 // -            CIMDataType  
 // ---  
 // -------------------------------------  
   
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDataType__1new  
   (JNIEnv *jEnv, jobject jThs, jint type)  
 {  
   return DEBUG_ConvertCToJava (_dataType*, jint, new _dataType(type));  
 }  
   
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDataType__1newAr  
   (JNIEnv *jEnv, jobject jThs, jint type, jint size)  
 {  
   return DEBUG_ConvertCToJava (_dataType*, jint, new _dataType(type,size));  
 }  
   
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDataType__1newRef  
   (JNIEnv *jEnv, jobject jThs, jint type, jstring jRef)  
 {  
    const char *ref   = jEnv->GetStringUTFChars(jRef,NULL);  
    jint        cInst = DEBUG_ConvertCToJava (_dataType*, jint, new _dataType(type,String(ref)));  
   
    jEnv->ReleaseStringUTFChars(jRef,ref);  
   
    return cInst;  
 }  
   
 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDataType__1isArray  
   (JNIEnv *jEnv, jobject jThs, jint jDt)  
 {  
    _dataType *dt = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);  
   
    return dt->_array==true;  
 }  
   
 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDataType__1isreference  
   (JNIEnv *jEnv, jobject jThs, jint jDt)  
 {  
    _dataType *dt = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);  
   
    return dt->_reference==true;  
 }  
   
 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDataType__1isReference  
   (JNIEnv *jEnv, jobject jThs, jint jDt)  
 {  
    _dataType *dt = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);  
   
    return dt->_reference==true;  
 }  
   
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDataType__1getType  
   (JNIEnv *jEnv, jobject jThs, jint jDt)  
 {  
    _dataType *dt = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);  
   
    return dt->_type;  
 }  
   
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDataType__1getSize  
   (JNIEnv *jEnv, jobject jThs, jint jDt)  
 {  
    _dataType *dt = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);  
  
    return dt->_size;    return dt->_size;
 } }
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMDataType__1getRefClassName JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMDataType__1getRefClassName
   (JNIEnv *jEnv, jobject jThs, jint jDt)    (JNIEnv *jEnv, jobject jThs, jlong jDt)
 { {
    _dataType *dt  = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);     _dataType *dt  = DEBUG_ConvertJavaToC (jlong, _dataType*, jDt);
    jstring    str = jEnv->NewStringUTF(dt->_refClass.getCString());    jstring    str = jEnv->NewStringUTF(dt->_refClass.getCString());
  
    return str;    return str;
 } }
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMDataType__1toString JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMDataType__1toString
   (JNIEnv *jEnv, jobject jThs, jint jDt)    (JNIEnv *jEnv, jobject jThs, jlong jDt)
 { {
    _dataType *dt  = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);     _dataType *dt  = DEBUG_ConvertJavaToC (jlong, _dataType*, jDt);
    jstring    str = NULL;    jstring    str = NULL;
  
    if (dt->_type & 0x10)    if (dt->_type & 0x10)
Line 2575 
Line 2547 
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMDataType__1finalize JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMDataType__1finalize
       (JNIEnv *jEnv, jobject jThs, jint jDt)        (JNIEnv *jEnv, jobject jThs, jlong jDt)
 { {
    _dataType *dt = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);     _dataType *dt = DEBUG_ConvertJavaToC (jlong, _dataType*, jDt);
  
    delete dt;    delete dt;
  
    DEBUG_ConvertCleanup (jint, jDt);     DEBUG_ConvertCleanup (jlong, jDt);
 } }
  
  
 // ------------------------------------- // -------------------------------------
 // --- // ---
 // -            CIMArgument  // -            CIMDateTime
 // --- // ---
 // ------------------------------------- // -------------------------------------
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMArgument__1getValue  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMDateTime__1datetime
       (JNIEnv *jEnv, jobject jThs, jint jP)        (JNIEnv *jEnv, jobject jThs, jstring jN)
 { {
    CIMParamValue *cp = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jP);     const char  *str  = jEnv->GetStringUTFChars (jN, NULL);
    CIMValue      *cv = new CIMValue(cp->getValue());     CIMDateTime *dt   = 0;
      String       date;
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);  
 }  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMArgument__1new     if (  str
       (JNIEnv *jEnv, jobject jThs)        && *str
         )
 { {
    CIMParamValue *p = new CIMParamValue(String::EMPTY,CIMValue());        date = str;
   
    return DEBUG_ConvertCToJava (CIMParamValue*, jint, p);  
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMArgument__1newS  
       (JNIEnv *jEnv, jobject jThs, jstring jN)  
 {  
    const char    *str = jEnv->GetStringUTFChars(jN,NULL);  
    CIMParamValue *p   = new CIMParamValue(str,CIMValue());  
   
    jEnv->ReleaseStringUTFChars(jN,str);    jEnv->ReleaseStringUTFChars(jN,str);
  
    return DEBUG_ConvertCToJava (CIMParamValue*, jint, p);     try
 }  
   
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMArgument__1newSV  
       (JNIEnv *jEnv, jobject jThs, jstring jN, jint jV)  
 { {
    const char    *str = jEnv->GetStringUTFChars(jN,NULL);        dt = new CIMDateTime (date);
    CIMValue      *cv  = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);     }
    CIMParamValue *p   = new CIMParamValue(str,cv);     Catch (jEnv);
   
    jEnv->ReleaseStringUTFChars(jN,str);  
  
    return DEBUG_ConvertCToJava (CIMParamValue*, jint, p);     return DEBUG_ConvertCToJava (CIMDateTime*, jlong, dt);
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMArgument__1setValue  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMDateTime__1datetimeempty
       (JNIEnv *jEnv, jobject jThs, jint jP,jint jV)        (JNIEnv *jEnv, jobject jThs)
 { {
    CIMParamValue *cp = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jP);     CIMDateTime *dt = new CIMDateTime (CIMDateTime::getCurrentDateTime ());
    CIMValue      *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);  
  
    cp->setValue(*cv);     return DEBUG_ConvertCToJava (CIMDateTime*, jlong, dt);
 } }
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMArgument__1getName  JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDateTime__1after
       (JNIEnv *jEnv, jobject jThs, jint jP)        (JNIEnv *jEnv, jobject jThs, jlong jC, jlong jD)
 { {
    CIMParamValue *cp  = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jP);     CIMDateTime *ct = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jC);
    const String  &n   = cp->getParameterName();     CIMDateTime *dt = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jD);
    jstring        str = jEnv->NewStringUTF(n.getCString());     jboolean     ret = 0;
  
    return str;     if (  ct
         && dt
         )
      {
         ret = (jboolean)(ct->getDifference (*ct, *dt) < 0);
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMArgument__1setName     return ret;
       (JNIEnv *jEnv, jobject jThs, jint jP, jstring jN)  }
   
   JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDateTime__1before
         (JNIEnv *jEnv, jobject jThs, jlong jC, jlong jD)
 { {
    CIMParamValue *cp  = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jP);     CIMDateTime *ct  = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jC);
    const char    *str = jEnv->GetStringUTFChars(jN,NULL);     CIMDateTime *dt  = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jD);
    String         n(str);     jboolean     ret = 0;
  
    cp->setParameterName(n);     if (  ct
         && dt
         )
      {
         ret = (jboolean)(ct->getDifference (*ct, *dt) > 0);
      }
  
    jEnv->ReleaseStringUTFChars(jN,str);     return ret;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMArgument__1getType  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMDateTime__1finalize
       (JNIEnv *jEnv, jobject jThs, jint jP)        (JNIEnv *jEnv, jobject jThs, jlong jDT)
 { {
    CIMParamValue *cp       = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jP);     CIMDateTime *cdt = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jDT);
    const CIMValue cv       = cp->getValue();  
    String         ref;  
    bool           fSuccess = false;  
    int            iJType   = 0;  
    _dataType     *type     = 0;  
  
    iJType = _dataType::convertCTypeToJavaType (cv.getType(), &fSuccess);     delete cdt;
  
    if (fSuccess)     DEBUG_ConvertCleanup (jlong, jDT);
    {  
       type = new _dataType (iJType,  
                             cv.getArraySize(),  
                             false,  
                             false,  
                             cv.isArray(),  
                             ref,  
                             true);  
    }    }
  
    return DEBUG_ConvertCToJava (_dataType*, jint, type);  
 }  
  
 // ------------------------------------- // -------------------------------------
 // --- // ---
 // -            CIMProperty  // -            CIMInstance
 // --- // ---
 // ------------------------------------- // -------------------------------------
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMProperty__1getValue  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1new
       (JNIEnv *jEnv, jobject jThs, jint jP)        (JNIEnv *jEnv, jobject jThs)
 { {
    CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);     return DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance ());
    CIMValue    *cv = new CIMValue(cp->getValue());  
   
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);  
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMProperty__1new  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1newCn
       (JNIEnv *jEnv, jobject jThs, jstring jN, jint jV)        (JNIEnv *jEnv, jobject jThs, jstring jN)
 { {
    CIMProperty *p = new CIMProperty(CIMName(),CIMValue());     const char *str = jEnv->GetStringUTFChars (jN,NULL);
      CIMInstance *ci = new CIMInstance (CIMName (str));
  
    return DEBUG_ConvertCToJava (CIMProperty*, jint, p);     jEnv->ReleaseStringUTFChars (jN,str);
   
      return DEBUG_ConvertCToJava (CIMInstance*, jlong, ci);
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMProperty__1property  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1filterProperties
       (JNIEnv *jEnv, jobject jThs, jstring jN, jint jV)        (JNIEnv *jEnv, jobject jThs, jlong jInst, jobjectArray jPl, jboolean iq, jboolean ic, jboolean lo)
 { {
    CIMValue    *cv  = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);     CIMInstance *ci   = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
    const char  *str = jEnv->GetStringUTFChars(jN,NULL);     CIMInstance *cf   = 0;
    CIMProperty *cp  = 0;     CIMName      clsn = ci->getClassName ();
    jint         jCp = -1;  
  
    try {     if (lo)
       if (cv->getType()!=CIMTYPE_REFERENCE)  
       {       {
          cp=new CIMProperty(String(str),*cv);        cf = new CIMInstance (ci->clone ());
   
         CIMName clsn = ci->getClassName ();
   
         for (int i = cf->getPropertyCount () - 1; i >= 0; i--)
         {
            if (cf->getProperty (i).getClassOrigin () == clsn)
               cf->removeProperty (i);
       }       }
       else  
         return DEBUG_ConvertCToJava (CIMInstance*, jlong, cf);
      }
      else if (jPl)
       {       {
          if (!cv->isArray())        CIMPropertyList pl = getList (jEnv, jPl);
         Array<CIMName>  n  = pl.getPropertyNameArray ();
   
         cf = new CIMInstance (clsn);
   
         for (int i = 0, s = n.size (); i < s; i++)
          {          {
             CIMObjectPath cop;           Uint32 pos = ci->findProperty (n[i]);
  
             cv->get(cop);           if (pos != PEG_NOT_FOUND)
             cp=new CIMProperty(String(str),*cv,0, cop.getClassName());           {
               if (iq)
               {
                  CIMProperty cp = ci->getProperty (pos).clone ();
   
                  if (!ic)
                     cp.setClassOrigin (CIMName ());
   
                  cf->addProperty (cp);
          }          }
          else          else
          {          {
             throwCIMException(jEnv,"+++ unsupported type in CIMProperty.property");                 CIMProperty cp = ci->getProperty (pos);
          }                 CIMName     co;
       }  
  
       jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);                 if (ic)
    }                    co = cp.getClassOrigin ();
    Catch(jEnv);  
  
    jEnv->ReleaseStringUTFChars(jN,str);                 CIMProperty np (cp.getName (),
                                  cp.getValue (),
                                  cp.getArraySize (),
                                  cp.getReferenceClassName (),
                                  co,
                                  cp.getPropagated ());
  
    return jCp;                 cf->addProperty (np);
               }
            }
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1setValue        cf->setPath (ci->getPath ());
       (JNIEnv *jEnv, jobject jThs, jint jP,jint jV)     }
      else if (iq)
 { {
    CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);        cf = new CIMInstance (ci->clone ());
    CIMValue    *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);  
  
    cp->setValue(*cv);        if (ic)
 }           return DEBUG_ConvertCToJava (CIMInstance*, jlong, cf);
  
 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMProperty__1isArray        for (int i = cf->getPropertyCount () - 1; i >= 0; i--)
       (JNIEnv *jEnv, jobject jThs, jint jP)  
 { {
    CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);           CIMProperty cp = cf->getProperty (i);
  
    return (jboolean)cp->isArray();           cp.setClassOrigin (CIMName ());
            cf->removeProperty (i);
            cf->addProperty (cp);
         }
 } }
      else
      {
         cf = new CIMInstance (clsn);
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1addValue        for (int i = ci->getPropertyCount () - 1; i >= 0; i--)
       (JNIEnv *jEnv, jobject jThs, jint jP, jint jV)  
 { {
    CIMProperty *cp   = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);           CIMProperty cp = ci->getProperty (i);
    CIMValue    *cvin = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);           CIMName     co;
    CIMValue     cv   = cp->getValue();  
  
    if (cvin->isNull())           if (ic)
       throwCIMException(jEnv,"+++ null cvin value ");              co = cp.getClassOrigin ();
    if (!cv.isArray())  
       throwCIMException(jEnv,"+++ not an array ");  
    if (cvin->getType()!=cv.getType())  
       throwCIMException(jEnv,"+++ type mismatch ");  
  
    CIMType type=cv.getType();           CIMProperty np (cp.getName (),
                            cp.getValue (),
                            cp.getArraySize (),
                            cp.getReferenceClassName (),
                            co,
                            cp.getPropagated ());
  
    switch (type) {           cf->addProperty (np);
    case CIMTYPE_BOOLEAN: {  
          Boolean bo;  
          cvin->get(bo);  
          Array<Boolean> boarr;  
          cv.get(boarr);  
          boarr.append(bo);  
       }  
       break;  
    case CIMTYPE_UINT8: {  
          Uint8 u8;  
          cvin->get(u8);  
          Array<Uint8> u8arr;  
          cv.get(u8arr);  
          u8arr.append(u8);  
       }  
       break;  
    case CIMTYPE_SINT8: {  
          Sint8 s8;  
          cvin->get(s8);  
          Array<Sint8> s8arr;  
          cv.get(s8arr);  
          s8arr.append(s8);  
       }  
       break;  
    case CIMTYPE_UINT16: {  
          Uint16 u16;  
          cvin->get(u16);  
          Array<Uint16> u16arr;  
          cv.get(u16arr);  
          u16arr.append(u16);  
       }  
       break;  
    case CIMTYPE_SINT16: {  
          Sint16 s16;  
          cvin->get(s16);  
          Array<Sint16> s16arr;  
          cv.get(s16arr);  
          s16arr.append(s16);  
       }  
       break;  
    case CIMTYPE_UINT32: {  
          Uint32 u32;  
          cvin->get(u32);  
          Array<Uint32> u32arr;  
          cv.get(u32arr);  
          u32arr.append(u32);  
       }  
       break;  
    case CIMTYPE_SINT32: {  
          Sint32 s32;  
          cvin->get(s32);  
          Array<Sint32> s32arr;  
          cv.get(s32arr);  
          s32arr.append(s32);  
       }  
       break;  
    case CIMTYPE_UINT64: {  
          Uint64 u64;  
          cvin->get(u64);  
          Array<Uint64> u64arr;  
          cv.get(u64arr);  
          u64arr.append(u64);  
       }  
       break;  
    case CIMTYPE_SINT64: {  
          Sint64 s64;  
          cvin->get(s64);  
          Array<Sint64> s64arr;  
          cv.get(s64arr);  
          s64arr.append(s64);  
       }  
       break;  
    case CIMTYPE_REAL32: {  
          Real32 f;  
          cvin->get(f);  
          Array<Real32> farr;  
          cv.get(farr);  
          farr.append(f);  
       }  
       break;  
    case CIMTYPE_REAL64: {  
          Real64 d;  
          cvin->get(d);  
          Array<Real64> darr;  
          cv.get(darr);  
          darr.append(d);  
       }  
       break;  
    case CIMTYPE_CHAR16: {  
          Char16 c16;  
          cvin->get(c16);  
          Array<Char16> c16arr;  
          cv.get(c16arr);  
          c16arr.append(c16);  
       }  
       break;  
    case CIMTYPE_STRING: {  
          String str;  
          cvin->get(str);  
          Array<String> strarr;  
          cv.get(strarr);  
          strarr.append(str);  
       }  
       break;  
    case CIMTYPE_DATETIME: {  
          CIMDateTime dt;  
          cvin->get(dt);  
          Array<CIMDateTime> dtarr;  
          cv.get(dtarr);  
          dtarr.append(dt);  
       }  
       break;  
    case CIMTYPE_REFERENCE: {  
          CIMObjectPath ref;  
          cvin->get(ref);  
          Array<CIMObjectPath> refarr;  
          cv.get(refarr);  
          refarr.append(ref);  
       }  
       break;  
    case CIMTYPE_OBJECT: {  
          CIMObject obj;  
          cvin->get(obj);  
          Array<CIMObject> objarr;  
          cv.get(objarr);  
          objarr.append(obj);  
       }       }
       break;        cf->setPath (ci->getPath ());
    default:  
       throwCIMException(jEnv,"+++ unsupported type ");  
    }    }
   
      return DEBUG_ConvertCToJava (CIMInstance*, jlong, cf);
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1addQualifier  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1setName
       (JNIEnv *jEnv, jobject jThs, jint jP, jint jQ)        (JNIEnv *jEnv, jobject jThs, jlong jInst, jstring jN)
 { {
    CIMProperty  *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);     CIMInstance *ci  = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
    CIMQualifier *cq = DEBUG_ConvertJavaToC (jint, CIMQualifier*, jQ);     const char  *str = jEnv->GetStringUTFChars (jN, NULL);
  
    cp->addQualifier(*cq);     jEnv->ReleaseStringUTFChars (jN,str);
   
      /* NOT SUPPORTED AND NOT NEEDED*/
 } }
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMProperty__1getName  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1setProperty
       (JNIEnv *jEnv, jobject jThs, jint jP)        (JNIEnv *jEnv, jobject jThs, jlong jInst, jstring jN, jlong jV)
 { {
    CIMProperty  *cp  = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);     CIMInstance *ci  = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
    const String &n   = cp->getName().getString();     CIMValue    *cv  = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
    jstring       str = jEnv->NewStringUTF(n.getCString());     const char  *str = jEnv->GetStringUTFChars (jN, NULL);
      Uint32       pos;
  
    return str;     if (  ci
         && cv
         )
      {
         try {
            pos = ci->findProperty (CIMName (str));
   
            if (pos != PEG_NOT_FOUND)
            {
               CIMProperty cp = ci->getProperty (pos);
   
               if (cp.getType () == cv->getType ())
               {
                  cp.setValue (*cv);
               }
               else
               {
                  throw CIMException (CIM_ERR_TYPE_MISMATCH, String ("Property type mismatch"));
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1setName              ci->removeProperty (pos);
       (JNIEnv *jEnv, jobject jThs, jint jP, jstring jN)              ci->addProperty (cp);
            }
            else
 { {
    CIMProperty *cp  = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);              CIMProperty *cp = new CIMProperty (CIMName (str), *cv);
    const char  *str = jEnv->GetStringUTFChars(jN,NULL);  
  
    cp->setName(CIMName(str));              ci->addProperty (*cp);
            }
         }
         Catch (jEnv);
      }
  
    jEnv->ReleaseStringUTFChars(jN,str);    jEnv->ReleaseStringUTFChars(jN,str);
 } }
  
 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMProperty__1isReference  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1setProperties
       (JNIEnv *jEnv, jobject jThs, jint jP)        (JNIEnv *jEnv, jobject jThs, jlong jInst, jobject jV)
 { {
    CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);     CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
  
    return (jboolean)(cp->getType()==CIMTYPE_REFERENCE);     if (!ci)
      {
         return;
 } }
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMProperty__1getRefClassName     try
      (JNIEnv *jEnv, jobject jThs, jint jP)  
 { {
    CIMProperty   *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);        for (int i = 0, m = jEnv->CallIntMethod (jV,
    const String  &n  = cp->getReferenceClassName().getString();                                                 JMPIjvm::jv.VectorSize);
              i < m;
              i++)
         {
            JMPIjvm::checkException (jEnv);
  
    jstring str=jEnv->NewStringUTF(n.getCString());           jobject jProp = jEnv->CallObjectMethod (jV,
                                                    JMPIjvm::jv.VectorElementAt,
                                                    i);
  
    return str;           JMPIjvm::checkException (jEnv);
 }  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMProperty__1getType           jlong        jCpRef = jEnv->CallLongMethod (jProp, JMPIjvm::jv.CIMPropertyCInst);
       (JNIEnv *jEnv, jobject jThs, jint jP)           CIMProperty *cpNew  = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jCpRef);
   
            if (cpNew)
 { {
    CIMProperty  *cp        = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);              Uint32 pos = ci->findProperty (cpNew->getName ());
    String        ref       = cp->getReferenceClassName().getString();  
    bool           fSuccess = false;  
    int            iJType   = 0;  
    _dataType     *type     = 0;  
  
    iJType = _dataType::convertCTypeToJavaType (cp->getType(), &fSuccess);              if (pos != PEG_NOT_FOUND)
               {
                  CIMProperty cpOld = ci->getProperty (pos);
  
    if (fSuccess)                 if (cpOld.getType () == cpNew->getType ())
    {    {
       type = new _dataType (iJType,                    ci->removeProperty (pos);
                             cp->getArraySize(),                    ci->addProperty (*cpNew);
                             ref.size() ? true : false,  
                             false,  
                             cp->isArray(),  
                             ref,  
                             true);  
    }    }
                  else
    return DEBUG_ConvertCToJava (_dataType*, jint, type);                 {
                     throw CIMException (CIM_ERR_TYPE_MISMATCH, String ("Property type mismatch"));
                  }
               }
            }
         }
      }
      Catch (jEnv);
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMProperty__1setType  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1getProperty
       (JNIEnv *jEnv, jobject jThs, jint jP, jint jDt)        (JNIEnv *jEnv, jobject jThs, jlong jInst, jstring jN)
 { {
    CIMProperty  *cp       = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);     CIMInstance *ci  = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
    _dataType    *dt       = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);     const char  *str = jEnv->GetStringUTFChars (jN, NULL);
    CIMValue      val;     jlong        rv  = 0;
    bool          fSuccess = false;  
    CIMType       cType    = CIMTYPE_BOOLEAN;  
  
    cType = _dataType::convertJavaTypeToCType (dt->_type, &fSuccess);     try {
         Uint32 pos = ci->findProperty (CIMName (str));
  
    if (fSuccess)        if (pos != PEG_NOT_FOUND)
    {    {
       val.setNullValue (cType, dt->_array);           CIMProperty *cp = new CIMProperty (ci->getProperty (pos));
   
       CIMProperty *np = new CIMProperty (cp->getName (), val);  
   
       delete cp;  
   
       DEBUG_ConvertCleanup (jint, jP);  
  
       return DEBUG_ConvertCToJava (CIMProperty*, jint, np);           rv = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
    }  
    else  
    {  
       return DEBUG_ConvertCToJava (CIMProperty*, jint, cp);  
    }    }
 } }
      Catch (jEnv);
  
 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMProperty__1getIdentifier     jEnv->ReleaseStringUTFChars (jN, str);
       (JNIEnv *jEnv, jobject jThs, jint jP)  
 {  
    CIMProperty  *cp  = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);  
    const String &n   = cp->getName().getString();  
    jstring       str = jEnv->NewStringUTF(n.getCString());  
  
    return str;     return rv;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1finalize  JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMInstance__1getKeyValuePairs
       (JNIEnv *jEnv, jobject jThs, jint jP)        (JNIEnv *jEnv, jobject jThs, jlong jInst, jobject jVec)
 { {
    CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);     JMPIjvm::cacheIDs (jEnv);
   
    delete cp;  
  
    DEBUG_ConvertCleanup (jint, jP);     CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
 }  
  
 /*     if (  ci
  * Class:     org_pegasus_jmpi_CIMProperty        && CIMNamespaceName::legal (ci->getPath ().getNameSpace ().getString ())
  * Method:    _findQualifier        )
  * Signature: (Ljava/lang/String;)I  
  */  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMProperty__1findQualifier  
   (JNIEnv *jEnv, jobject jThs, jint jP, jstring jQualifier)  
 { {
    CIMProperty  *cp    = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);        CIMOMHandle      ch;
    const char   *str   = jEnv->GetStringUTFChars (jQualifier, NULL);        OperationContext oc;
    int           index = PEG_NOT_FOUND;        CIMClass         cc;
   
         cc = ch.getClass (oc,
                           ci->getPath ().getNameSpace (),
                           ci->getClassName (),
                           false,                                     // localOnly
                           true,                                      // includeQualifiers
                           true,                                      // includeClassOrigin
                           CIMPropertyList ());                       // propertyList
  
    try        if (!cc.hasKeys ())
    {    {
       index = cp->findQualifier (CIMName (str));           return jVec;
   
       jEnv->ReleaseStringUTFChars (jQualifier, str);  
    }    }
    Catch (jEnv);  
  
    return index;        Array<CIMName> keyNames;
 }  
  
 /*        cc.getKeyNames (keyNames);
  * Class:     org_pegasus_jmpi_CIMProperty  
  * Method:    _getQualifier        for (Uint32 i = 0; i < keyNames.size (); i++)
  * Signature: (I)I  
  */  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMProperty__1getQualifier  
   (JNIEnv *jEnv, jobject jThs, jint jP, jint jIndex)  
 { {
    CIMProperty  *cp        = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);           DDD(PEGASUS_STD (cout) << "finding key " << keyNames[i].getString () << PEGASUS_STD (endl));
    CIMQualifier *cq        = NULL;  
    CIMQualifier  qualifier;  
  
    try           for (Uint32 j = 0; j < ci->getPropertyCount (); j++)
    {    {
       qualifier = cp->getQualifier ((Uint32)jIndex);              CIMProperty cp = ci->getProperty (j);
       cq = new CIMQualifier (qualifier);  
    }  
    Catch (jEnv);  
  
    return DEBUG_ConvertCToJava (CIMQualifier *, jint, cq);              if (cp.getName () == keyNames[i])
 }              {
                  DDD(PEGASUS_STD (cout) << "adding key (" << j << ") " << keyNames[i].getString () << PEGASUS_STD (endl));
  
                  CIMProperty *cpRef  = new CIMProperty (cp);
                  jlong        jCpRef = DEBUG_ConvertCToJava (CIMProperty*, jlong, cpRef);
                  jobject      jProp  = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,
                                                         JMPIjvm::jv.CIMPropertyNewJ,
                                                         jCpRef);
  
 // -------------------------------------                 jEnv->CallVoidMethod (jVec,
 // ---                                       JMPIjvm::jv.VectorAddElement,
 // -     CIMQualifierType                                       jProp);
 // ---              }
 // -------------------------------------           }
         }
      }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1new     return jVec;
       (JNIEnv *jEnv, jobject jThs)  }
   
   JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMInstance__1getProperties
         (JNIEnv *jEnv, jobject jThs, jlong jInst, jobject jVec)
 { {
    CIMQualifierDecl *qual = new CIMQualifierDecl();     JMPIjvm::cacheIDs (jEnv);
  
    return DEBUG_ConvertCToJava (CIMQualifierDecl*, jint, qual);     CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
 }  
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1finalize     for (int i = 0, s = ci->getPropertyCount (); i < s; i++)
       (JNIEnv *jEnv, jobject jThs, jint jQ)  
 { {
    CIMQualifierDecl *qt = DEBUG_ConvertJavaToC (jint, CIMQualifierDecl*, jQ);        CIMProperty *cp  = new CIMProperty (ci->getProperty (i));
         jlong        jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
  
    delete qt;        jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jCp);
  
    DEBUG_ConvertCleanup (jint, jQ);        jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop);
 } }
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1getName     return jVec;
       (JNIEnv *jEnv, jobject jThs, jint jQ)  }
   
   JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMInstance__1getClassName
         (JNIEnv *jEnv, jobject jThs, jlong jInst)
 { {
    CIMQualifierDecl *qt  = DEBUG_ConvertJavaToC (jint, CIMQualifierDecl*, jQ);     CIMInstance  *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
    const String     &n   = qt->getName().getString();     const String &cn = ci->getClassName ().getString ();
    jstring           str = jEnv->NewStringUTF(n.getCString());  
      jstring str = jEnv->NewStringUTF (cn.getCString ());
  
    return str;    return str;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1setName  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1getQualifier
       (JNIEnv *jEnv, jobject jThs, jint jQ, jstring jN)        (JNIEnv *jEnv, jobject jThs, jlong jInst, jstring jN)
 { {
    CIMQualifierDecl *qt   = DEBUG_ConvertJavaToC (jint, CIMQualifierDecl*, jQ);     CIMInstance *ci  = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
    const char       *str  = jEnv->GetStringUTFChars(jN,NULL);    const char       *str  = jEnv->GetStringUTFChars(jN,NULL);
    jint              jret = 0;     jlong        rv  = 0;
      Uint32       pos;
  
    if (qt->isUninitialized())     if (ci)
    {    {
       CIMQualifierDecl *nqt = new CIMQualifierDecl(CIMName(str),CIMValue(),CIMScope());        try
         {
            CIMOMHandle      ch;
            OperationContext oc;
            CIMClass         cc;
   
            cc = ch.getClass (oc,
                              ci->getPath ().getNameSpace (),
                              ci->getClassName (),
                              false,                                     // localOnly
                              true,                                      // includeQualifiers
                              true,                                      // includeClassOrigin
                              CIMPropertyList ());                       // propertyList
  
       jret = DEBUG_ConvertCToJava (CIMQualifierDecl*, jint, nqt);           pos = cc.findQualifier (String (str));
    }  
    else           if (pos != PEG_NOT_FOUND)
    {    {
       qt->setName(CIMName(str));              CIMQualifier *cq = 0;
  
       CIMQualifierDecl *nqt = new CIMQualifierDecl(*qt);              cq = new CIMQualifier (cc.getQualifier (pos));
  
       jret = DEBUG_ConvertCToJava (CIMQualifierDecl*, jint, nqt);              rv = DEBUG_ConvertCToJava (CIMQualifier*, jlong, cq);
            }
         }
         Catch (jEnv);
    }    }
  
    jEnv->ReleaseStringUTFChars(jN,str);    jEnv->ReleaseStringUTFChars(jN,str);
  
    return jret;     return rv;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1setValue  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1clone
       (JNIEnv *jEnv, jobject jThs, jint jQ,jint jV)        (JNIEnv *jEnv, jobject jThs, jlong jInst)
 { {
    CIMQualifierDecl *qt = DEBUG_ConvertJavaToC (jint, CIMQualifierDecl*, jQ);     CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
    CIMValue         *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);     CIMInstance *cl = new CIMInstance (ci->clone ());
  
    qt->setValue(*cv);     return DEBUG_ConvertCToJava (CIMInstance*, jlong, cl);
 } }
  
 // -------------------------------------  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1finalize
 // ---        (JNIEnv *jEnv, jobject jThs, jlong jInst)
 // -     CIMQualifier  
 // ---  
 // -------------------------------------  
   
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMQualifier__1new  
       (JNIEnv *jEnv, jobject jThs, jstring jN)  
 { {
    const char   *str  = jEnv->GetStringUTFChars(jN,NULL);     CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
    CIMQualifier *qual = new CIMQualifier(CIMName(str),CIMValue());  
  
    jEnv->ReleaseStringUTFChars(jN,str);     delete ci;
  
    return DEBUG_ConvertCToJava (CIMQualifier*, jint, qual);     DEBUG_ConvertCleanup (jlong, jInst);
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifier__1finalize  /*
       (JNIEnv *jEnv, jobject jThs, jint jQ)   * Class:     org_pegasus_jmpi_CIMInstance
    * Method:    _getObjectPath
    * Signature: (I)I
    */
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1getObjectPath
     (JNIEnv *jEnv, jobject jThs, jlong jciCi)
 { {
    CIMQualifier *cq=DEBUG_ConvertJavaToC (jint, CIMQualifier*, jQ);     CIMInstance   *ci     = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciCi);
      CIMObjectPath *copRet = NULL;
  
    delete cq;     try
      {
         if (ci)
         {
            const CIMObjectPath& cop = ci->getPath ();
  
    DEBUG_ConvertCleanup (jint, jQ);           copRet = new CIMObjectPath (cop);
 } }
      }
      Catch (jEnv);
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMQualifier__1getName     return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, copRet);
       (JNIEnv *jEnv, jobject jThs, jint jQ)  
 {  
    CIMQualifier *cq  = DEBUG_ConvertJavaToC (jint, CIMQualifier*, jQ);  
    const String &n   = cq->getName().getString();  
    jstring       str = jEnv->NewStringUTF(n.getCString());  
   
    return str;  
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMQualifier__1getValue  /*
       (JNIEnv *jEnv, jobject jThs, jint jQ)   * Class:     org_pegasus_jmpi_CIMInstance
    * Method:    _setObjectPath
    * Signature: (II)V
    */
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1setObjectPath
     (JNIEnv *jEnv, jobject jThs, jlong jciCi, jlong jciCop)
 { {
    CIMQualifier *cq = DEBUG_ConvertJavaToC (jint, CIMQualifier*, jQ);     CIMInstance   *ci  = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciCi);
    CIMValue     *cv = new CIMValue(cq->getValue());     CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jciCop);
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);     try
      {
         if (  ci
            && cop
            )
         {
            ci->setPath (*cop);
         }
      }
      Catch (jEnv);
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifier__1setValue  /*
       (JNIEnv *jEnv, jobject jThs, jint jQ,jint jV)   * Class:     org_pegasus_jmpi_CIMInstance
    * Method:    _getPropertyCount
    * Signature: (I)I
    */
   JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1getPropertyCount
     (JNIEnv *jEnv, jobject jThs, jlong jciCi)
 { {
    CIMQualifier *cq = DEBUG_ConvertJavaToC (jint, CIMQualifier*, jQ);     CIMInstance *ci      = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciCi);
    CIMValue     *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);     Uint32       ui32Ret = 0;
  
    cq->setValue(*cv);     try
      {
         if (ci)
         {
            ui32Ret = ci->getPropertyCount ();
 } }
      }
      Catch (jEnv);
  
 // -------------------------------------     return ui32Ret;
 // ---  }
 // -            CIMDateTime  
 // ---  
 // -------------------------------------  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDateTime__1datetime  /*
       (JNIEnv *jEnv, jobject jThs, jstring jN)   * Class:     org_pegasus_jmpi_CIMInstance
    * Method:    _getProperty
    * Signature: (II)I
    */
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1getPropertyI
     (JNIEnv *jEnv, jobject jThs, jlong jciCi, jint ji)
 { {
    const char  *str = jEnv->GetStringUTFChars(jN,NULL);     CIMInstance *ci    = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciCi);
    CIMDateTime *dt  = 0;     CIMProperty *cpRet = NULL;
  
    if (strlen(str)==0)     try
       dt=new CIMDateTime();     {
    else        if (ci)
       dt=new CIMDateTime(String(str));        {
            CIMProperty  cp;
  
    jEnv->ReleaseStringUTFChars(jN,str);           cp = ci->getProperty (ji);
  
    return DEBUG_ConvertCToJava (CIMDateTime*, jint, dt);           cpRet = new CIMProperty (cp);
 } }
   
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDateTime__1datetimeempty  
       (JNIEnv *jEnv, jobject jThs)  
 {  
    CIMDateTime *dt = new CIMDateTime(CIMDateTime::getCurrentDateTime ());  
   
    return DEBUG_ConvertCToJava (CIMDateTime*, jint, dt);  
 } }
      Catch (jEnv);
  
 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDateTime__1after     return DEBUG_ConvertCToJava (CIMProperty*, jlong, cpRet);
       (JNIEnv *jEnv, jobject jThs, jint jC, jint jD)  
 {  
    CIMDateTime *ct = DEBUG_ConvertJavaToC (jint, CIMDateTime*, jC);  
    CIMDateTime *dt = DEBUG_ConvertJavaToC (jint, CIMDateTime*, jD);  
   
    return (jboolean)(ct->getDifference(*ct, *dt)>0);  
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMDateTime__1finalize  
       (JNIEnv *jEnv, jobject jThs, jint jDT)  
 {  
    CIMDateTime *cdt = DEBUG_ConvertJavaToC (jint, CIMDateTime*, jDT);  
   
    delete cdt;  
   
    DEBUG_ConvertCleanup (jint, jDT);  
 }  
  
 // ------------------------------------- // -------------------------------------
 // --- // ---
Line 3265 
Line 3163 
 // ------------------------------------- // -------------------------------------
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMMethod__1getType JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMMethod__1getType
       (JNIEnv *jEnv, jobject jThs, jint jM)        (JNIEnv *jEnv, jobject jThs, jlong jM)
   {
      CIMMethod *cm       = DEBUG_ConvertJavaToC (jlong, CIMMethod*, jM);
      bool       fSuccess = false;
      jint       jType    = 0;
   
      if (cm)
 { {
    CIMMethod *cm = DEBUG_ConvertJavaToC (jint, CIMMethod*, jM);        CIMType ct = cm->getType ();
   
         jType = _dataType::convertCTypeToJavaType (ct, &fSuccess);
      }
  
    return DEBUG_ConvertCToJava (CIMType *, jint, new CIMType (cm->getType()));     return jType;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMMethod__1finalize JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMMethod__1finalize
       (JNIEnv *jEnv, jobject jThs, jint jM)        (JNIEnv *jEnv, jobject jThs, jlong jM)
 { {
    CIMMethod *cm = DEBUG_ConvertJavaToC (jint, CIMMethod*, jM);     CIMMethod *cm = DEBUG_ConvertJavaToC (jlong, CIMMethod*, jM);
  
    delete cm;    delete cm;
  
    DEBUG_ConvertCleanup (jint, jM);     DEBUG_ConvertCleanup (jlong, jM);
 } }
  
   
 // ------------------------------------- // -------------------------------------
 // --- // ---
 // -            CIMValue  // -            CIMNameSpace
 // --- // ---
 // ------------------------------------- // -------------------------------------
  
   _nameSpace::_nameSpace ()
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1byte  
       (JNIEnv *jEnv, jobject jThs, jbyte jb, jboolean notSigned)  
 { {
    CIMValue *cv = NULL;     port_ = 0;
      hostName_ = System::getHostName ();
      nameSpace_ = "root/cimv2";
   }
  
    if (notSigned)  _nameSpace::_nameSpace (String hn)
       cv=new CIMValue((Uint8)jb);  {
    else     port_ = 0;
       cv=new CIMValue((Sint8)jb);     hostName_ = hn;
      nameSpace_ = "root/cimv2";
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);  
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1short  _nameSpace::_nameSpace (String hn, String ns)
       (JNIEnv *jEnv, jobject jThs, jshort js, jboolean notSigned)  
 { {
    CIMValue *cv = NULL;      port_ = 0;
       hostName_ = hn;
    if (notSigned)      nameSpace_ = ns;
       cv=new CIMValue((Uint16)js);  
    else  
       cv=new CIMValue((Sint16)js);  
   
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);  
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1makeInt  int _nameSpace::port ()
       (JNIEnv *jEnv, jobject jThs, jlong ji, jboolean notSigned)  
 { {
    CIMValue *cv = NULL;     if (port_)
         return port_;
  
    if (notSigned)     port_ = 5988;
       cv = new CIMValue((Uint32)ji);  
    else  
       cv = new CIMValue((Sint32)ji);  
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);     if (hostName_.subString (0,7) == "http://")
      {
         protocol_ = "http://";
         hostName_ = hostName_.subString (7);
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1long     Sint32 p = hostName_.reverseFind (':');
       (JNIEnv *jEnv, jobject jThs, jlong jl, jboolean notSigned)  
 {  
    CIMValue *cv = NULL;  
  
    if (notSigned)     if (p >= 0)
       cv=new CIMValue((Uint64)jl);     {
    else        if ((hostName_[p+1] >= '0') && (hostName_[p+1] <= '9'))
       cv=new CIMValue((Sint64)jl);           port_ = atoi (hostName_.subString (p+1).getCString ());
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);        hostName_.remove (p);
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1float     return port_;
       (JNIEnv *jEnv, jobject jThs, jfloat jF)  
 {  
    CIMValue *cv = new CIMValue(jF);  
   
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);  
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1double  String _nameSpace::hostName ()
       (JNIEnv *jEnv, jobject jThs, jdouble jD)  
 { {
    CIMValue *cv = new CIMValue(jD);     port ();
      return hostName_;
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);  
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1string  String _nameSpace::nameSpace ()
       (JNIEnv *jEnv, jobject jThs, jstring jS)  
 { {
    const char *str = jEnv->GetStringUTFChars(jS,NULL);     return nameSpace_;
    CIMValue   *cv  = new CIMValue(String(str));  
   
    jEnv->ReleaseStringUTFChars(jS,str);  
   
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);  
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1cop  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1new
       (JNIEnv *jEnv, jobject jThs, jint jR)    (JNIEnv *jEnv, jobject jThs)
 { {
    CIMObjectPath *ref = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jR);    return DEBUG_ConvertCToJava (_nameSpace*, jlong, new _nameSpace ());
    CIMValue      *cv  = new CIMValue(*ref);  
   
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);  
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1datetime  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1newHn
       (JNIEnv *jEnv, jobject jThs, jint jDT)    (JNIEnv *jEnv, jobject jThs, jstring jHn)
 { {
    CIMDateTime *dt = DEBUG_ConvertJavaToC (jint, CIMDateTime*, jDT);     const char *hn    = jEnv->GetStringUTFChars (jHn, NULL);
    CIMValue    *cv = new CIMValue(*dt);     jlong       cInst = DEBUG_ConvertCToJava (_nameSpace*, jlong, new _nameSpace (hn));
   
      jEnv->ReleaseStringUTFChars (jHn, hn);
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);     return cInst;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1char16  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1newHnNs
       (JNIEnv *jEnv, jobject jThs, jchar jChar16)    (JNIEnv *jEnv, jobject jThs, jstring jHn, jstring jNs)
 { {
    Char16       c16 (jChar16);     const char *hn    = jEnv->GetStringUTFChars (jHn, NULL);
    CIMValue    *cv  = new CIMValue(c16);     const char *ns    = jEnv->GetStringUTFChars (jNs, NULL);
      jlong       cInst = DEBUG_ConvertCToJava (_nameSpace*, jlong, new _nameSpace (String (hn),String (ns)));
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);     jEnv->ReleaseStringUTFChars (jHn, hn);
      jEnv->ReleaseStringUTFChars (jNs, ns);
   
      return cInst;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1object  JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1getNameSpace
       (JNIEnv *jEnv, jobject jThs, jint jO)    (JNIEnv *jEnv, jobject jThs, jlong jNs)
 { {
    CIMObject *co = DEBUG_ConvertJavaToC (jint, CIMObject*, jO);     _nameSpace   *cNs = DEBUG_ConvertJavaToC (jlong, _nameSpace*, jNs);
    CIMValue  *cv = new CIMValue(*co);     const String &ns  = cNs->nameSpace_;
      jstring       str = jEnv->NewStringUTF (ns.getCString ());
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);     return str;
 } }
  
 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMValue__1isArray  JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1getHost
       (JNIEnv *jEnv, jobject jThs, jint jP)    (JNIEnv *jEnv, jobject jThs, jlong jNs)
 { {
    CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jP);     _nameSpace   *cNs = DEBUG_ConvertJavaToC (jlong, _nameSpace*, jNs);
      const String &hn  = cNs->hostName_;
      jstring       str = jEnv->NewStringUTF (hn.getCString ());
  
    return (jboolean)cv->isArray();     return str;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1boolean  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1setNameSpace
       (JNIEnv *jEnv, jobject jThs, jboolean jB)    (JNIEnv *jEnv, jobject jThs, jlong jNs, jstring jN)
 { {
    CIMValue *cv = new CIMValue((Boolean)jB);     _nameSpace *cNs = DEBUG_ConvertJavaToC (jlong, _nameSpace*, jNs);
      const char *str = jEnv->GetStringUTFChars (jN, NULL);
   
      cNs->nameSpace_ = str;
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);     jEnv->ReleaseStringUTFChars (jN, str);
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1byteArray  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1setHost
       (JNIEnv *jEnv, jobject jThs, jshortArray jshortA, jboolean notSigned)    (JNIEnv *jEnv, jobject jThs, jlong jNs, jstring jHn)
 { {
    CIMValue *cv  = NULL;     _nameSpace *cNs = DEBUG_ConvertJavaToC (jlong, _nameSpace*, jNs);
    jboolean  b;     const char *str = jEnv->GetStringUTFChars (jHn, NULL);
    jsize     len = jEnv->GetArrayLength(jshortA);  
    jshort   *jsA = jEnv->GetShortArrayElements(jshortA,&b);  
   
    if (notSigned) {  
       Array<Uint8> u8;  
       for (jsize i=0;i<len;i++)  
          u8.append((Uint8)jsA[i]);  
       cv=new CIMValue(u8);  
    }  
    else {  
       Array<Sint8> s8;  
       for (jsize i=0;i<len;i++)  
          s8.append((Sint8)jsA[i]);  
       cv=new CIMValue(s8);  
    }  
  
    jEnv->ReleaseShortArrayElements(jshortA, jsA, len);     cNs->port_ = 0;
      cNs->hostName_ = str;
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);     jEnv->ReleaseStringUTFChars (jHn, str);
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1shortArray  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1finalize
       (JNIEnv *jEnv, jobject jThs, jintArray jintA, jboolean notSigned)     (JNIEnv *jEnv, jobject jThs, jlong jNs)
 { {
    CIMValue *cv  = NULL;     _nameSpace *cNs = DEBUG_ConvertJavaToC (jlong, _nameSpace*, jNs);
    jboolean  b;  
    jsize     len = jEnv->GetArrayLength(jintA);  
    jint     *jiA = jEnv->GetIntArrayElements(jintA,&b);  
  
    if (notSigned) {     delete cNs;
       Array<Uint16> u16;  
       for (jsize i=0;i<len;i++)     DEBUG_ConvertCleanup (jlong, jNs);
          u16.append((Uint16)jiA[i]);  
       cv=new CIMValue(u16);  
    }  
    else {  
       Array<Sint16> s16;  
       for (jsize i=0;i<len;i++)  
          s16.append((Sint16)jiA[i]);  
       cv=new CIMValue(s16);  
    }    }
  
    jEnv->ReleaseIntArrayElements(jintA, jiA, len);  
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);  // -------------------------------------
 }  // ---
   // -            CIMObject
   // ---
   // -------------------------------------
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1intArray  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObject__1newClass
       (JNIEnv *jEnv, jobject jThs, jlongArray jlongA, jboolean notSigned)    (JNIEnv *jEnv, jobject jThs, jlong jCc)
 { {
    CIMValue *cv  = NULL;     CIMClass *cCc = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCc);
    jboolean  b;  
    jsize     len = jEnv->GetArrayLength(jlongA);  
    jlong    *jlA = jEnv->GetLongArrayElements(jlongA,&b);  
  
    if (notSigned) {     try {
       Array<Uint32> u32;        CIMObject *cCo = new CIMObject (*cCc);
       for (jsize i=0;i<len;i++)  
          u32.append((Uint32)jlA[i]);  
       cv=new CIMValue(u32);  
    }  
    else {  
       Array<Sint32> s32;  
       for (jsize i=0;i<len;i++)  
          s32.append((Sint32)jlA[i]);  
       cv=new CIMValue(s32);  
    }  
  
    jEnv->ReleaseLongArrayElements(jlongA, jlA, len);        return DEBUG_ConvertCToJava (CIMObject*, jlong, cCo);
      }
      Catch (jEnv);
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);     return 0;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1longArray  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObject__1newInstance
       (JNIEnv *jEnv, jobject jThs, jlongArray jlongA, jboolean notSigned)    (JNIEnv *jEnv, jobject jThs, jlong jCi)
 { {
    CIMValue *cv  = NULL;     CIMInstance *cCi = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jCi);
    jboolean  b;  
    jsize     len = jEnv->GetArrayLength(jlongA);  
    jlong    *jlA = jEnv->GetLongArrayElements(jlongA,&b);  
  
    if (notSigned) {     try {
       Array<Uint64> u64;        CIMObject *cCo = new CIMObject (*cCi);
       for (jsize i=0;i<len;i++)  
          u64.append((Uint64)jlA[i]);  
       cv=new CIMValue(u64);  
    }  
    else {  
       Array<Sint64> s64;  
       for (jsize i=0;i<len;i++)  
          s64.append((Sint64)jlA[i]);  
       cv=new CIMValue(s64);  
    }  
  
    jEnv->ReleaseLongArrayElements(jlongA, jlA, len);        return DEBUG_ConvertCToJava (CIMObject*, jlong, cCo);
      }
      Catch (jEnv);
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);     return 0;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1stringArray  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObject__1finalize
       (JNIEnv *jEnv, jobject jThs, jobjectArray jstringA)    (JNIEnv *jEnv, jobject jThs, jlong jInst)
 { {
    CIMValue     *cv   = NULL;     CIMObject *co = DEBUG_ConvertJavaToC (jlong, CIMObject*, jInst);
    jsize         len  = jEnv->GetArrayLength(jstringA);  
    Array<String> strA;  
   
    for (jsize i=0;i<len;i++) {  
       jstring     jsA = (jstring)jEnv->GetObjectArrayElement(jstringA,i);  
       const char *str = jEnv->GetStringUTFChars(jsA,NULL);  
  
       strA.append(String(str));     delete co;
  
       jEnv->ReleaseStringUTFChars(jsA,str);     DEBUG_ConvertCleanup (jlong, jInst);
    }    }
  
    cv = new CIMValue(strA);  
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);  // -------------------------------------
 }  // ---
   // -            CIMObjectPath
   // ---
   // -------------------------------------
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1booleanArray  CIMObjectPath* construct ()
       (JNIEnv *jEnv, jobject jThs, jbooleanArray jboolA)  
 { {
    CIMValue       *cv  = NULL;     CIMObjectPath *cop = new CIMObjectPath ();
    jboolean        b;     _nameSpace     n;
    jsize           len = jEnv->GetArrayLength(jboolA);  
    jboolean       *jbA = jEnv->GetBooleanArrayElements(jboolA,&b);  
    Array<Boolean>  bA;  
  
    for (jsize i=0;i<len;i++)     cop->setNameSpace (n.nameSpace ());
       bA.append((Boolean)jbA[i]);     cop->setHost (n.hostName ());
    cv=new CIMValue(bA);  
  
    jEnv->ReleaseBooleanArrayElements(jboolA, jbA, len);     return cop;
   }
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1new
         (JNIEnv *jEnv, jobject jThs)
   {
      return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, construct ());
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1floatArray  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1newCn
   (JNIEnv *jEnv, jobject jThs, jfloatArray jfloatA)        (JNIEnv *jEnv, jobject jThs, jstring jCn)
 { {
    CIMValue     *cv  = NULL;     CIMObjectPath *cop = construct ();
    jboolean      b;     const char    *str = jEnv->GetStringUTFChars (jCn, NULL);
    jsize         len = jEnv->GetArrayLength(jfloatA);  
    jfloat       *jfA = jEnv->GetFloatArrayElements(jfloatA,&b);  
    Array<float>  fA;  
  
    for (jsize i=0;i<len;i++)     if (str)
       fA.append((float)jfA[i]);        cop->setClassName (str);
    cv=new CIMValue(fA);  
  
    jEnv->ReleaseFloatArrayElements(jfloatA, jfA, len);     jEnv->ReleaseStringUTFChars (jCn, str);
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);     return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, cop);
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1doubleArray  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1newCnNs
   (JNIEnv *jEnv, jobject jThs, jdoubleArray jdoubleA)        (JNIEnv *jEnv, jobject jThs, jstring jCn, jstring jNs)
 { {
    CIMValue      *cv  = NULL;     CIMObjectPath *cop  = construct ();
    jboolean       b;     const char    *str1 = NULL;
    jsize          len = jEnv->GetArrayLength(jdoubleA);     const char    *str2 = NULL;
    jdouble       *jdA = jEnv->GetDoubleArrayElements(jdoubleA,&b);  
    Array<double>  dA;  
  
    for (jsize i=0;i<len;i++)     try {
       dA.append((double)jdA[i]);        if (jCn)
    cv=new CIMValue(dA);           str1 = jEnv->GetStringUTFChars (jCn, NULL);
         if (jNs)
            str2 = jEnv->GetStringUTFChars (jNs, NULL);
         if (str1)
            cop->setClassName (str1);
         if (str2)
            cop->setNameSpace (str2);
      }
      Catch (jEnv);
  
    jEnv->ReleaseDoubleArrayElements(jdoubleA, jdA, len);     if (str1)
         jEnv->ReleaseStringUTFChars (jCn, str1);
      if (str2)
         jEnv->ReleaseStringUTFChars (jNs, str2);
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);     return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, cop);
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1copArray  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1newCi
       (JNIEnv *jEnv, jobject jThs, jintArray jintA)        (JNIEnv *jEnv, jobject jThs, jlong jInst)
 { {
    CIMValue             *cv  = NULL;     CIMInstance   *ci  = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
    jboolean              b;     CIMObjectPath *cop = 0;
    jsize                 len = jEnv->GetArrayLength(jintA);     _nameSpace     n;
    jint                 *jiA = jEnv->GetIntArrayElements(jintA,&b);  
    Array<CIMObjectPath>  cA;  
  
    for (jsize i=0;i<len;i++)     try
       cA.append(*((CIMObjectPath*)jiA[i]));     {
    cv=new CIMValue(cA);        if (ci)
         {
            cop = new CIMObjectPath (ci->getPath ());
  
    jEnv->ReleaseIntArrayElements(jintA, jiA, len);           if (cop)
            {
               if (cop->getNameSpace ().isNull ())
                  cop->setNameSpace (n.nameSpace ());
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);              if (cop->getHost ().size () == 0)
                  cop->setHost (n.hostName ());
 } }
         }
      }
      Catch (jEnv);
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1datetimeArray     return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, cop);
       (JNIEnv *jEnv, jobject jThs, jintArray jintA)  }
 {  
    CIMValue           *cv  = NULL;  
    jboolean            b;  
    jsize               len = jEnv->GetArrayLength(jintA);  
    jint               *jiA = jEnv->GetIntArrayElements(jintA,&b);  
    Array<CIMDateTime>  cA;  
   
    for (jsize i=0;i<len;i++)  
       cA.append(*((CIMDateTime*)jiA[i]));  
    cv=new CIMValue(cA);  
  
    jEnv->ReleaseIntArrayElements(jintA, jiA, len);  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1newCiNs
         (JNIEnv *jEnv, jobject jThs, jlong jInst, jstring jNamespace)
   {
      CIMInstance      *ci              = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
      CIMObjectPath    *cop             = 0;
      const char       *pszNamespace    = jEnv->GetStringUTFChars (jNamespace, NULL);
      CIMNamespaceName  cnnNamespace;
      bool              fNamespaceValid = false;
      _nameSpace        n;
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);     try
      {
         cnnNamespace    = pszNamespace;
         fNamespaceValid = true;
 } }
      catch (Exception e)
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1objectArray  
       (JNIEnv *jEnv, jobject jThs, jintArray jintA)  
 { {
    CIMValue           *cv  = NULL;     }
    jboolean            b;  
    jsize               len = jEnv->GetArrayLength(jintA);  
    jint               *jiA = jEnv->GetIntArrayElements(jintA,&b);  
    Array<CIMObject>    cA;  
  
    for (jsize i=0;i<len;i++)     jEnv->ReleaseStringUTFChars (jNamespace, pszNamespace);
       cA.append(*((CIMObject*)jiA[i]));  
    cv=new CIMValue(cA);  
  
    jEnv->ReleaseIntArrayElements(jintA, jiA, len);     try
      {
         if (ci)
         {
            cop = new CIMObjectPath (ci->getPath ());
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);           if (cop)
            {
               if (fNamespaceValid)
               {
                  cop->setNameSpace (cnnNamespace);
 } }
               else
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1char16Array  
       (JNIEnv *jEnv, jobject jThs, jcharArray jcharA)  
 { {
    CIMValue      *cv  = NULL;                 if (cop->getNameSpace ().isNull ())
    jboolean       b;                    cop->setNameSpace (n.nameSpace ());
    jsize          len = jEnv->GetArrayLength(jcharA);              }
    jchar         *jcA = jEnv->GetCharArrayElements(jcharA,&b);  
    Array<Char16>  cA;  
   
    for (jsize i=0;i<len;i++)  
       cA.append(Char16 (jcA[i]));  
    cv=new CIMValue(cA);  
  
    jEnv->ReleaseCharArrayElements(jcharA, jcA, len);              if (cop->getHost ().size () == 0)
                  cop->setHost (n.hostName ());
            }
         }
      }
      Catch (jEnv);
  
    return DEBUG_ConvertCToJava (CIMValue*, jint, cv);     return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, cop);
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1getType  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1finalize
       (JNIEnv *jEnv, jobject jThs, jint jP)        (JNIEnv *jEnv, jobject jThs, jlong jCop)
 { {
    CIMValue *cv       = DEBUG_ConvertJavaToC (jint, CIMValue*, jP);     CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
    bool      fSuccess = false;  
    int       iJType   = 0;  
  
    iJType = _dataType::convertCTypeToJavaType (cv->getType(), &fSuccess);     delete cop;
  
    return DEBUG_ConvertCToJava (int, jint, iJType);     DEBUG_ConvertCleanup (jlong, jCop);
 } }
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMValue__1toString  JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getNameSpace
       (JNIEnv *jEnv, jobject jThs, jint jV)        (JNIEnv *jEnv, jobject jThs, jlong jCop)
 { {
    CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);     CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      const String  &ns  = cop->getNameSpace ().getString ();
  
    return (jstring)jEnv->NewStringUTF(cv->toString().getCString());     jstring str = jEnv->NewStringUTF (ns.getCString ());
   
      return str;
 } }
  
 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMValue__1getValue  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1setNameSpace
       (JNIEnv *jEnv, jobject jThs, jint jV)        (JNIEnv *jEnv, jobject jThs, jlong jCop, jstring jName)
 { {
    JMPIjvm::cacheIDs(jEnv);     CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      const char    *str = jEnv->GetStringUTFChars (jName,NULL);
    CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);  
   
    if (cv->isNull ())  
       return NULL;  
  
    CIMType type = cv->getType ();     cop->setNameSpace (CIMNamespaceName (str));
  
    if (!cv->isArray ())     jEnv->ReleaseStringUTFChars (jName,str);
    {  
       switch (type)  
       {  
       case CIMTYPE_BOOLEAN:  
          Boolean bo;  
          cv->get(bo);  
          return jEnv->NewObject (JMPIjvm::jv.BooleanClassRef,  
                                  JMPIjvm::jv.BooleanNewZ,  
                                  bo);  
       case CIMTYPE_SINT8:  
          Sint8 s8;  
          cv->get(s8);  
          return jEnv->NewObject (JMPIjvm::jv.ByteClassRef,  
                                  JMPIjvm::jv.ByteNewB,  
                                  s8);  
       case CIMTYPE_UINT8:  
          Uint8 u8;  
          cv->get(u8);  
          return jEnv->NewObject (JMPIjvm::jv.UnsignedInt8ClassRef,  
                                  JMPIjvm::jv.UnsignedInt8NewS,  
                                  u8);  
       case CIMTYPE_SINT16:  
          Sint16 s16;  
          cv->get(s16);  
          return jEnv->NewObject (JMPIjvm::jv.ShortClassRef,  
                                  JMPIjvm::jv.ShortNewS,  
                                  s16);  
       case CIMTYPE_UINT16:  
          Uint16 u16;  
          cv->get(u16);  
          return jEnv->NewObject (JMPIjvm::jv.UnsignedInt16ClassRef,  
                                  JMPIjvm::jv.UnsignedInt16NewI,  
                                  u16);  
       case CIMTYPE_SINT32:  
          Sint32 s32;  
          cv->get(s32);  
          return jEnv->NewObject (JMPIjvm::jv.IntegerClassRef,  
                                  JMPIjvm::jv.IntegerNewI,  
                                  s32);  
       case CIMTYPE_UINT32:  
          Uint32 u32;  
          cv->get(u32);  
          return jEnv->NewObject (JMPIjvm::jv.UnsignedInt32ClassRef,  
                                  JMPIjvm::jv.UnsignedInt32NewJ,  
                                  u32);  
       case CIMTYPE_SINT64:  
          Sint64 s64;  
          cv->get(s64);  
          return jEnv->NewObject (JMPIjvm::jv.LongClassRef,  
                                  JMPIjvm::jv.LongNewJ,  
                                  s64);  
       case CIMTYPE_UINT64:  
       {  
          Uint64 u64;  
          cv->get(u64);  
          jobject jBIG = jEnv->CallStaticObjectMethod (JMPIjvm::jv.BigIntegerClassRef,  
                                                       JMPIjvm::jv.BigIntegerValueOf,  
                                                       u64);  
          return jEnv->NewObject (JMPIjvm::jv.UnsignedInt64ClassRef,  
                                  JMPIjvm::jv.UnsignedInt64NewBi,  
                                  jBIG);  
       }       }
       case CIMTYPE_REAL32:  
          float f;  JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getHost
          cv->get(f);        (JNIEnv *jEnv, jobject jThs, jlong jCop)
          return jEnv->NewObject (JMPIjvm::jv.FloatClassRef,  
                                  JMPIjvm::jv.FloatNewF,  
                                  f);  
       case CIMTYPE_REAL64:  
          double d;  
          cv->get(d);  
          return jEnv->NewObject (JMPIjvm::jv.DoubleClassRef,  
                                  JMPIjvm::jv.DoubleNewD,  
                                  d);  
       case CIMTYPE_STRING:  
       {       {
          String s;     CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
          cv->get(s);     const String  &hn = cop->getHost ();
          return jEnv->NewStringUTF(s.getCString());  
      jstring str = jEnv->NewStringUTF (hn.getCString ());
   
      return str;
       }       }
       case CIMTYPE_REFERENCE:  
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1setHost
         (JNIEnv *jEnv, jobject jThs, jlong jCop, jstring jName)
       {       {
          CIMObjectPath ref;     CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
          cv->get(ref);     const char    *str = jEnv->GetStringUTFChars (jName,NULL);
          jint jOp = DEBUG_ConvertCToJava (CIMObjectPath*, jint, new CIMObjectPath(ref));  
          return jEnv->NewObject (JMPIjvm::jv.CIMObjectPathClassRef,     cop->setHost (String (str));
                                  JMPIjvm::jv.CIMObjectPathNewI,  
                                  jOp);     jEnv->ReleaseStringUTFChars (jName,str);
       }       }
       case CIMTYPE_CHAR16:  
   JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getObjectName
         (JNIEnv *jEnv, jobject jThs, jlong jCop)
       {       {
          Char16 c16;     CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
          cv->get(c16);     const String  &cn  = cop->getClassName ().getString ();
          return jEnv->NewObject (JMPIjvm::jv.CharacterClassRef,  
                                  JMPIjvm::jv.CharacterNewC,     jstring str = jEnv->NewStringUTF (cn.getCString ());
                                  (jchar)c16);  
      return str;
       }       }
       case CIMTYPE_DATETIME:  
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1setObjectName
         (JNIEnv *jEnv, jobject jThs, jlong jCop, jstring jName)
       {       {
          CIMDateTime dt;     CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
          cv->get(dt);     const char    *str = jEnv->GetStringUTFChars (jName,NULL);
          jint jDT = DEBUG_ConvertCToJava (CIMDateTime*, jint, new CIMDateTime(dt));  
          return jEnv->NewObject (JMPIjvm::jv.CIMDateTimeClassRef,     cop->setClassName (String (str));
                                  JMPIjvm::jv.CIMDateTimeNewI,  
                                  jDT);     jEnv->ReleaseStringUTFChars (jName,str);
       }       }
       case CIMTYPE_OBJECT:  
       {  JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getKeys
          CIMObject co;        (JNIEnv *jEnv, jobject jThs, jlong jCop, jobject jVec)
          cv->get(co);  
          if (co.isClass ())  
          {          {
             jint jCC = DEBUG_ConvertCToJava (CIMClass*, jint, new CIMClass(co));     JMPIjvm::cacheIDs (jEnv);
  
             return jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,     CIMObjectPath              *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
                                     JMPIjvm::jv.CIMObjectNewIZ,     const Array<CIMKeyBinding> &akb = cop->getKeyBindings ();
                                     jCC,  
                                     (jboolean)true);     for (Uint32 i = 0, s = akb.size (); i < s; i++)
          }  
          else  
          {          {
             jint jCI = DEBUG_ConvertCToJava (CIMInstance*, jint, new CIMInstance(co));        const String        &n  = akb[i].getName ().getString ();
         const String        &v  = akb[i].getValue ();
         CIMKeyBinding::Type  t  = akb[i].getType ();
         CIMValue            *cv = 0;
  
             return jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,        switch (t)
                                     JMPIjvm::jv.CIMObjectNewIZ,        {
                                     jCI,        case CIMKeyBinding::NUMERIC:
                                     (jboolean)false);           cv = new CIMValue ((Sint32)atol (v.getCString ()));
          }           break;
       }        case CIMKeyBinding::STRING:
            cv = new CIMValue (v);
            break;
         case CIMKeyBinding::BOOLEAN:
            cv = new CIMValue ((Boolean) (v.getCString ()));
            break;
         case CIMKeyBinding::REFERENCE:
            cv = new CIMValue (CIMObjectPath (akb[i].getValue ()));
            break;
       default:       default:
          throwCIMException(jEnv,"+++ unsupported type: ");          throwCIMException(jEnv,"+++ unsupported type: ");
       }       }
    }  
         CIMProperty *cp = 0;
   
         if (t != CIMKeyBinding::REFERENCE)
            cp = new CIMProperty (n, *cv);
    else    else
    {           cp = new CIMProperty (n, *cv, 0, ((CIMObjectPath) akb[i].getValue ()).getClassName ());
       switch (type)  
       {  
       case CIMTYPE_BOOLEAN:  
       {  
          Array<Boolean> bo;  
  
          cv->get(bo);        jlong   jCp  = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
         jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jCp);
  
          int          s         = bo.size();        jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop);
          jobjectArray jbooleanA = (jobjectArray)jEnv->NewObjectArray (s,     }
                                                                       JMPIjvm::jv.BooleanClassRef,  
                                                                       0);  
  
          for (int i=0; i < s; i++)     return jVec;
             jEnv->SetObjectArrayElement(jbooleanA,  
                                         i,  
                                         jEnv->NewObject (JMPIjvm::jv.BooleanClassRef,  
                                                          JMPIjvm::jv.BooleanNewZ,  
                                                          bo[i]));  
          return jbooleanA;  
       }       }
       case CIMTYPE_SINT8:  
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1setKeys
         (JNIEnv *jEnv, jobject jThs, jlong jCop, jobject jVec)
       {       {
          Array<Sint8> s8;     JMPIjvm::cacheIDs (jEnv);
  
          cv->get(s8);     CIMObjectPath        *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      Array<CIMKeyBinding>  akb;
  
          int          s      = s8.size();     for (Uint32 i = 0, s = jEnv->CallIntMethod (jVec,JMPIjvm::jv.VectorSize); i < s; i++)
          jobjectArray jbyteA = (jobjectArray)jEnv->NewObjectArray (s,     {
                                                                    JMPIjvm::jv.ByteClassRef,        jobject      o   = jEnv->CallObjectMethod (jVec,JMPIjvm::jv.VectorElementAt, (i));
                                                                    0);        jlong        jCp = jEnv->CallLongMethod (o,JMPIjvm::jv.CIMPropertyCInst);
         CIMProperty *cp  = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jCp);
  
          for (int i=0; i < s; i++)        akb.append (CIMKeyBinding (cp->getName (), cp->getValue ()));
             jEnv->SetObjectArrayElement (jbyteA,  
                                          i,  
                                          jEnv->NewObject (JMPIjvm::jv.ByteClassRef,  
                                                           JMPIjvm::jv.ByteNewB,  
                                                           s8[i]));  
          return jbyteA;  
       }       }
       case CIMTYPE_UINT8:  
      cop->setKeyBindings (akb);
   }
   
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1addKey
         (JNIEnv *jEnv, jobject jThs, jlong jCop, jstring jId, jlong jVal)
       {       {
          Array<Uint8> u8;     CIMObjectPath       *cop         = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      const char          *str         = jEnv->GetStringUTFChars (jId, NULL);
      CIMValue            *cv          = DEBUG_ConvertJavaToC (jlong, CIMValue*, jVal);
      Array<CIMKeyBinding> keyBindings = cop->getKeyBindings ();
  
          cv->get(u8);     keyBindings.append (CIMKeyBinding (str,*cv));
      cop->setKeyBindings (Array<CIMKeyBinding> (keyBindings));
  
          int          s       = u8.size();     jEnv->ReleaseStringUTFChars (jId, str);
          jobjectArray jshortA = (jobjectArray)jEnv->NewObjectArray (s,  
                                                                     JMPIjvm::jv.UnsignedInt8ClassRef,  
                                                                     0);  
          for (int i=0; i < s; i++)  
             jEnv->SetObjectArrayElement (jshortA,  
                                          i,  
                                          jEnv->NewObject (JMPIjvm::jv.UnsignedInt8ClassRef,  
                                                           JMPIjvm::jv.UnsignedInt8NewS,  
                                                           u8[i]));  
          return jshortA;  
       }       }
       case CIMTYPE_SINT16:  
   JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getKeyValue
         (JNIEnv *jEnv, jobject jThs, jlong jCop, jstring jStr)
       {       {
          Array<Sint16> s16;     CIMObjectPath              *cop        = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      const Array<CIMKeyBinding> &akb        = cop->getKeyBindings ();
      const char                 *strKeyName = jEnv->GetStringUTFChars (jStr,NULL);
      jstring                     retStr     = NULL;
  
          cv->get(s16);     for (Uint32 i = 0,s = akb.size (); i<s; i++)
      {
         const String &n = akb[i].getName ().getString ();
  
          int          s       = s16.size();        if (n == String (strKeyName))
          jobjectArray jshortA = (jobjectArray)jEnv->NewObjectArray (s,        {
                                                                     JMPIjvm::jv.ShortClassRef,           retStr = jEnv->NewStringUTF (akb[i].getValue ().getCString ());
                                                                     0);           break;
         }
      }
  
          for (int i=0; i < s; i++)     jEnv->ReleaseStringUTFChars (jStr,strKeyName);
             jEnv->SetObjectArrayElement (jshortA,  
                                          i,     return retStr;
                                          jEnv->NewObject (JMPIjvm::jv.ShortClassRef,  
                                                           JMPIjvm::jv.ShortNewS,  
                                                           s16[i]));  
          return jshortA;  
       }       }
       case CIMTYPE_UINT16:  
   JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1toString
         (JNIEnv *jEnv, jobject jThs, jlong jCop)
       {       {
          Array<Uint16> u16;     CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      const String  &ns  = cop->toString ();
  
          cv->get(u16);     jstring str = jEnv->NewStringUTF (ns.getCString ());
  
          int          s     = u16.size();     return str;
          jobjectArray jintA = (jobjectArray)jEnv->NewObjectArray (s,  }
                                                                   JMPIjvm::jv.UnsignedInt16ClassRef,  
                                                                   0);  
  
          for (int i=0; i < s; i++)  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1clone
             jEnv->SetObjectArrayElement (jintA,        (JNIEnv *jEnv, jobject jThs, jlong jCop)
                                          i,  {
                                          jEnv->NewObject (JMPIjvm::jv.UnsignedInt16ClassRef,     CIMObjectPath *cop  = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
                                                           JMPIjvm::jv.UnsignedInt16NewI,     CIMObjectPath *copl = new CIMObjectPath (cop->getHost (), cop->getNameSpace (), cop->getClassName (), cop->getKeyBindings ());
                                                           u16[i]));  
          return jintA;     return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, copl);
       }       }
       case CIMTYPE_SINT32:  
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1set
         (JNIEnv *jEnv, jobject jThs, jstring jStr)
       {       {
          Array<Sint32> s32;     const char    *strCop = jEnv->GetStringUTFChars (jStr,NULL);
      CIMObjectPath *cop    = new CIMObjectPath ();
  
          cv->get(s32);     cop->set (String (strCop));
  
          int          s     = s32.size();     jEnv->ReleaseStringUTFChars (jStr,strCop);
          jobjectArray jintA = (jobjectArray)jEnv->NewObjectArray (s,  
                                                                   JMPIjvm::jv.IntegerClassRef,  
                                                                   0);  
  
          for (int i=0; i < s; i++)     return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, cop);
             jEnv->SetObjectArrayElement (jintA,  
                                          i,  
                                          jEnv->NewObject (JMPIjvm::jv.IntegerClassRef,  
                                                           JMPIjvm::jv.IntegerNewI,  
                                                           s32[i]));  
          return jintA;  
       }       }
       case CIMTYPE_UINT32:  
       {  
          Array<Uint32> u32;  
  
          cv->get(u32);  
  
          int          s      = u32.size();  // -------------------------------------
          jobjectArray jlongA = (jobjectArray)jEnv->NewObjectArray (s,  // ---
                                                                    JMPIjvm::jv.UnsignedInt32ClassRef,  // -            CIMOMHandle
                                                                    0);  // ---
   // -------------------------------------
  
          for (int i=0; i < s; i++)  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1getClass
             jEnv->SetObjectArrayElement (jlongA,    (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jboolean lo,
                                          i,           jboolean iq, jboolean ic, jobjectArray jPl)
                                          jEnv->NewObject (JMPIjvm::jv.UnsignedInt32ClassRef,  
                                                           JMPIjvm::jv.UnsignedInt32NewJ,  
                                                           u32[i]));  
          return jlongA;  
       }  
       case CIMTYPE_SINT64:  
       {       {
          Array<Sint64> s64;     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
      CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMPropertyList   pl;
      OperationContext  ctx;
  
          cv->get(s64);     if (jPl)
         pl = getList (jEnv, jPl);
      else
         pl = CIMPropertyList ();
  
          int          s      = s64.size();     try {
          jobjectArray jlongA = (jobjectArray)jEnv->NewObjectArray (s,        CIMClass cls = ch->getClass (ctx,
                                                                    JMPIjvm::jv.LongClassRef,                                     cop->getNameSpace (),
                                                                    0);                                     cop->getClassName (),
                                      (Boolean)lo,
                                      (Boolean)iq,
                                      (Boolean)ic,
                                      pl);
  
          for (int i=0; i < s; i++)        return DEBUG_ConvertCToJava (CIMClass*, jlong, new CIMClass (cls));
             jEnv->SetObjectArrayElement (jlongA,  
                                          i,  
                                          jEnv->NewObject (JMPIjvm::jv.LongClassRef,  
                                                           JMPIjvm::jv.LongNewJ,  
                                                           s64[i]));  
          return jlongA;  
       }       }
       case CIMTYPE_UINT64:     Catch(jEnv);
       {  
          Array<Uint64> u64;  
   
          cv->get(u64);  
  
          int          s     = u64.size();     return 0;
          jobjectArray ju64A = (jobjectArray)jEnv->NewObjectArray (s,  }
                                                                   JMPIjvm::jv.UnsignedInt64ClassRef,  
                                                                   0);  
  
          for (int i=0; i < s; i++)  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1deleteClass
      (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop)
          {          {
             jobject jBIG = jEnv->CallStaticObjectMethod (JMPIjvm::jv.BigIntegerClassRef,     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
                                                          JMPIjvm::jv.BigIntegerValueOf,     CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
                                                          u64[i]);     OperationContext  ctx;
  
             jEnv->SetObjectArrayElement (ju64A,     try {
                                          i,        ch->deleteClass (ctx,
                                          jEnv->NewObject (JMPIjvm::jv.UnsignedInt64ClassRef,                         cop->getNameSpace (),
                                                           JMPIjvm::jv.UnsignedInt64NewBi,                         cop->getClassName ());
                                                           jBIG));  
          }          }
          return ju64A;     Catch(jEnv);
       }       }
       case CIMTYPE_REAL32:  
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1createClass
     (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jlong jCl)
       {       {
          Array<Real32> r32;     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
      CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMClass         *cl  = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCl);
      OperationContext  ctx;
  
          cv->get(r32);     try {
         ch->createClass (ctx,
                          cop->getNameSpace (),
                          *cl);
      }
      Catch(jEnv);
   }
  
          int          s       = r32.size();  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1setClass
          jobjectArray jfloatA = (jobjectArray)jEnv->NewObjectArray (s,    (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jlong jCl)
                                                                     JMPIjvm::jv.FloatClassRef,  {
                                                                     0);     CIMOMHandle     *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
      CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMClass        *cl  = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCl);
      OperationContext ctx;
  
          for (int i=0; i < s; i++)     try {
             jEnv->SetObjectArrayElement (jfloatA,       ch->modifyClass (ctx,
                                          i,                        cop->getNameSpace (),
                                          jEnv->NewObject (JMPIjvm::jv.FloatClassRef,                        *cl);
                                                           JMPIjvm::jv.FloatNewF,  
                                                           r32[i]));  
          return jfloatA;  
       }       }
       case CIMTYPE_REAL64:     Catch(jEnv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateClassNames
     (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jboolean deep)
       {       {
          Array<Real64> r64;     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
      CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMNamespaceName  ns  = cop->getNameSpace ();
      OperationContext  ctx;
  
          cv->get(r64);     try {
         Array<CIMName>        enm   = ch->enumerateClassNames (ctx,
                                                                cop->getNameSpace (),
                                                                cop->getClassName (),
                                                                (Boolean)deep);
         Array<CIMObjectPath> *enmop = new Array<CIMObjectPath> ();
  
          int          s        = r64.size();        for (int i = 0, m = enm.size (); i < m; i++)
          jobjectArray jdoubleA = (jobjectArray)jEnv->NewObjectArray (s,        {
                                                                      JMPIjvm::jv.DoubleClassRef,           enmop->append (CIMObjectPath (String::EMPTY,
                                                                      0);                                         ns,
                                          enm[i]));
         }
  
          for (int i=0; i < s; i++)        return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, enmop);
             jEnv->SetObjectArrayElement (jdoubleA,  
                                          i,  
                                          jEnv->NewObject (JMPIjvm::jv.DoubleClassRef,  
                                                           JMPIjvm::jv.DoubleNewD,  
                                                           r64[i]));  
          return jdoubleA;  
       }       }
       case CIMTYPE_STRING:     Catch(jEnv);
       {  
          Array<String> str;  
  
          cv->get(str);     return 0;
   }
  
          int          s        = str.size();  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateClasses
          jobjectArray jstringA = (jobjectArray)jEnv->NewObjectArray (s,    (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jboolean deep,
                                                                      JMPIjvm::jv.StringClassRef,          jboolean lo, jboolean iq, jboolean ic)
                                                                      0);  {
      CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
      CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      OperationContext  ctx;
  
          for (int i=0; i < s; i++)     try {
             jEnv->SetObjectArrayElement (jstringA,        Array<CIMClass> en = ch->enumerateClasses (ctx,
                                          i,                                                   cop->getNameSpace (),
                                          jEnv->NewStringUTF (str[i].getCString()));                                                   cop->getClassName (),
          return jstringA;                                                   (Boolean)deep,
                                                    (Boolean)lo,
                                                    (Boolean)iq,
                                                    (Boolean)ic);
   
         return DEBUG_ConvertCToJava (Array<CIMClass>*, jlong, new Array<CIMClass> (en));
       }       }
       case CIMTYPE_REFERENCE:     Catch (jEnv);
   
      return 0;
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1getInstance
      (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jboolean lo, jboolean iq, jboolean ic,
           jobjectArray jPl)
       {       {
          Array<CIMObjectPath> ref;     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
      CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      OperationContext  ctx;
      CIMPropertyList   pl;
  
          cv->get(ref);     if (jPl)
         pl = getList (jEnv,jPl);
      else
         pl = CIMPropertyList ();
  
          int          s     = ref.size();     try {
          jobjectArray jrefA = (jobjectArray)jEnv->NewObjectArray (s,        CIMInstance *inst = new CIMInstance (ch->getInstance (ctx,
                                                                   JMPIjvm::jv.CIMObjectPathClassRef,                                                              cop->getNameSpace (),
                                                                   0);                                                              *cop,
                                                               (Boolean)lo,
                                                               (Boolean)iq,
                                                               (Boolean)ic,
                                                               pl));
  
          for (int i=0; i < s; i++)        return DEBUG_ConvertCToJava (CIMInstance*, jlong, inst);
      }
      Catch (jEnv);
   
      return 0;
   }
   
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1deleteInstance
      (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop)
          {          {
             jint jOP = DEBUG_ConvertCToJava (CIMObjectPath*, jint, new CIMObjectPath(ref[i]));     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
      CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      OperationContext  ctx;
  
             jEnv->SetObjectArrayElement (jrefA,     try {
                                          i,        ch->deleteInstance (ctx,cop->getNameSpace (),*cop);
                                          jEnv->NewObject (JMPIjvm::jv.CIMObjectPathClassRef,  
                                                           JMPIjvm::jv.CIMObjectPathNewI,  
                                                           jOP));  
          }          }
          return jrefA;     Catch (jEnv);
       }       }
       case CIMTYPE_CHAR16:  
       {  
          Array<Char16> c16;  
  
          cv->get(c16);  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1createInstance
     (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jlong jCi)
   {
      CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
      CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMInstance      *ci  = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jCi);
      OperationContext  ctx;
  
          int          s     = c16.size();     try {
          jobjectArray jc16A = (jobjectArray)jEnv->NewObjectArray (s,        ci->setPath (*cop);
                                                                   JMPIjvm::jv.CharacterClassRef,  
                                                                   0);  
  
          for (int i=0; i < s; i++)        CIMObjectPath obj = ch->createInstance (ctx,
             jEnv->SetObjectArrayElement (jc16A,                                                cop->getNameSpace (),
                                          i,                                                *ci);
                                          jEnv->NewObject (JMPIjvm::jv.CharacterClassRef,  
                                                           JMPIjvm::jv.CharacterNewC,  
                                                           (jchar)c16[i]));  
  
          return jc16A;        return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath (obj));
       }       }
       case CIMTYPE_DATETIME:     Catch (jEnv);
       {  
          Array<CIMDateTime> dt;  
   
          cv->get(dt);  
  
          int          s    = dt.size();     return 0;
          jobjectArray jdtA = (jobjectArray)jEnv->NewObjectArray (s,  }
                                                                  JMPIjvm::jv.CIMDateTimeClassRef,  
                                                                  0);  
  
          for (int i=0; i < s; i++)  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1modifyInstance
     (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jlong jCi,
            jboolean iq, jobjectArray jPl)
          {          {
             jint jDT = DEBUG_ConvertCToJava (CIMDateTime*, jint, new CIMDateTime(dt[i]));     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
      CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMInstance      *ci  = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jCi);
      CIMPropertyList   pl  = getList (jEnv, jPl);
      OperationContext  ctx;
  
             jEnv->SetObjectArrayElement (jdtA,     try {
                                          i,        ci->setPath (*cop);
                                          jEnv->NewObject (JMPIjvm::jv.CIMDateTimeClassRef,        ch->modifyInstance (ctx,
                                                           JMPIjvm::jv.CIMDateTimeNewI,                            cop->getNameSpace (),
                                                           jDT));                            *ci,
                             (Boolean)iq,
                             pl);
          }          }
          return jdtA;     Catch (jEnv);
       }       }
       case CIMTYPE_OBJECT:  
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateInstanceNames
     (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jboolean deep)
       {       {
          Array<CIMObject> co;     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
      CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      OperationContext  ctx;
  
          cv->get(co);     try {
         Array<CIMObjectPath> enm = ch->enumerateInstanceNames (ctx,
                                                                cop->getNameSpace (),
                                                                cop->getClassName ()); //, (Boolean)deep);
         return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));
      }
      Catch (jEnv);
  
          int          s    = co.size();     return 0;
          jobjectArray jcoA = (jobjectArray)jEnv->NewObjectArray (s,  }
                                                                  JMPIjvm::jv.CIMObjectClassRef,  
                                                                  0);  
  
          for (int i=0; i < s; i++)  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateInstances
          {    (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jboolean deep,
             if (co[i].isClass ())          jboolean lo, jboolean iq, jboolean ic, jobjectArray jPl)
             {             {
                jint jCC = DEBUG_ConvertCToJava (CIMClass*, jint, new CIMClass(co[i]));     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
      CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      CIMPropertyList   pl;
      OperationContext  ctx;
  
                jEnv->SetObjectArrayElement (jcoA,     if (jPl)
                                             i,        pl = getList (jEnv, jPl);
                                             jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,  
                                                              JMPIjvm::jv.CIMObjectNewIZ,  
                                                              jCC,  
                                                              (jboolean)true));  
             }  
             else             else
             {        pl = CIMPropertyList ();
                jint jCI = DEBUG_ConvertCToJava (CIMInstance*, jint, new CIMInstance(co[i]));  
  
                jEnv->SetObjectArrayElement (jcoA,     try {
                                             i,        Array<CIMInstance> en = ch->enumerateInstances (ctx,
                                             jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,                                                        cop->getNameSpace (),
                                                              JMPIjvm::jv.CIMObjectNewIZ,                                                        cop->getClassName (),
                                                              jCI,                                                        (Boolean)deep,
                                                              (jboolean)false));                                                        (Boolean)lo,
             }                                                        (Boolean)iq,
          }                                                        (Boolean)ic,
          return jcoA;                                                        pl);
       }  
       default:        return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, new Array<CIMInstance> (en));
          throwCIMException(jEnv,"+++ unsupported type: ");  
       }  
    }    }
      Catch (jEnv);
  
    return NULL;     return 0;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMValue__1finalize  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1execQuery
       (JNIEnv *jEnv, jobject jThs, jint jV)    (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jstring jQuery, jstring jQl)
 { {
    CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
      CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
    delete cv;     OperationContext  ctx;
      const char       *str = jEnv->GetStringUTFChars (jQuery,NULL);
      String            query (str);
  
    DEBUG_ConvertCleanup (jint, jV);     jEnv->ReleaseStringUTFChars (jQuery,str);
 }  
  
 // -------------------------------------     str = jEnv->GetStringUTFChars (jQl, NULL);
 // ---  
 // -            CIMNameSpace  
 // ---  
 // -------------------------------------  
  
 _nameSpace::_nameSpace() {     String ql (str);
    port_=0;  
    hostName_=System::getHostName();  
    nameSpace_="root/cimv2";  
 }  
  
 _nameSpace::_nameSpace(String hn) {     jEnv->ReleaseStringUTFChars (jQl, str);
    port_=0;  
    hostName_=hn;  
    nameSpace_="root/cimv2";  
 }  
  
 _nameSpace::_nameSpace(String hn, String ns) {     try {
     port_=0;        Array<CIMObject>    enm = ch->execQuery (ctx,
     hostName_=hn;                                                 cop->getNameSpace (),
     nameSpace_=ns;                                                 ql,
 }                                                 query);
         Array<CIMInstance> *enmInst = new Array<CIMInstance> ();
  
 int _nameSpace::port() {        for (int i = 0,m = enm.size (); i<m; i++)
    if (port_) return port_;        {
    port_=5988;           enmInst->append (CIMInstance (enm[i]));
    if (hostName_.subString(0,7)=="http://") {  
       protocol_="http://";  
       hostName_=hostName_.subString(7);  
    }  
    Sint32 p=hostName_.reverseFind(':');  
    if (p>=0) {  
       if ((hostName_[p+1] >= '0') && (hostName_[p+1] <= '9'))  
          port_=atoi(hostName_.subString(p+1).getCString());  
       hostName_.remove(p);  
    }  
    return port_;  
 } }
  
 String _nameSpace::hostName() {        return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, enmInst);
    port();  
    return hostName_;  
 } }
      Catch (jEnv);
  
 String _nameSpace::nameSpace() {     return 0;
    return nameSpace_;  
 } }
  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1new  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1getProperty
   (JNIEnv *jEnv, jobject jThs)     (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jstring jN)
 { {
   return DEBUG_ConvertCToJava (_nameSpace*, jint, new _nameSpace());     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
 }     CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      OperationContext  ctx;
      const char       *str = jEnv->GetStringUTFChars (jN, NULL);
      CIMName           prop (str);
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1newHn     jEnv->ReleaseStringUTFChars (jN, str);
   (JNIEnv *jEnv, jobject jThs, jstring jHn)  
 {  
    const char *hn    = jEnv->GetStringUTFChars(jHn,NULL);  
    jint        cInst = DEBUG_ConvertCToJava (_nameSpace*, jint, new _nameSpace(hn));  
  
    jEnv->ReleaseStringUTFChars(jHn,hn);     try {
         CIMValue *cv = new CIMValue (ch->getProperty (ctx,
                                                       cop->getNameSpace (),
                                                       *cop,
                                                       prop));
  
    return cInst;        return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
 } }
      Catch (jEnv);
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1newHnNs     return 0;
   (JNIEnv *jEnv, jobject jThs, jstring jHn, jstring jNs)  }
   
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1setProperty
     (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jstring jPn, jlong jV)
 { {
    const char *hn    = jEnv->GetStringUTFChars(jHn,NULL);     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
    const char *ns    = jEnv->GetStringUTFChars(jNs,NULL);     CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
    jint        cInst = DEBUG_ConvertCToJava (_nameSpace*, jint, new _nameSpace(String(hn),String(ns)));     OperationContext  ctx;
      CIMValue         *val = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
      const char       *str = jEnv->GetStringUTFChars (jPn, NULL);
      CIMName           pName (str);
  
    jEnv->ReleaseStringUTFChars(jHn,hn);     jEnv->ReleaseStringUTFChars (jPn, str);
    jEnv->ReleaseStringUTFChars(jNs,ns);  
  
    return cInst;     try {
         ch->setProperty (ctx,
                          cop->getNameSpace (),
                          *cop,
                          pName,
                          *val);
      }
      Catch (jEnv);
 } }
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1getHost  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1associatorNames
   (JNIEnv *jEnv, jobject jThs, jint jNs)    (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop,
      jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole)
 { {
    _nameSpace   *cNs = DEBUG_ConvertJavaToC (jint, _nameSpace*, jNs);     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
    const String &hn  = cNs->hostName_;     CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
    jstring       str = jEnv->NewStringUTF(hn.getCString());     OperationContext  ctx;
      const char       *str = jEnv->GetStringUTFChars (jAssocClass, NULL);
  
    return str;     CIMName           assocClass;
 }  
  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1getNameSpace     if (  str
   (JNIEnv *jEnv, jobject jThs, jint jNs)        && *str
         )
 { {
    _nameSpace   *cNs = DEBUG_ConvertJavaToC (jint, _nameSpace*, jNs);        if (CIMName::legal (str))
    const String &ns  = cNs->nameSpace_;        {
    jstring       str = jEnv->NewStringUTF(ns.getCString());           assocClass = str;
   
    return str;  
 } }
         else
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1setHost  
   (JNIEnv *jEnv, jobject jThs, jint jNs, jstring jHn)  
 { {
    _nameSpace *cNs = DEBUG_ConvertJavaToC (jint, _nameSpace*, jNs);           jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
    const char *str = jEnv->GetStringUTFChars(jHn,NULL);                                         JMPIjvm::jv.CIMExceptionNewISt,
                                          (jint)4, // CIM_ERR_INVALID_PARAMETER
                                          jEnv->NewStringUTF ("Invalid association class name"));
  
    cNs->port_=0;           jEnv->Throw ((jthrowable)ev);
    cNs->hostName_=str;  
  
    jEnv->ReleaseStringUTFChars(jHn,str);           return 0;
         }
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1setNameSpace     jEnv->ReleaseStringUTFChars (jAssocClass, str);
   (JNIEnv *jEnv, jobject jThs, jint jNs, jstring jN)  
 {  
    _nameSpace *cNs = DEBUG_ConvertJavaToC (jint, _nameSpace*, jNs);  
    const char *str = jEnv->GetStringUTFChars(jN,NULL);  
  
    cNs->nameSpace_=str;     str = jEnv->GetStringUTFChars (jResultClass, NULL);
  
    jEnv->ReleaseStringUTFChars(jN,str);     CIMName resultClass;
 }  
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1finalize     if (  str
    (JNIEnv *jEnv, jobject jThs, jint jNs)        && *str
         )
      {
         if (CIMName::legal (str))
         {
            resultClass = str;
         }
         else
 { {
    _nameSpace *cNs = DEBUG_ConvertJavaToC (jint, _nameSpace*, jNs);           jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                          JMPIjvm::jv.CIMExceptionNewISt,
                                          (jint)4, // CIM_ERR_INVALID_PARAMETER
                                          jEnv->NewStringUTF ("Invalid result class name"));
  
    delete cNs;           jEnv->Throw ((jthrowable)ev);
  
    DEBUG_ConvertCleanup (jint, jNs);           return 0;
         }
 } }
  
 // -------------------------------------     jEnv->ReleaseStringUTFChars (jResultClass, str);
 // ---  
 // -            Enumerators  
 // ---  
 // -------------------------------------  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_ClassEnumeration__1getClass     str = jEnv->GetStringUTFChars (jRole, NULL);
   (JNIEnv *jEnv, jobject jThs, jint jEnum, jint pos)  
 {  
    Array<CIMClass> *enm = DEBUG_ConvertJavaToC (jint, Array<CIMClass>*, jEnum);  
  
    return DEBUG_ConvertCToJava (CIMClass*, jint, new CIMClass((*enm)[pos]));     String role (str);
 }  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_ClassEnumeration__1size     jEnv->ReleaseStringUTFChars (jRole, str);
   (JNIEnv *jEnv, jobject jThs, jint jEnum)  
 {  
    Array<CIMClass> *enm = DEBUG_ConvertJavaToC (jint, Array<CIMClass>*, jEnum);  
  
    return enm->size();     str = jEnv->GetStringUTFChars (jResultRole, NULL);
 }  
  
      String resultRole (str);
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_InstEnumeration__1getInstance     jEnv->ReleaseStringUTFChars (jResultRole, str);
   (JNIEnv *jEnv, jobject jThs, jint jEnum, jint pos)  
 {  
    Array<CIMInstance> *enm = DEBUG_ConvertJavaToC (jint, Array<CIMInstance>*, jEnum);  
  
    return DEBUG_ConvertCToJava (CIMInstance*, jint, new CIMInstance((*enm)[pos]));     try {
 }        Array<CIMObjectPath> enm = ch->associatorNames (ctx,
                                                         cop->getNameSpace (),
                                                         *cop,
                                                         assocClass,
                                                         resultClass,
                                                         role,
                                                         resultRole);
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_InstEnumeration__1size        return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));
   (JNIEnv *jEnv, jobject jThs, jint jEnum)     }
 {     Catch (jEnv);
    Array<CIMInstance> *enm = DEBUG_ConvertJavaToC (jint, Array<CIMInstance>*, jEnum);  
  
    return enm->size();     return 0;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_PathEnumeration__1getObjectPath  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1associators
   (JNIEnv *jEnv, jobject jThs, jint jEnum, jint pos)    (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop,
      jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole,
      jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)
 { {
    Array<CIMObjectPath> *enm = DEBUG_ConvertJavaToC (jint, Array<CIMObjectPath>*, jEnum);     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
      CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      OperationContext  ctx;
      CIMPropertyList   pl  = getList (jEnv, jPl);
      const char       *str = jEnv->GetStringUTFChars (jAssocClass, NULL);
      CIMName           assocClass;
  
    return DEBUG_ConvertCToJava (CIMObjectPath*, jint, new CIMObjectPath((*enm)[pos]));     if (  str
         && *str
         )
      {
         if (CIMName::legal (str))
         {
            assocClass = str;
 } }
         else
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_PathEnumeration__1size  
   (JNIEnv *jEnv, jobject jThs, jint jEnum)  
 { {
    Array<CIMObjectPath> *enm = DEBUG_ConvertJavaToC (jint, Array<CIMObjectPath>*, jEnum);           jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                          JMPIjvm::jv.CIMExceptionNewISt,
                                          (jint)4, // CIM_ERR_INVALID_PARAMETER
                                          jEnv->NewStringUTF ("Invalid association class name"));
  
    return enm->size();           jEnv->Throw ((jthrowable)ev);
   
            return 0;
         }
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_QualEnumeration__1getQualifierType     jEnv->ReleaseStringUTFChars (jAssocClass, str);
   (JNIEnv *jEnv, jobject jThs, jint jEnum, jint pos)  
 {  
    Array<CIMQualifierDecl> *enm = DEBUG_ConvertJavaToC (jint, Array<CIMQualifierDecl>*, jEnum);  
  
    return DEBUG_ConvertCToJava (CIMQualifierDecl*, jint, new CIMQualifierDecl((*enm)[pos]));     str = jEnv->GetStringUTFChars (jResultClass, NULL);
 }  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_QualEnumeration__1size     CIMName resultClass;
   (JNIEnv *jEnv, jobject jThs, jint jEnum)  
 {  
    Array<CIMQualifierDecl> *enm = DEBUG_ConvertJavaToC (jint, Array<CIMQualifierDecl>*, jEnum);  
  
    return enm->size();     if (  str
         && *str
         )
      {
         if (CIMName::legal (str))
         {
            resultClass = str;
 } }
         else
         {
            jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                          JMPIjvm::jv.CIMExceptionNewISt,
                                          (jint)4, // CIM_ERR_INVALID_PARAMETER
                                          jEnv->NewStringUTF ("Invalid result class name"));
  
 // -------------------------------------           jEnv->Throw ((jthrowable)ev);
 // ---  
 // -            CIMClient  
 // ---  
 // -------------------------------------  
   
 void checkNs(CIMObjectPath *cop, jint jNs) {  
    if (cop->getNameSpace().isNull()) {  
       _nameSpace *cNs = DEBUG_ConvertJavaToC (jint, _nameSpace*, jNs);  
  
       cop->setNameSpace(CIMNamespaceName(cNs->nameSpace()));           return 0;
    }    }
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1newNaUnPw     jEnv->ReleaseStringUTFChars (jResultClass, str);
   (JNIEnv *jEnv, jobject jThs, jint jNs, jstring jUn, jstring jPw)  
 {  
    _nameSpace *cNs = DEBUG_ConvertJavaToC (jint, _nameSpace*, jNs);  
    const char *un  = jEnv->GetStringUTFChars(jUn,NULL);  
    const char *pw  = jEnv->GetStringUTFChars(jPw,NULL);  
    jint        jCc = 0;  
  
    try {     str = jEnv->GetStringUTFChars (jRole, NULL);
       CIMClient *cc=new CIMClient();  
  
       cc->connect(cNs->hostName(),cNs->port(),un,pw);     String role (str);
  
       jCc = DEBUG_ConvertCToJava (CIMClient*, jint, cc);     jEnv->ReleaseStringUTFChars (jRole, str);
    }  
    Catch(jEnv);  
  
    jEnv->ReleaseStringUTFChars(jUn,un);     str = jEnv->GetStringUTFChars (jResultRole, NULL);
    jEnv->ReleaseStringUTFChars(jPw,pw);  
  
    return jCc;     String resultRole (str);
 }  
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1disconnect     jEnv->ReleaseStringUTFChars (jResultRole, str);
   (JNIEnv *jEnv, jobject jThs, jint jCc)  
 {  
    CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);  
  
    try {    try {
       cCc->disconnect();        Array<CIMObject>    enm     = ch->associators (ctx,
    }                                                       cop->getNameSpace (),
    Catch(jEnv);                                                       *cop,
 }                                                       assocClass,
                                                        resultClass,
                                                        role,
                                                        resultRole,
                                                        (Boolean)includeQualifiers,
                                                        (Boolean)includeClassOrigin,
                                                        pl);
         Array<CIMInstance> *enmInst = new Array<CIMInstance> ();
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1getClass        for (int i = 0, m = enm.size (); i < m; i++)
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jboolean lo,  
          jboolean iq, jboolean ic, jobjectArray jPl)  
 { {
    CIMClient       *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);           enmInst->append (CIMInstance (enm[i]));
    CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);        }
    CIMPropertyList  pl=getList(jEnv,jPl);  
  
    try {        return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, enmInst);
       checkNs(cop,jNs);  
       CIMClass cls=cCc->getClass(cop->getNameSpace(),cop->getClassName(),(Boolean)lo,  
                 (Boolean)iq,(Boolean)ic,pl);  
       return DEBUG_ConvertCToJava (CIMClass*, jint, new CIMClass(cls));  
    }    }
    Catch(jEnv);    Catch(jEnv);
  
    return 0;    return 0;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteClass  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1referenceNames
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop)    (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop,
      jstring jAssocClass, jstring jRole)
 { {
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
      OperationContext  ctx;
      const char       *str = jEnv->GetStringUTFChars (jAssocClass, NULL);
      CIMName           assocClass;
  
    try {     if (  str
       checkNs(cop,jNs);        && *str
       cCc->deleteClass(cop->getNameSpace(),cop->getClassName());        )
    }     {
    Catch(jEnv);        if (CIMName::legal (str))
         {
            assocClass = str;
 } }
         else
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1createClass  
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, int jCl)  
 { {
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);           jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);                                         JMPIjvm::jv.CIMExceptionNewISt,
    CIMClass      *cl  = DEBUG_ConvertJavaToC (jint, CIMClass*, jCl);                                         (jint)4, // CIM_ERR_INVALID_PARAMETER
                                          jEnv->NewStringUTF ("Invalid association class name"));
  
    try {           jEnv->Throw ((jthrowable)ev);
       cCc->createClass(cop->getNameSpace(),*cl);  
            return 0;
    }    }
    Catch(jEnv);  
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setClass     jEnv->ReleaseStringUTFChars (jAssocClass, str);
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jint jCl)  
 {  
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);  
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    CIMClass      *cl  = DEBUG_ConvertJavaToC (jint, CIMClass*, jCl);  
  
    try {     str = jEnv->GetStringUTFChars (jRole, NULL);
      checkNs(cop,jNs);  
      cCc->modifyClass(cop->getNameSpace(),*cl);  
    }  
    Catch(jEnv);  
 }  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateClasses     String role (str);
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, int jCop, jboolean deep, jboolean lo, jboolean iq, jboolean ic)  
 {     jEnv->ReleaseStringUTFChars (jRole, str);
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);  
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
  
    try {    try {
       checkNs(cop,jNs);        Array<CIMObjectPath> enm = ch->referenceNames (ctx,
       Array<CIMClass> enm=cCc->enumerateClasses(                                                       cop->getNameSpace (),
          cop->getNameSpace(),cop->getClassName(),(Boolean)deep,(Boolean)lo,(Boolean)iq,(Boolean)ic);                                                       *cop,
       return DEBUG_ConvertCToJava (Array<CIMClass>*, jint, new Array<CIMClass>(enm));                                                       assocClass,
                                                        role);
   
         return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));
    }    }
    Catch(jEnv);    Catch(jEnv);
  
    return 0;    return 0;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateClassNames  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1references
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jboolean deep)    (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop,
      jstring jAssocClass, jstring jRole,
      jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)
 { {
    CIMClient        *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
    CIMNamespaceName  ns  = cop->getNameSpace();     OperationContext  ctx;
      CIMPropertyList   pl  = getList (jEnv, jPl);
      const char       *str = jEnv->GetStringUTFChars (jAssocClass, NULL);
      CIMName           assocClass;
  
    try {     if (  str
       checkNs(cop,jNs);        && *str
       Array<CIMName> enm=cCc->enumerateClassNames(ns,cop->getClassName(),(Boolean)deep);        )
       Array<CIMObjectPath> *enmop=new Array<CIMObjectPath>();     {
       for (int i=0,m=enm.size(); i<m; i++) {        if (CIMName::legal (str))
          enmop->append(CIMObjectPath(String::EMPTY,ns,enm[i]));        {
       }           assocClass = str;
       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, enmop);  
    }    }
    Catch(jEnv);        else
         {
            jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
                                          JMPIjvm::jv.CIMExceptionNewISt,
                                          (jint)4, // CIM_ERR_INVALID_PARAMETER
                                          jEnv->NewStringUTF ("Invalid association class name"));
   
            jEnv->Throw ((jthrowable)ev);
  
    return 0;    return 0;
 } }
      }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateQualifiers     jEnv->ReleaseStringUTFChars (jAssocClass, str);
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, int jCop)  
 {  
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);  
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
   
    try {  
       checkNs(cop,jNs);  
   
       Array<CIMQualifierDecl> enm=cCc->enumerateQualifiers(cop->getNameSpace());  
  
       return DEBUG_ConvertCToJava (Array<CIMQualifierDecl>*, jint, new Array<CIMQualifierDecl>(enm));     str = jEnv->GetStringUTFChars (jRole, NULL);
    }  
    Catch(jEnv);  
  
    return 0;     String role (str);
 }  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1getInstance     jEnv->ReleaseStringUTFChars (jRole, str);
   (JNIEnv *jEnv, jobject jThs, jint jCc, int jNs, int jCop, jboolean lo,  
          jboolean iq, jboolean ic, jobjectArray jPl)  
 {  
    CIMClient        *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);  
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    CIMPropertyList   pl  = getList(jEnv,jPl);  
  
    try {    try {
       checkNs(cop,jNs);        Array<CIMObject>    enm     = ch->references (ctx,
                                                       cop->getNameSpace (),
       CIMInstance inst=cCc->getInstance(cop->getNameSpace(),  
                                         *cop,                                         *cop,
                                         (Boolean)lo,                                                      assocClass,
                                         (Boolean)iq,                                                      role,
                                         (Boolean)ic,                                                      (Boolean)includeQualifiers,
                                                       (Boolean)includeClassOrigin,
                                         pl);                                         pl);
         Array<CIMInstance> *enmInst = new Array<CIMInstance> ();
   
         for (int i = 0, m = enm.size (); i < m; i++)
         {
            enmInst->append (CIMInstance (enm[i]));
         }
  
       return DEBUG_ConvertCToJava (CIMInstance*, jint, new CIMInstance(inst));        return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, enmInst);
    }    }
    Catch(jEnv);    Catch(jEnv);
  
    return 0;    return 0;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteInstance  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1invokeMethod
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop)    (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jstring jMn, jobject jIn, jobject jOut)
 { {
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);     JMPIjvm::cacheIDs (jEnv);
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
  
    try {     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
       checkNs(cop,jNs);     CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
       cCc->deleteInstance(cop->getNameSpace(),*cop);     OperationContext  ctx;
    }     const char       *str = jEnv->GetStringUTFChars (jMn,NULL);
    Catch(jEnv);     CIMName           method (str);
 }  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1createInstance     jEnv->ReleaseStringUTFChars (jMn,str);
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, int jCi)  
 {  
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);  
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    CIMInstance   *ci  = DEBUG_ConvertJavaToC (jint, CIMInstance*, jCi);  
  
    try {     Array<CIMParamValue> in;
       checkNs(cop,jNs);     Array<CIMParamValue> out;
       ci->setPath(*cop);  
       CIMObjectPath obj=cCc->createInstance(cop->getNameSpace(),*ci);  
       return DEBUG_ConvertCToJava (CIMObjectPath*, jint, new CIMObjectPath(obj));  
    }  
    Catch(jEnv);  
   
    return 0;  
 }  
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1modifyInstance     for (int i = 0, m = jEnv->CallIntMethod (jIn,JMPIjvm::jv.VectorSize); i < m; i++)
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jint jCi,  
          jboolean iq, jobjectArray jPl)  
 { {
    CIMClient       *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);         JMPIjvm::checkException (jEnv);
    CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    CIMInstance     *ci  = DEBUG_ConvertJavaToC (jint, CIMInstance*, jCi);  
    CIMPropertyList  pl  = getList(jEnv,jPl);  
  
    try {         jobject jProp = jEnv->CallObjectMethod (jIn,JMPIjvm::jv.VectorElementAt,i);
       checkNs(cop,jNs);  
       ci->setPath(*cop);  
       cCc->modifyInstance(cop->getNameSpace(),*ci,(Boolean)iq,pl);  
    }  
    Catch(jEnv);  
 }  
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateInstances         JMPIjvm::checkException (jEnv);
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jboolean deep, jboolean lo,  
          jboolean iq, jboolean ic, jobjectArray jPl)  
 {  
    CIMClient       *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);  
    CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    CIMPropertyList  pl  = getList(jEnv,jPl);  
  
    try {         jlong        jp = jEnv->CallLongMethod (jProp,JMPIjvm::jv.CIMPropertyCInst);
       checkNs(cop,jNs);         CIMProperty *p  = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jp);
       CIMPropertyList props;  
       Array<CIMInstance> enm=cCc->enumerateInstances(  
          cop->getNameSpace(),cop->getClassName(),(Boolean)deep,(Boolean)lo,(Boolean)iq,(Boolean)ic,pl);  
       return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, new Array<CIMInstance>(enm));  
    }  
    Catch(jEnv);  
  
    return 0;         JMPIjvm::checkException (jEnv);
   
          in.append (CIMParamValue (p->getName ().getString (),p->getValue ()));
 } }
      try {
         CIMValue *val = new CIMValue (ch->invokeMethod (ctx,
                                                         cop->getNameSpace (),
                                                         *cop,
                                                         method,
                                                         in,
                                                         out));
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateInstanceNames        for (int i = 0,m = out.size (); i<m; i++)
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jboolean deep)  
 { {
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);           const CIMParamValue &parm = out[i];
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);           const CIMValue       v    = parm.getValue ();
            CIMProperty         *p    = new CIMProperty (parm.getParameterName (),
                                                         v,
                                                         v.getArraySize ());
            jlong                jp   = DEBUG_ConvertCToJava (CIMProperty*, jlong, p);
            jobject              prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,
                                                         JMPIjvm::jv.CIMPropertyNewJ,
                                                         jp);
  
    try {           jEnv->CallVoidMethod (jOut, JMPIjvm::jv.VectorAddElement, prop);
       checkNs(cop,jNs);        }
       Array<CIMObjectPath> enm=cCc->enumerateInstanceNames(        return DEBUG_ConvertCToJava (CIMValue*, jlong, val);
          cop->getNameSpace(),cop->getClassName()); //,(Boolean)deep);  
       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, new Array<CIMObjectPath>(enm));  
    }    }
    Catch(jEnv);    Catch(jEnv);
  
    return 0;    return 0;
 } }
  
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1invokeMethod24
     (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jstring jMn,
           jobjectArray jIn, jobjectArray jOut)
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1getQualifier  
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop)  
 { {
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);     JMPIjvm::cacheIDs (jEnv);
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
  
    try {     CIMOMHandle      *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
       checkNs(cop,jNs);     CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
       CIMQualifierDecl *val=new CIMQualifierDecl(cCc->getQualifier(cop->getNameSpace(),cop->getClassName()));     OperationContext  ctx;
       return DEBUG_ConvertCToJava (CIMQualifierDecl*, jint, val);     const char       *str = jEnv->GetStringUTFChars (jMn, NULL);
    }     CIMName           method (str);
    Catch(jEnv);  
  
    return 0;     jEnv->ReleaseStringUTFChars (jMn, str);
 }  
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteQualifier     Array<CIMParamValue> in;
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop)     Array<CIMParamValue> out;
   
      if (jIn)
 { {
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);        for (int i = 0, m = jEnv->GetArrayLength (jIn); i < m; i++)
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);        {
             JMPIjvm::checkException (jEnv);
  
    try {            jobject jArg = jEnv->GetObjectArrayElement (jIn,i);
       checkNs(cop,jNs);  
       cCc->deleteQualifier(cop->getNameSpace(),cop->getClassName());            JMPIjvm::checkException (jEnv);
   
             jlong          jp = jEnv->CallLongMethod (jArg,JMPIjvm::jv.CIMArgumentCInst);
             CIMParamValue *p  = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jp);
   
             JMPIjvm::checkException (jEnv);
   
             in.append (*p);
    }    }
    Catch(jEnv);  
 } }
      try {
         CIMValue *val = new CIMValue (ch->invokeMethod (ctx,
                                                         cop->getNameSpace (),
                                                         *cop,
                                                         method,
                                                         in,
                                                         out));
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setQualifier        if (jOut)
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jint jQ)  
 { {
    CIMClient        *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);           for (int i = 0, m = out.size (), o = jEnv->GetArrayLength (jOut); i < m && i< o; i++)
    CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);           {
    CIMQualifierDecl *qt  = DEBUG_ConvertJavaToC (jint, CIMQualifierDecl*, jQ);              CIMParamValue *parm  = new CIMParamValue (out[i]);
               jlong          jParm = DEBUG_ConvertCToJava (CIMParamValue*, jlong, parm);
  
    try {              jEnv->SetObjectArrayElement (jOut,i,
       checkNs(cop,jNs);                                          jEnv->NewObject (JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewJ,jParm));
       cCc->setQualifier(cop->getNameSpace(),*qt);           }
         }
         return DEBUG_ConvertCToJava (CIMValue*, jlong, val);
    }    }
    Catch(jEnv);    Catch(jEnv);
   
      return 0;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1getProperty  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jstring jPn)     (JNIEnv *jEnv, jobject jThs, jlong jCh, jstring jName, jstring jNs, jlong jInd)
 { {
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);     CIMOMHandle *ch  = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);     CIMInstance *ind = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInd);
    const char    *str = jEnv->GetStringUTFChars(jPn,NULL);     const char  *str = jEnv->GetStringUTFChars (jName, NULL);
    CIMName        pName(str);     String       name (str);
    jint           jCv = 0;  
  
    try {     jEnv->ReleaseStringUTFChars (jName, str);
       checkNs(cop,jNs);  
  
       CIMValue *val = new CIMValue(cCc->getProperty(cop->getNameSpace(),*cop,pName));     str = jEnv->GetStringUTFChars (jNs, NULL);
  
       jCv = DEBUG_ConvertCToJava (CIMValue*, jint, val);     String ns (str);
    }  
    Catch(jEnv);  
  
    jEnv->ReleaseStringUTFChars(jPn,str);     jEnv->ReleaseStringUTFChars (jNs, str);
  
    return jCv;     CIMObjectPath ref (ind->getPath ());
 }  
      ref.setNameSpace (ns);
      DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () ref = "<<ref.toString ()<<PEGASUS_STD (endl));
      DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () ind = "<<ind->getPath ().toString ()<<PEGASUS_STD (endl));
      ind->setPath (ref);
      DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () ind = "<<ind->getPath ().toString ()<<PEGASUS_STD (endl));
   
      JMPIProviderManager::indProvRecord   *prec        = NULL;
      String                                sPathString = ind->getPath ().toString ();
      OperationContext                     *context     = NULL;
      bool                                  fResult     = false;
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setProperty  
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jstring jPn, jint jV)  
 { {
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);        AutoMutex lock (JMPIProviderManager::mutexProvTab);
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    CIMValue      *val = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);  
    const char    *str = jEnv->GetStringUTFChars(jPn,NULL);  
    CIMName        pName(str);  
  
    try {        fResult = JMPIProviderManager::provTab.lookup (name, prec);
       checkNs(cop,jNs);  
       cCc->setProperty(cop->getNameSpace(),*cop,pName,*val);        DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () fResult = "<<fResult<<", name = "<<name<<PEGASUS_STD (endl));
    }    }
    Catch(jEnv);  
  
    jEnv->ReleaseStringUTFChars(jPn,str);     if (fResult)
      {
         if (prec->enabled)
         {
            try
            {
               prec->handler->deliver (*prec->ctx, *ind);
            }
            Catch (jEnv);
         }
      }
      else
      {
         DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () provider name \""<<name<<"\" not found"<<PEGASUS_STD (endl));
      }
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1finalize
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jstring jMn, jobject jIn, jobject jOut)     (JNIEnv *jEnv, jobject jThs, jlong jCh)
 { {
    JMPIjvm::cacheIDs(jEnv);     CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
  
    CIMClient            *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);     delete ch;
    CIMObjectPath        *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    const char           *str = jEnv->GetStringUTFChars(jMn,NULL);  
    CIMName               method(str);  
    jint                  jCv = 0;  
    Array<CIMParamValue>  in;  
    Array<CIMParamValue>  out;  
  
    for (int i=0,m=jEnv->CallIntMethod(jIn,JMPIjvm::jv.VectorSize); i<m; i++) {     DEBUG_ConvertCleanup (jlong, jCh);
        JMPIjvm::checkException(jEnv);  }
  
        jobject jProp=jEnv->CallObjectMethod(jIn,JMPIjvm::jv.VectorElementAt,i);  
        JMPIjvm::checkException(jEnv);  
  
        jint         jp = jEnv->CallIntMethod(jProp,JMPIjvm::jv.CIMPropertyCInst);  // -------------------------------------
        CIMProperty *p  = DEBUG_ConvertJavaToC (jint, CIMProperty*, jp);  // ---
   // -            CIMProperty
   // ---
   // -------------------------------------
  
        JMPIjvm::checkException(jEnv);  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMProperty__1getValue
         (JNIEnv *jEnv, jobject jThs, jlong jP)
   {
      CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
      CIMValue    *cv = new CIMValue (cp->getValue ());
  
        in.append(CIMParamValue(p->getName().getString(),p->getValue()));     return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
    }    }
  
    try {  JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMProperty__1getName
       checkNs(cop,jNs);        (JNIEnv *jEnv, jobject jThs, jlong jP)
   {
      CIMProperty  *cp  = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
      const String &n   = cp->getName ().getString ();
      jstring       str = jEnv->NewStringUTF (n.getCString ());
  
       CIMValue *val = new CIMValue(cCc->invokeMethod(cop->getNameSpace(),*cop,method,in,out));     return str;
   }
  
       for (int i=0,m=out.size(); i<m; i++) {  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1setName
          const CIMParamValue &parm = out[i];        (JNIEnv *jEnv, jobject jThs, jlong jP, jstring jN)
          const CIMValue       v    = parm.getValue();  {
          CIMProperty         *p    = new CIMProperty(parm.getParameterName(),v,v.getArraySize());     CIMProperty *cp  = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
          jint                 jp   = DEBUG_ConvertCToJava (CIMProperty*, jint, p);     const char  *str = jEnv->GetStringUTFChars (jN,NULL);
          jobject              prop = jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jp);  
  
          jEnv->CallVoidMethod(jOut,JMPIjvm::jv.VectorAddElement,prop);     cp->setName (CIMName (str));
   
      jEnv->ReleaseStringUTFChars (jN,str);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMProperty__1property
         (JNIEnv *jEnv, jobject jThs, jstring jN, jlong jV)
   {
      CIMValue    *cv  = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
      const char  *str = jEnv->GetStringUTFChars (jN, NULL);
      CIMProperty *cp  = 0;
      jlong        jCp = 0;
   
      try {
         if (cv->getType ()!= CIMTYPE_REFERENCE)
         {
            cp = new CIMProperty (String (str),*cv);
         }
         else
         {
            if (!cv->isArray ())
            {
               CIMObjectPath cop;
   
               cv->get (cop);
               cp = new CIMProperty (String (str),*cv,0, cop.getClassName ());
            }
            else
            {
               throwCIMException (jEnv,"+++ unsupported type in CIMProperty.property");
            }
       }       }
  
       jCv = DEBUG_ConvertCToJava (CIMValue*, jint, val);        jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
    }    }
    Catch(jEnv);    Catch(jEnv);
  
    jEnv->ReleaseStringUTFChars(jMn,str);     jEnv->ReleaseStringUTFChars (jN, str);
  
    return jCv;     return jCp;
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod24  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMProperty__1new
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jstring jMn,        (JNIEnv *jEnv, jobject jThs, jstring jN, jlong jV)
         jobjectArray jIn, jobjectArray jOut)  
 { {
    JMPIjvm::cacheIDs(jEnv);     CIMProperty *p = new CIMProperty (CIMName (),CIMValue ());
  
    CIMClient            *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);     return DEBUG_ConvertCToJava (CIMProperty*, jlong, p);
    CIMObjectPath        *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  }
    const char           *str = jEnv->GetStringUTFChars(jMn,NULL);  
    CIMName               method(str);  
    jint                  jCv = 0;  
    Array<CIMParamValue> in;  
    Array<CIMParamValue> out;  
  
    for (int i=0,m=jEnv->GetArrayLength(jIn); i<m; i++) {  JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMProperty__1isReference
        JMPIjvm::checkException(jEnv);        (JNIEnv *jEnv, jobject jThs, jlong jP)
   {
      CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
  
        jobject jArg=jEnv->GetObjectArrayElement(jIn,i);     return (jboolean) (cp->getType () == CIMTYPE_REFERENCE);
        JMPIjvm::checkException(jEnv);  }
  
        jint           jp = jEnv->CallIntMethod(jArg,JMPIjvm::jv.CIMArgumentCInst);  JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMProperty__1getRefClassName
        CIMParamValue *p  = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jp);       (JNIEnv *jEnv, jobject jThs, jlong jP)
   {
      CIMProperty   *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
      const String  &n  = cp->getReferenceClassName ().getString ();
  
        JMPIjvm::checkException(jEnv);     jstring str = jEnv->NewStringUTF (n.getCString ());
  
        in.append(*p);     return str;
    }    }
    try {  
       checkNs(cop,jNs);  
       CIMValue *val=new CIMValue(cCc->invokeMethod(cop->getNameSpace(),*cop,method,in,out));  
  
       for (int i=0,m=out.size(),o=jEnv->GetArrayLength(jOut); i<m && i<o; i++) {  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMProperty__1getType
          CIMParamValue *parm  = new CIMParamValue (out[i]);        (JNIEnv *jEnv, jobject jThs, jlong jP)
          jint           jParm = DEBUG_ConvertCToJava (CIMParamValue*, jint, parm);  {
      CIMProperty  *cp        = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
      String        ref       = cp->getReferenceClassName ().getString ();
      bool           fSuccess = false;
      int            iJType   = 0;
      _dataType     *type     = 0;
  
          jEnv->SetObjectArrayElement(jOut,     iJType = _dataType::convertCTypeToJavaType (cp->getType (), &fSuccess);
                                      i,  
                                      jEnv->NewObject(JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewI,jParm));     if (fSuccess)
      {
         type = new _dataType (iJType,
                               cp->getArraySize (),
                               ref.size () ? true : false,
                               false,
                               cp->isArray (),
                               ref,
                               true);
       }       }
       jCv = DEBUG_ConvertCToJava (CIMValue*, jint, val);  
      return DEBUG_ConvertCToJava (_dataType*, jlong, type);
    }    }
    Catch(jEnv);  
  
    jEnv->ReleaseStringUTFChars(jMn,str);  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMProperty__1setType
         (JNIEnv *jEnv, jobject jThs, jlong jP, jlong jDt)
   {
      CIMProperty  *cp       = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
      _dataType    *dt       = DEBUG_ConvertJavaToC (jlong, _dataType*, jDt);
      CIMValue      val;
      bool          fSuccess = false;
      CIMType       cType    = CIMTYPE_BOOLEAN;
   
      cType = _dataType::convertJavaTypeToCType (dt->_type, &fSuccess);
   
      if (fSuccess)
      {
         val.setNullValue (cType, dt->_array);
   
         CIMProperty *np = new CIMProperty (cp->getName (), val);
   
         delete cp;
   
         DEBUG_ConvertCleanup (jlong, jP);
   
         return DEBUG_ConvertCToJava (CIMProperty*, jlong, np);
      }
      else
      {
         return DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
      }
   }
   
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1setValue
         (JNIEnv *jEnv, jobject jThs, jlong jP,jlong jV)
   {
      CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
      CIMValue    *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
   
      cp->setValue (*cv);
   }
   
   JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMProperty__1isArray
         (JNIEnv *jEnv, jobject jThs, jlong jP)
   {
      CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
   
      return (jboolean)cp->isArray ();
   }
   
   JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMProperty__1getIdentifier
         (JNIEnv *jEnv, jobject jThs, jlong jP)
   {
      CIMProperty  *cp  = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
      const String &n   = cp->getName ().getString ();
      jstring       str = jEnv->NewStringUTF (n.getCString ());
   
      return str;
   }
   
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1addValue
         (JNIEnv *jEnv, jobject jThs, jlong jP, jlong jV)
   {
      CIMProperty *cp   = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
      CIMValue    *cvin = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
      CIMValue     cv   = cp->getValue ();
   
      if (cvin->isNull ())
         throwCIMException (jEnv,"+++ null cvin value ");
      if (!cv.isArray ())
         throwCIMException (jEnv,"+++ not an array ");
      if (cvin->getType ()!= cv.getType ())
         throwCIMException (jEnv,"+++ type mismatch ");
   
      CIMType type = cv.getType ();
   
      switch (type)
      {
      case CIMTYPE_BOOLEAN:
      {
            Boolean bo;
            cvin->get (bo);
            Array<Boolean> boarr;
            cv.get (boarr);
            boarr.append (bo);
            cv.set (boarr);
            break;
      }
      case CIMTYPE_UINT8:
      {
            Uint8 u8;
            cvin->get (u8);
            Array<Uint8> u8arr;
            cv.get (u8arr);
            u8arr.append (u8);
            cv.set (u8arr);
            break;
      }
      case CIMTYPE_SINT8:
      {
            Sint8 s8;
            cvin->get (s8);
            Array<Sint8> s8arr;
            cv.get (s8arr);
            s8arr.append (s8);
            cv.set (s8arr);
            break;
      }
      case CIMTYPE_UINT16:
      {
            Uint16 u16;
            cvin->get (u16);
            Array<Uint16> u16arr;
            cv.get (u16arr);
            u16arr.append (u16);
            cv.set (u16arr);
            break;
      }
      case CIMTYPE_SINT16:
      {
            Sint16 s16;
            cvin->get (s16);
            Array<Sint16> s16arr;
            cv.get (s16arr);
            s16arr.append (s16);
            cv.set (s16arr);
            break;
      }
      case CIMTYPE_UINT32:
      {
            Uint32 u32;
            cvin->get (u32);
            Array<Uint32> u32arr;
            cv.get (u32arr);
            u32arr.append (u32);
            cv.set (u32arr);
            break;
      }
      case CIMTYPE_SINT32:
      {
            Sint32 s32;
            cvin->get (s32);
            Array<Sint32> s32arr;
            cv.get (s32arr);
            s32arr.append (s32);
            cv.set (s32arr);
            break;
      }
      case CIMTYPE_UINT64:
      {
            Uint64 u64;
            cvin->get (u64);
            Array<Uint64> u64arr;
            cv.get (u64arr);
            u64arr.append (u64);
            cv.set (u64arr);
            break;
      }
      case CIMTYPE_SINT64:
      {
            Sint64 s64;
            cvin->get (s64);
            Array<Sint64> s64arr;
            cv.get (s64arr);
            s64arr.append (s64);
            cv.set (s64arr);
            break;
      }
      case CIMTYPE_REAL32:
      {
            Real32 f;
            cvin->get (f);
            Array<Real32> farr;
            cv.get (farr);
            farr.append (f);
            cv.set (farr);
            break;
      }
      case CIMTYPE_REAL64:
      {
            Real64 d;
            cvin->get (d);
            Array<Real64> darr;
            cv.get (darr);
            darr.append (d);
            cv.set (darr);
            break;
      }
      case CIMTYPE_CHAR16:
      {
            Char16 c16;
            cvin->get (c16);
            Array<Char16> c16arr;
            cv.get (c16arr);
            c16arr.append (c16);
            cv.set (c16arr);
            break;
      }
      case CIMTYPE_STRING:
      {
            String str;
            cvin->get (str);
            Array<String> strarr;
            cv.get (strarr);
            strarr.append (str);
            cv.set (strarr);
            break;
      }
      case CIMTYPE_DATETIME:
      {
            CIMDateTime dt;
            cvin->get (dt);
            Array<CIMDateTime> dtarr;
            cv.get (dtarr);
            dtarr.append (dt);
            cv.set (dtarr);
            break;
      }
      case CIMTYPE_REFERENCE:
      {
            CIMObjectPath ref;
            cvin->get (ref);
            Array<CIMObjectPath> refarr;
            cv.get (refarr);
            refarr.append (ref);
            cv.set (refarr);
            break;
      }
      case CIMTYPE_OBJECT:
      {
            CIMObject obj;
            cvin->get (obj);
            Array<CIMObject> objarr;
            cv.get (objarr);
            objarr.append (obj);
            cv.set (objarr);
            break;
      }
      default:
      {
         throwCIMException (jEnv,"+++ unsupported type ");
      }
      }
   
      cp->setValue (cv);
   }
   
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1addQualifier
         (JNIEnv *jEnv, jobject jThs, jlong jP, jlong jQ)
   {
      CIMProperty  *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
      CIMQualifier *cq = DEBUG_ConvertJavaToC (jlong, CIMQualifier*, jQ);
   
      cp->addQualifier (*cq);
   }
   
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1finalize
         (JNIEnv *jEnv, jobject jThs, jlong jP)
   {
      CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
   
      delete cp;
   
      DEBUG_ConvertCleanup (jlong, jP);
   }
   
   /*
    * Class:     org_pegasus_jmpi_CIMProperty
    * Method:    _findQualifier
    * Signature: (Ljava/lang/String;)I
    */
   JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMProperty__1findQualifier
     (JNIEnv *jEnv, jobject jThs, jlong jP, jstring jQualifier)
   {
      CIMProperty  *cp    = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
      const char   *str   = jEnv->GetStringUTFChars (jQualifier, NULL);
      Uint32        index = PEG_NOT_FOUND;
   
      try
      {
         index = cp->findQualifier (CIMName (str));
   
         jEnv->ReleaseStringUTFChars (jQualifier, str);
      }
      Catch (jEnv);
   
      return index;
   }
   
   /*
    * Class:     org_pegasus_jmpi_CIMProperty
    * Method:    _getQualifier
    * Signature: (I)I
    */
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMProperty__1getQualifier
     (JNIEnv *jEnv, jobject jThs, jlong jP, jint jIndex)
   {
      CIMProperty  *cp        = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
      CIMQualifier *cq        = NULL;
      CIMQualifier  qualifier;
   
      try
      {
         qualifier = cp->getQualifier ((Uint32)jIndex);
         cq = new CIMQualifier (qualifier);
      }
      Catch (jEnv);
   
      return DEBUG_ConvertCToJava (CIMQualifier *, jlong, cq);
   }
   
   
   // -------------------------------------
   // ---
   // -     CIMQualifier
   // ---
   // -------------------------------------
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMQualifier__1new
         (JNIEnv *jEnv, jobject jThs, jstring jN)
   {
      const char   *str  = jEnv->GetStringUTFChars (jN,NULL);
      CIMQualifier *qual = new CIMQualifier (CIMName (str),CIMValue ());
   
      jEnv->ReleaseStringUTFChars (jN,str);
   
      return DEBUG_ConvertCToJava (CIMQualifier*, jlong, qual);
   }
   
   JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMQualifier__1getName
         (JNIEnv *jEnv, jobject jThs, jlong jQ)
   {
      CIMQualifier *cq  = DEBUG_ConvertJavaToC (jlong, CIMQualifier*, jQ);
      const String &n   = cq->getName ().getString ();
      jstring       str = jEnv->NewStringUTF (n.getCString ());
   
      return str;
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMQualifier__1getValue
         (JNIEnv *jEnv, jobject jThs, jlong jQ)
   {
      CIMQualifier *cq = DEBUG_ConvertJavaToC (jlong, CIMQualifier*, jQ);
      CIMValue     *cv = new CIMValue (cq->getValue ());
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifier__1setValue
         (JNIEnv *jEnv, jobject jThs, jlong jQ,jlong jV)
   {
      CIMQualifier *cq = DEBUG_ConvertJavaToC (jlong, CIMQualifier*, jQ);
      CIMValue     *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
   
      cq->setValue (*cv);
   }
   
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifier__1finalize
         (JNIEnv *jEnv, jobject jThs, jlong jQ)
   {
      CIMQualifier *cq = DEBUG_ConvertJavaToC (jlong, CIMQualifier*, jQ);
   
      delete cq;
   
      DEBUG_ConvertCleanup (jlong, jQ);
   }
   
   
   // -------------------------------------
   // ---
   // -     CIMQualifierType
   // ---
   // -------------------------------------
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1new
         (JNIEnv *jEnv, jobject jThs)
   {
      CIMQualifierDecl *qual = new CIMQualifierDecl ();
   
      return DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, qual);
   }
   
   JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1getName
         (JNIEnv *jEnv, jobject jThs, jlong jQ)
   {
      CIMQualifierDecl *qt  = DEBUG_ConvertJavaToC (jlong, CIMQualifierDecl*, jQ);
      const String     &n   = qt->getName ().getString ();
      jstring           str = jEnv->NewStringUTF (n.getCString ());
   
      return str;
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1setName
         (JNIEnv *jEnv, jobject jThs, jlong jQ, jstring jN)
   {
      CIMQualifierDecl *qt   = DEBUG_ConvertJavaToC (jlong, CIMQualifierDecl*, jQ);
      const char       *str  = jEnv->GetStringUTFChars (jN, NULL);
      jlong             jret = 0;
   
      if (qt->isUninitialized ())
      {
         CIMQualifierDecl *nqt = new CIMQualifierDecl (CIMName (str), CIMValue (), CIMScope ());
   
         jret = DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, nqt);
      }
      else
      {
         qt->setName (CIMName (str));
   
         CIMQualifierDecl *nqt = new CIMQualifierDecl (*qt);
   
         jret = DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, nqt);
      }
   
      jEnv->ReleaseStringUTFChars (jN, str);
   
      return jret;
   }
   
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1setValue
         (JNIEnv *jEnv, jobject jThs, jlong jQ,jlong jV)
   {
      CIMQualifierDecl *qt = DEBUG_ConvertJavaToC (jlong, CIMQualifierDecl*, jQ);
      CIMValue         *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
   
      qt->setValue (*cv);
   }
   
   JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1finalize
         (JNIEnv *jEnv, jobject jThs, jlong jQ)
   {
      CIMQualifierDecl *qt = DEBUG_ConvertJavaToC (jlong, CIMQualifierDecl*, jQ);
   
      delete qt;
   
      DEBUG_ConvertCleanup (jlong, jQ);
   }
   
   // -------------------------------------
   // ---
   // -            CIMValue
   // ---
   // -------------------------------------
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1byte
         (JNIEnv *jEnv, jobject jThs, jbyte jb, jboolean notSigned)
   {
      CIMValue *cv = NULL;
   
      if (notSigned)
         cv = new CIMValue ((Uint8)jb);
      else
         cv = new CIMValue ((Sint8)jb);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1short
         (JNIEnv *jEnv, jobject jThs, jshort js, jboolean notSigned)
   {
      CIMValue *cv = NULL;
   
      if (notSigned)
         cv = new CIMValue ((Uint16)js);
      else
         cv = new CIMValue( (Sint16)js);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1makeInt
         (JNIEnv *jEnv, jobject jThs, jlong ji, jboolean notSigned)
   {
      CIMValue *cv = NULL;
   
      if (notSigned)
         cv = new CIMValue ((Uint32)ji);
      else
         cv = new CIMValue ((Sint32)ji);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1long
         (JNIEnv *jEnv, jobject jThs, jlong jl, jboolean notSigned)
   {
      CIMValue *cv = NULL;
   
      if (notSigned)
         cv = new CIMValue ((Uint64)jl);
      else
         cv = new CIMValue ((Sint64)jl);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1string
         (JNIEnv *jEnv, jobject jThs, jstring jS)
   {
      const char *str = jEnv->GetStringUTFChars (jS,NULL);
      CIMValue   *cv  = new CIMValue (String (str));
   
      jEnv->ReleaseStringUTFChars (jS,str);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1boolean
         (JNIEnv *jEnv, jobject jThs, jboolean jB)
   {
      CIMValue *cv = new CIMValue ((Boolean)jB);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1float
         (JNIEnv *jEnv, jobject jThs, jfloat jF)
   {
      CIMValue *cv = new CIMValue (jF);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1double
         (JNIEnv *jEnv, jobject jThs, jdouble jD)
   {
      CIMValue *cv = new CIMValue (jD);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1cop
         (JNIEnv *jEnv, jobject jThs, jlong jR)
   {
      CIMObjectPath *ref = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jR);
      CIMValue      *cv  = new CIMValue (*ref);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1datetime
         (JNIEnv *jEnv, jobject jThs, jlong jDT)
   {
      CIMDateTime *dt = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jDT);
      CIMValue    *cv = new CIMValue (*dt);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1char16
         (JNIEnv *jEnv, jobject jThs, jchar jChar16)
   {
      Char16       c16 (jChar16);
      CIMValue    *cv  = new CIMValue (c16);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1object
         (JNIEnv *jEnv, jobject jThs, jlong jO)
   {
      CIMObject *co = DEBUG_ConvertJavaToC (jlong, CIMObject*, jO);
      CIMValue  *cv = new CIMValue (*co);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1byteArray
         (JNIEnv *jEnv, jobject jThs, jshortArray jshortA, jboolean notSigned)
   {
      CIMValue *cv  = NULL;
      jboolean  b;
      jsize     len = jEnv->GetArrayLength (jshortA);
      jshort   *jsA = jEnv->GetShortArrayElements (jshortA, &b);
   
      if (notSigned)
      {
         Array<Uint8> u8;
   
         for (jsize i = 0; i < len; i++)
            u8.append ((Uint8)jsA[i]);
   
         cv = new CIMValue (u8);
      }
      else
      {
         Array<Sint8> s8;
   
         for (jsize i = 0; i < len; i++)
            s8.append ((Sint8)jsA[i]);
   
         cv = new CIMValue (s8);
      }
   
      jEnv->ReleaseShortArrayElements (jshortA, jsA, len);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1shortArray
         (JNIEnv *jEnv, jobject jThs, jintArray jintA, jboolean notSigned)
   {
      CIMValue *cv  = NULL;
      jboolean  b;
      jsize     len = jEnv->GetArrayLength (jintA);
      jint     *jiA = jEnv->GetIntArrayElements (jintA, &b);
   
      if (notSigned)
      {
         Array<Uint16> u16;
   
         for (jsize i = 0; i < len; i++)
            u16.append ((Uint16)jiA[i]);
   
         cv = new CIMValue (u16);
      }
      else
      {
         Array<Sint16> s16;
   
         for (jsize i = 0; i < len; i++)
            s16.append ((Sint16)jiA[i]);
   
         cv = new CIMValue (s16);
      }
   
      jEnv->ReleaseIntArrayElements (jintA, jiA, len);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1intArray
         (JNIEnv *jEnv, jobject jThs, jlongArray jlongA, jboolean notSigned)
   {
      CIMValue *cv  = NULL;
      jboolean  b;
      jsize     len = jEnv->GetArrayLength (jlongA);
      jlong    *jlA = jEnv->GetLongArrayElements (jlongA, &b);
   
      if (notSigned)
      {
         Array<Uint32> u32;
   
         for (jsize i = 0; i < len; i++)
            u32.append ((Uint32)jlA[i]);
   
         cv = new CIMValue (u32);
      }
      else
      {
         Array<Sint32> s32;
   
         for (jsize i = 0; i < len; i++)
            s32.append ((Sint32)jlA[i]);
   
         cv = new CIMValue (s32);
      }
   
      jEnv->ReleaseLongArrayElements (jlongA, jlA, len);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1longArray
         (JNIEnv *jEnv, jobject jThs, jlongArray jlongA, jboolean notSigned)
   {
      CIMValue *cv  = NULL;
      jboolean  b;
      jsize     len = jEnv->GetArrayLength (jlongA);
      jlong    *jlA = jEnv->GetLongArrayElements (jlongA, &b);
   
      if (notSigned)
      {
         Array<Uint64> u64;
   
         for (jsize i = 0; i < len; i++)
            u64.append ((Uint64)jlA[i]);
   
         cv = new CIMValue (u64);
      }
      else
      {
         Array<Sint64> s64;
   
         for (jsize i = 0; i < len; i++)
            s64.append ((Sint64)jlA[i]);
   
         cv = new CIMValue (s64);
      }
   
      jEnv->ReleaseLongArrayElements (jlongA, jlA, len);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1stringArray
         (JNIEnv *jEnv, jobject jThs, jobjectArray jstringA)
   {
      CIMValue     *cv   = NULL;
      jsize         len  = jEnv->GetArrayLength (jstringA);
      Array<String> strA;
   
      for (jsize i = 0;i < len; i++)
      {
         jstring     jsA = (jstring)jEnv->GetObjectArrayElement (jstringA, i);
         const char *str = jEnv->GetStringUTFChars (jsA, NULL);
   
         strA.append (String (str));
   
         jEnv->ReleaseStringUTFChars (jsA, str);
      }
   
      cv = new CIMValue (strA);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1booleanArray
         (JNIEnv *jEnv, jobject jThs, jbooleanArray jboolA)
   {
      CIMValue       *cv  = NULL;
      jboolean        b;
      jsize           len = jEnv->GetArrayLength (jboolA);
      jboolean       *jbA = jEnv->GetBooleanArrayElements (jboolA, &b);
      Array<Boolean>  bA;
   
      for (jsize i = 0; i < len; i++)
         bA.append ((Boolean)jbA[i]);
   
      cv = new CIMValue (bA);
   
      jEnv->ReleaseBooleanArrayElements (jboolA, jbA, len);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1floatArray
     (JNIEnv *jEnv, jobject jThs, jfloatArray jfloatA)
   {
      CIMValue     *cv  = NULL;
      jboolean      b;
      jsize         len = jEnv->GetArrayLength (jfloatA);
      jfloat       *jfA = jEnv->GetFloatArrayElements (jfloatA, &b);
      Array<float>  fA;
   
      for (jsize i = 0; i< len; i++)
         fA.append ((float)jfA[i]);
   
      cv = new CIMValue (fA);
   
      jEnv->ReleaseFloatArrayElements (jfloatA, jfA, len);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1doubleArray
     (JNIEnv *jEnv, jobject jThs, jdoubleArray jdoubleA)
   {
      CIMValue      *cv  = NULL;
      jboolean       b;
      jsize          len = jEnv->GetArrayLength (jdoubleA);
      jdouble       *jdA = jEnv->GetDoubleArrayElements (jdoubleA, &b);
      Array<double>  dA;
   
      for (jsize i = 0; i < len; i++)
         dA.append ((double)jdA[i]);
   
      cv = new CIMValue (dA);
   
      jEnv->ReleaseDoubleArrayElements (jdoubleA, jdA, len);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1copArray
         (JNIEnv *jEnv, jobject jThs, jlongArray jlongA)
   {
      CIMValue             *cv  = NULL;
      jboolean              b;
      jsize                 len = jEnv->GetArrayLength (jlongA);
      jlong                *jiA = jEnv->GetLongArrayElements (jlongA, &b);
      Array<CIMObjectPath>  cA;
   
      for (jsize i = 0; i < len; i++)
      {
         CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jiA[i]);
         cA.append (*cop);
      }
   
      cv = new CIMValue (cA);
   
      jEnv->ReleaseLongArrayElements (jlongA, jiA, len);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1datetimeArray
         (JNIEnv *jEnv, jobject jThs, jlongArray jlongA)
   {
      CIMValue           *cv  = NULL;
      jboolean            b;
      jsize               len = jEnv->GetArrayLength (jlongA);
      jlong              *jiA = jEnv->GetLongArrayElements (jlongA, &b);
      Array<CIMDateTime>  cA;
   
      for (jsize i = 0; i < len; i++)
      {
         CIMDateTime *cdt = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jiA[i]);
         cA.append (*cdt);
      }
   
      cv = new CIMValue (cA);
   
      jEnv->ReleaseLongArrayElements (jlongA, jiA, len);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1objectArray
         (JNIEnv *jEnv, jobject jThs, jlongArray jlongA)
   {
      CIMValue           *cv  = NULL;
      jboolean            b;
      jsize               len = jEnv->GetArrayLength (jlongA);
      jlong              *jiA = jEnv->GetLongArrayElements (jlongA, &b);
      Array<CIMObject>    cA;
   
      for (jsize i = 0; i < len; i++)
      {
         CIMObject *co = DEBUG_ConvertJavaToC (jlong, CIMObject*, jiA[i]);
         cA.append (*co);
      }
   
      cv = new CIMValue (cA);
   
      jEnv->ReleaseLongArrayElements (jlongA, jiA, len);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1char16Array
         (JNIEnv *jEnv, jobject jThs, jcharArray jcharA)
   {
      CIMValue      *cv  = NULL;
      jboolean       b;
      jsize          len = jEnv->GetArrayLength (jcharA);
      jchar         *jcA = jEnv->GetCharArrayElements (jcharA, &b);
      Array<Char16>  cA;
   
      for (jsize i = 0; i < len; i++)
         cA.append (Char16 (jcA[i]));
   
      cv = new CIMValue (cA);
   
      jEnv->ReleaseCharArrayElements (jcharA, jcA, len);
   
      return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
   }
   
   JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMValue__1getValue
         (JNIEnv *jEnv, jobject jThs, jlong jV)
   {
      JMPIjvm::cacheIDs (jEnv);
   
      CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
   
      if (cv->isNull ())
         return NULL;
   
      CIMType type = cv->getType ();
   
      if (!cv->isArray ())
      {
         switch (type)
         {
         case CIMTYPE_BOOLEAN:
         {
            Boolean bo;
            cv->get (bo);
            return jEnv->NewObject (JMPIjvm::jv.BooleanClassRef,
                                    JMPIjvm::jv.BooleanNewZ,
                                    (jboolean)bo);
         }
         case CIMTYPE_SINT8:
         {
            Sint8 s8;
            cv->get (s8);
            return jEnv->NewObject (JMPIjvm::jv.ByteClassRef,
                                    JMPIjvm::jv.ByteNewB,
                                    (jbyte)s8);
         }
         case CIMTYPE_UINT8:
         {
            Uint8 u8;
            cv->get (u8);
            return jEnv->NewObject (JMPIjvm::jv.UnsignedInt8ClassRef,
                                    JMPIjvm::jv.UnsignedInt8NewS,
                                    (jshort)u8);
         }
         case CIMTYPE_SINT16:
         {
            Sint16 s16;
            cv->get (s16);
            return jEnv->NewObject (JMPIjvm::jv.ShortClassRef,
                                    JMPIjvm::jv.ShortNewS,
                                    (jshort)s16);
         }
         case CIMTYPE_UINT16:
         {
            Uint16 u16;
            cv->get (u16);
            return jEnv->NewObject (JMPIjvm::jv.UnsignedInt16ClassRef,
                                    JMPIjvm::jv.UnsignedInt16NewI,
                                    (jint)u16);
         }
         case CIMTYPE_SINT32:
         {
            Sint32 s32;
            cv->get (s32);
            return jEnv->NewObject (JMPIjvm::jv.IntegerClassRef,
                                    JMPIjvm::jv.IntegerNewI,
                                    (jint)s32);
         }
         case CIMTYPE_UINT32:
         {
            Uint32 u32;
            cv->get (u32);
            return jEnv->NewObject (JMPIjvm::jv.UnsignedInt32ClassRef,
                                    JMPIjvm::jv.UnsignedInt32NewJ,
                                    (jlong)u32);
         }
         case CIMTYPE_SINT64:
         {
            Sint64 s64;
            cv->get (s64);
            return jEnv->NewObject (JMPIjvm::jv.LongClassRef,
                                    JMPIjvm::jv.LongNewJ,
                                    (jlong)s64);
         }
         case CIMTYPE_UINT64:
         {
            Uint64 u64;
  
    return jCv;           cv->get (u64);
   
            std::ostringstream oss;
            jstring            jString = 0;
            jobject            jBIG    = 0;
   
            oss << u64 << ends;
   
            jString = jEnv->NewStringUTF (oss.str ().c_str ());
   
            if (jString)
            {
               jBIG = jEnv->NewObject (JMPIjvm::jv.UnsignedInt64ClassRef,
                                       JMPIjvm::jv.UnsignedInt64NewStr,
                                       jString);
            }
   
            return jEnv->NewObject (JMPIjvm::jv.UnsignedInt64ClassRef,
                                    JMPIjvm::jv.UnsignedInt64NewBi,
                                    jBIG);
         }
         case CIMTYPE_REAL32:
         {
            float f;
            cv->get (f);
            return jEnv->NewObject (JMPIjvm::jv.FloatClassRef,
                                    JMPIjvm::jv.FloatNewF,
                                    (jfloat)f);
         }
         case CIMTYPE_REAL64:
         {
            double d;
            cv->get (d);
            return jEnv->NewObject (JMPIjvm::jv.DoubleClassRef,
                                    JMPIjvm::jv.DoubleNewD,
                                    (jdouble)d);
         }
         case CIMTYPE_STRING:
         {
            String s;
            cv->get (s);
            return jEnv->NewStringUTF (s.getCString ());
         }
         case CIMTYPE_REFERENCE:
         {
            CIMObjectPath ref;
            cv->get (ref);
            jlong jOp = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath (ref));
            return jEnv->NewObject (JMPIjvm::jv.CIMObjectPathClassRef,
                                    JMPIjvm::jv.CIMObjectPathNewJ,
                                    jOp);
         }
         case CIMTYPE_CHAR16:
         {
            Char16 c16;
            cv->get (c16);
            return jEnv->NewObject (JMPIjvm::jv.CharacterClassRef,
                                    JMPIjvm::jv.CharacterNewC,
                                    (jchar)c16);
         }
         case CIMTYPE_DATETIME:
         {
            CIMDateTime dt;
            cv->get (dt);
            jlong jDT = DEBUG_ConvertCToJava (CIMDateTime*, jlong, new CIMDateTime (dt));
            return jEnv->NewObject (JMPIjvm::jv.CIMDateTimeClassRef,
                                    JMPIjvm::jv.CIMDateTimeNewJ,
                                    jDT);
         }
         case CIMTYPE_OBJECT:
         {
            CIMObject co;
            cv->get (co);
            if (co.isClass ())
            {
               jlong jCC = DEBUG_ConvertCToJava (CIMClass*, jlong, new CIMClass (co));
   
               return jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,
                                       JMPIjvm::jv.CIMObjectNewJZ,
                                       jCC,
                                       (jboolean)true);
            }
            else
            {
               jlong jCI = DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance (co));
   
               return jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,
                                       JMPIjvm::jv.CIMObjectNewJZ,
                                       jCI,
                                       (jboolean)false);
            }
         }
         default:
            throwCIMException (jEnv,"+++ unsupported type: ");
         }
      }
      else
      {
         switch (type)
         {
         case CIMTYPE_BOOLEAN:
         {
            Array<Boolean> bo;
   
            cv->get (bo);
   
            int          s         = bo.size ();
            jobjectArray jbooleanA = (jobjectArray)jEnv->NewObjectArray (s,
                                                                         JMPIjvm::jv.BooleanClassRef,
                                                                         0);
   
            for (int i = 0; i < s; i++)
               jEnv->SetObjectArrayElement (jbooleanA,
                                           i,
                                           jEnv->NewObject (JMPIjvm::jv.BooleanClassRef,
                                                            JMPIjvm::jv.BooleanNewZ,
                                                            (jboolean)bo[i]));
            return jbooleanA;
         }
         case CIMTYPE_SINT8:
         {
            Array<Sint8> s8;
   
            cv->get (s8);
   
            int          s      = s8.size ();
            jobjectArray jbyteA = (jobjectArray)jEnv->NewObjectArray (s,
                                                                      JMPIjvm::jv.ByteClassRef,
                                                                      0);
   
            for (int i = 0; i < s; i++)
               jEnv->SetObjectArrayElement (jbyteA,
                                            i,
                                            jEnv->NewObject (JMPIjvm::jv.ByteClassRef,
                                                             JMPIjvm::jv.ByteNewB,
                                                             (jbyte)s8[i]));
            return jbyteA;
         }
         case CIMTYPE_UINT8:
         {
            Array<Uint8> u8;
   
            cv->get (u8);
   
            int          s       = u8.size ();
            jobjectArray jshortA = (jobjectArray)jEnv->NewObjectArray (s,
                                                                       JMPIjvm::jv.UnsignedInt8ClassRef,
                                                                       0);
            for (int i = 0; i < s; i++)
               jEnv->SetObjectArrayElement (jshortA,
                                            i,
                                            jEnv->NewObject (JMPIjvm::jv.UnsignedInt8ClassRef,
                                                             JMPIjvm::jv.UnsignedInt8NewS,
                                                             (jshort)u8[i]));
            return jshortA;
         }
         case CIMTYPE_SINT16:
         {
            Array<Sint16> s16;
   
            cv->get (s16);
   
            int          s       = s16.size ();
            jobjectArray jshortA = (jobjectArray)jEnv->NewObjectArray (s,
                                                                       JMPIjvm::jv.ShortClassRef,
                                                                       0);
   
            for (int i = 0; i < s; i++)
               jEnv->SetObjectArrayElement (jshortA,
                                            i,
                                            jEnv->NewObject (JMPIjvm::jv.ShortClassRef,
                                                             JMPIjvm::jv.ShortNewS,
                                                             (jshort)s16[i]));
            return jshortA;
         }
         case CIMTYPE_UINT16:
         {
            Array<Uint16> u16;
   
            cv->get (u16);
   
            int          s     = u16.size ();
            jobjectArray jintA = (jobjectArray)jEnv->NewObjectArray (s,
                                                                     JMPIjvm::jv.UnsignedInt16ClassRef,
                                                                     0);
   
            for (int i = 0; i < s; i++)
               jEnv->SetObjectArrayElement (jintA,
                                            i,
                                            jEnv->NewObject (JMPIjvm::jv.UnsignedInt16ClassRef,
                                                             JMPIjvm::jv.UnsignedInt16NewI,
                                                             (jint)u16[i]));
            return jintA;
         }
         case CIMTYPE_SINT32:
         {
            Array<Sint32> s32;
   
            cv->get (s32);
   
            int          s     = s32.size ();
            jobjectArray jintA = (jobjectArray)jEnv->NewObjectArray (s,
                                                                     JMPIjvm::jv.IntegerClassRef,
                                                                     0);
   
            for (int i = 0; i < s; i++)
               jEnv->SetObjectArrayElement (jintA,
                                            i,
                                            jEnv->NewObject (JMPIjvm::jv.IntegerClassRef,
                                                             JMPIjvm::jv.IntegerNewI,
                                                             (jint)s32[i]));
            return jintA;
         }
         case CIMTYPE_UINT32:
         {
            Array<Uint32> u32;
   
            cv->get (u32);
   
            int          s      = u32.size ();
            jobjectArray jlongA = (jobjectArray)jEnv->NewObjectArray (s,
                                                                      JMPIjvm::jv.UnsignedInt32ClassRef,
                                                                      0);
   
            for (int i = 0; i < s; i++)
               jEnv->SetObjectArrayElement (jlongA,
                                            i,
                                            jEnv->NewObject (JMPIjvm::jv.UnsignedInt32ClassRef,
                                                             JMPIjvm::jv.UnsignedInt32NewJ,
                                                             (jlong)u32[i]));
            return jlongA;
         }
         case CIMTYPE_SINT64:
         {
            Array<Sint64> s64;
   
            cv->get (s64);
   
            int          s      = s64.size ();
            jobjectArray jlongA = (jobjectArray)jEnv->NewObjectArray (s,
                                                                      JMPIjvm::jv.LongClassRef,
                                                                      0);
   
            for (int i = 0; i < s; i++)
               jEnv->SetObjectArrayElement (jlongA,
                                            i,
                                            jEnv->NewObject (JMPIjvm::jv.LongClassRef,
                                                             JMPIjvm::jv.LongNewJ,
                                                             (jlong)s64[i]));
            return jlongA;
 } }
         case CIMTYPE_UINT64:
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1execQuery  
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jstring jQuery, jstring jQl)  
 { {
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);           Array<Uint64> u64;
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    const char    *str = jEnv->GetStringUTFChars(jQuery,NULL);  
    String         query(str);  
  
 /* @NOTE           cv->get (u64);
 ** This does not work for some reason on the client java code:  
 **   DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::Java_org_pegasus_jmpi_CIMClient__1execQuery: jEnv = "<<PEGASUS_STD(hex)<<(int)jEnv<<", jThs = "<<(int)jThs<<PEGASUS_STD(dec)<<", jCc = "<<jCc<<", jNs = "<<jNs<<", jCop = "<<jCop<<", jQuery = "<<PEGASUS_STD(hex)<<(int)jQuery<<", jQl = "<<(int)jQl<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));  
 ** What does work is:  
 **   printf ("This is a test\n");  
 **  
 ** To debug these JNI functions insert the following:  
 **    if (getenv ("PEGASUS_JMPI_GDB"))  
 **    {  
 **       bool fLoop = true;  
 **       int  i     = 0;  
 **  
 **       while (fLoop)  
 **       {  
 **          i = 1;  
 **       }  
 **    }  
 ** Export the variable PEGASUS_JMPI_GDB=1.  
 ** Start gdb in another process.  
 **    shell ps -efl  
 **    att <ps number>  
 **    set fLoop = 0  
 */  
  
    jEnv->ReleaseStringUTFChars(jQuery,str);           int          s     = u64.size ();
            jobjectArray ju64A = (jobjectArray)jEnv->NewObjectArray (s,
                                                                     JMPIjvm::jv.UnsignedInt64ClassRef,
                                                                     0);
  
    str=jEnv->GetStringUTFChars(jQl,NULL);           for (int i = 0; i < s; i++)
            {
               std::ostringstream oss;
               jstring            jString = 0;
               jobject            jBIG    = 0;
  
    String ql(str);              oss << u64[i] << ends;
  
    jEnv->ReleaseStringUTFChars(jQl,str);              jString = jEnv->NewStringUTF (oss.str ().c_str ());
  
    try {              if (jString)
       checkNs(cop,jNs);              {
       Array<CIMObject> enm=cCc->execQuery(cop->getNameSpace(),ql,query);                 jBIG = jEnv->NewObject (JMPIjvm::jv.UnsignedInt64ClassRef,
       Array<CIMInstance> *enmInst=new Array<CIMInstance>();                                         JMPIjvm::jv.UnsignedInt64NewStr,
       for (int i=0,m=enm.size(); i<m; i++) {                                         jString);
          enmInst->append(CIMInstance(enm[i]));  
       }  
       return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, enmInst);  
    }    }
    Catch(jEnv);  
  
    return 0;              if (jBIG)
               {
                  jEnv->SetObjectArrayElement (ju64A,
                                               i,
                                               jEnv->NewObject (JMPIjvm::jv.UnsignedInt64ClassRef,
                                                                JMPIjvm::jv.UnsignedInt64NewBi,
                                                                jBIG));
 } }
            }
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1associatorNames           return ju64A;
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop,        }
    jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole)        case CIMTYPE_REAL32:
 { {
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);           Array<Real32> r32;
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    const char    *str = jEnv->GetStringUTFChars(jAssocClass,NULL);  
    CIMName        assocClass(str);  
  
    jEnv->ReleaseStringUTFChars(jAssocClass,str);           cv->get (r32);
    str=jEnv->GetStringUTFChars(jResultClass,NULL);  
  
    CIMName resultClass(str);           int          s       = r32.size ();
            jobjectArray jfloatA = (jobjectArray)jEnv->NewObjectArray (s,
                                                                       JMPIjvm::jv.FloatClassRef,
                                                                       0);
  
    jEnv->ReleaseStringUTFChars(jResultClass,str);           for (int i = 0; i < s; i++)
    str=jEnv->GetStringUTFChars(jRole,NULL);              jEnv->SetObjectArrayElement (jfloatA,
                                            i,
                                            jEnv->NewObject (JMPIjvm::jv.FloatClassRef,
                                                             JMPIjvm::jv.FloatNewF,
                                                             (jfloat)r32[i]));
            return jfloatA;
         }
         case CIMTYPE_REAL64:
         {
            Array<Real64> r64;
  
    String role(str);           cv->get (r64);
  
    jEnv->ReleaseStringUTFChars(jRole,str);           int          s        = r64.size ();
    str=jEnv->GetStringUTFChars(jResultRole,NULL);           jobjectArray jdoubleA = (jobjectArray)jEnv->NewObjectArray (s,
                                                                        JMPIjvm::jv.DoubleClassRef,
                                                                        0);
  
    String resultRole(str);           for (int i = 0; i < s; i++)
               jEnv->SetObjectArrayElement (jdoubleA,
                                            i,
                                            jEnv->NewObject (JMPIjvm::jv.DoubleClassRef,
                                                             JMPIjvm::jv.DoubleNewD,
                                                             (jdouble)r64[i]));
            return jdoubleA;
         }
         case CIMTYPE_STRING:
         {
            Array<String> str;
  
    jEnv->ReleaseStringUTFChars(jResultRole,str);           cv->get (str);
  
    try {           int          s        = str.size ();
       checkNs(cop,jNs);           jobjectArray jstringA = (jobjectArray)jEnv->NewObjectArray (s,
       Array<CIMObjectPath> enm=cCc->associatorNames(                                                                       JMPIjvm::jv.StringClassRef,
          cop->getNameSpace(),*cop,assocClass,resultClass,role,resultRole);                                                                       0);
       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, new Array<CIMObjectPath>(enm));  
    }  
    Catch(jEnv);  
  
    return 0;           for (int i = 0; i < s; i++)
               jEnv->SetObjectArrayElement (jstringA,
                                            i,
                                            jEnv->NewStringUTF (str[i].getCString ()));
            return jstringA;
 } }
         case CIMTYPE_REFERENCE:
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1associators  
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop,  
    jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole,  
    jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)  
 { {
    CIMClient       *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);           Array<CIMObjectPath> ref;
    CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    CIMPropertyList  pl  = getList(jEnv,jPl);  
    const char      *str = jEnv->GetStringUTFChars(jAssocClass,NULL);  
    CIMName          assocClass(str);  
   
    jEnv->ReleaseStringUTFChars(jAssocClass,str);  
    str=jEnv->GetStringUTFChars(jResultClass,NULL);  
  
    CIMName resultClass(str);           cv->get (ref);
  
    jEnv->ReleaseStringUTFChars(jResultClass,str);           int          s     = ref.size ();
    str=jEnv->GetStringUTFChars(jRole,NULL);           jobjectArray jrefA = (jobjectArray)jEnv->NewObjectArray (s,
                                                                     JMPIjvm::jv.CIMObjectPathClassRef,
                                                                     0);
  
    String role(str);           for (int i = 0; i < s; i++)
            {
               jlong jOP = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath (ref[i]));
  
    jEnv->ReleaseStringUTFChars(jRole,str);              jEnv->SetObjectArrayElement (jrefA,
    str=jEnv->GetStringUTFChars(jResultRole,NULL);                                           i,
                                            jEnv->NewObject (JMPIjvm::jv.CIMObjectPathClassRef,
                                                             JMPIjvm::jv.CIMObjectPathNewJ,
                                                             jOP));
            }
            return jrefA;
         }
         case CIMTYPE_CHAR16:
         {
            Array<Char16> c16;
  
    String resultRole(str);           cv->get (c16);
  
    jEnv->ReleaseStringUTFChars(jResultRole,str);           int          s     = c16.size ();
            jobjectArray jc16A = (jobjectArray)jEnv->NewObjectArray (s,
                                                                     JMPIjvm::jv.CharacterClassRef,
                                                                     0);
  
    try {           for (int i = 0; i < s; i++)
       checkNs(cop,jNs);              jEnv->SetObjectArrayElement (jc16A,
       Array<CIMObject> enm=cCc->associators(                                           i,
          cop->getNameSpace(),*cop,assocClass,resultClass,role,resultRole,                                           jEnv->NewObject (JMPIjvm::jv.CharacterClassRef,
          (Boolean)includeQualifiers,(Boolean)includeClassOrigin,pl);                                                            JMPIjvm::jv.CharacterNewC,
       Array<CIMInstance> *enmInst=new Array<CIMInstance>();                                                            (jchar)c16[i]));
       for (int i=0,m=enm.size(); i<m; i++) {  
          enmInst->append(CIMInstance(enm[i]));  
       }  
       return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, enmInst);  
    }  
    Catch(jEnv);  
  
    return 0;           return jc16A;
 } }
         case CIMTYPE_DATETIME:
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1referenceNames  
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop,  
    jstring jAssocClass, jstring jRole)  
 { {
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);           Array<CIMDateTime> dt;
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    const char    *str = jEnv->GetStringUTFChars(jAssocClass,NULL);  
    CIMName        assocClass(str);  
  
    jEnv->ReleaseStringUTFChars(jAssocClass,str);           cv->get (dt);
    str=jEnv->GetStringUTFChars(jRole,NULL);  
  
    String role(str);           int          s    = dt.size ();
            jobjectArray jdtA = (jobjectArray)jEnv->NewObjectArray (s,
                                                                    JMPIjvm::jv.CIMDateTimeClassRef,
                                                                    0);
  
    jEnv->ReleaseStringUTFChars(jRole,str);           for (int i = 0; i < s; i++)
            {
               jlong jDT = DEBUG_ConvertCToJava (CIMDateTime*, jlong, new CIMDateTime (dt[i]));
  
    try {              jEnv->SetObjectArrayElement (jdtA,
       checkNs(cop,jNs);                                           i,
       Array<CIMObjectPath> enm=cCc->referenceNames(                                           jEnv->NewObject (JMPIjvm::jv.CIMDateTimeClassRef,
          cop->getNameSpace(),*cop,assocClass,role);                                                            JMPIjvm::jv.CIMDateTimeNewJ,
       return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, new Array<CIMObjectPath>(enm));                                                            jDT));
    }    }
    Catch(jEnv);           return jdtA;
   
    return 0;  
 } }
         case CIMTYPE_OBJECT:
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1references  
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop,  
    jstring jAssocClass, jstring jRole,  
    jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)  
 { {
    CIMClient       *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);           Array<CIMObject> co;
    CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    CIMPropertyList  pl  = getList(jEnv,jPl);  
    const char      *str = jEnv->GetStringUTFChars(jAssocClass,NULL);  
    CIMName          assocClass(str);  
  
    jEnv->ReleaseStringUTFChars(jAssocClass,str);           cv->get (co);
    str=jEnv->GetStringUTFChars(jRole,NULL);  
  
    String role(str);           int          s    = co.size ();
            jobjectArray jcoA = (jobjectArray)jEnv->NewObjectArray (s,
                                                                    JMPIjvm::jv.CIMObjectClassRef,
                                                                    0);
  
    jEnv->ReleaseStringUTFChars(jRole,str);           for (int i = 0; i < s; i++)
            {
               if (co[i].isClass ())
               {
                  jlong jCC = DEBUG_ConvertCToJava (CIMClass*, jlong, new CIMClass (co[i]));
  
    try {                 jEnv->SetObjectArrayElement (jcoA,
       checkNs(cop,jNs);                                              i,
       Array<CIMObject> enm=cCc->references(                                              jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,
          cop->getNameSpace(),*cop,assocClass,role,                                                               JMPIjvm::jv.CIMObjectNewJZ,
          (Boolean)includeQualifiers,(Boolean)includeClassOrigin,pl);                                                               jCC,
       Array<CIMInstance> *enmInst=new Array<CIMInstance>();                                                               (jboolean)true));
       for (int i=0,m=enm.size(); i<m; i++) {  
          enmInst->append(CIMInstance(enm[i]));  
       }  
       return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, enmInst);  
    }    }
    Catch(jEnv);              else
               {
                  jlong jCI = DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance (co[i]));
  
    return 0;                 jEnv->SetObjectArrayElement (jcoA,
                                               i,
                                               jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,
                                                                JMPIjvm::jv.CIMObjectNewJZ,
                                                                jCI,
                                                                (jboolean)false));
 } }
   
 static int normalizeNs(String &ns, String &nsBase, String &lastNsComp) {  
    Uint32 n=ns.size();  
    if (ns[n-1]=='/') {  
       if (n>=2) ns=ns.subString(0,n-2);  
    }    }
            return jcoA;
    lastNsComp=ns;        }
    nsBase="root";        default:
            throwCIMException (jEnv,"+++ unsupported type: ");
    n=ns.reverseFind('/');  
    if (n!=PEG_NOT_FOUND) {  
       lastNsComp=ns.subString(n+1);  
       nsBase=ns.subString(0,n);  
    }    }
    return 0;  
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1createNameSpace     return NULL;
   (JNIEnv *jEnv, jobject jThs, jint jCc, jstring jNs)  }
 {  
    CIMClient  *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);  
    const char *str = jEnv->GetStringUTFChars(jNs,NULL);  
    String      ns(str);  
  
    jEnv->ReleaseStringUTFChars(jNs,str);  JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1getType
         (JNIEnv *jEnv, jobject jThs, jlong jP)
   {
      CIMValue *cv       = DEBUG_ConvertJavaToC (jlong, CIMValue*, jP);
      bool      fSuccess = false;
      jint      jiJType  = 0;
  
    String lastNsComp;     jiJType = _dataType::convertCTypeToJavaType (cv->getType (), &fSuccess);
    String nsBase;  
  
    normalizeNs(ns,nsBase,lastNsComp);     return jiJType;
   }
  
    CIMInstance newInstance(CIMName("__Namespace"));  JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMValue__1isArray
    newInstance.addProperty(CIMProperty(CIMName ("name"),lastNsComp));        (JNIEnv *jEnv, jobject jThs, jlong jP)
   {
      CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jP);
  
    try {     return (jboolean)cv->isArray ();
       cCc->createInstance(CIMNamespaceName(nsBase),newInstance);  
    }    }
    Catch(jEnv);  
   JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMValue__1toString
         (JNIEnv *jEnv, jobject jThs, jlong jV)
   {
      CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
   
      return (jstring)jEnv->NewStringUTF (cv->toString ().getCString ());
 } }
  
 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateNameSpaces  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMValue__1finalize
   (JNIEnv *jEnv, jobject jThs, jint jCc, jint jCop, jboolean deep, jobject jVec)        (JNIEnv *jEnv, jobject jThs, jlong jV)
 { {
    JMPIjvm::cacheIDs(jEnv);     CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
  
    CIMClient     *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);     delete cv;
    CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);  
    String         ns  = cop->getNameSpace().getString();  
  
    try {     DEBUG_ConvertCleanup (jlong, jV);
       Array<CIMObjectPath> enm=cCc->enumerateInstanceNames(  
          cop->getNameSpace(),CIMName("__Namespace"));  
       for (int i=0,s=enm.size(); i<s; i++) {  
          CIMObjectPath &cop=enm[i];  
          const Array<CIMKeyBinding>& kb=cop.getKeyBindings();  
          const String &n=kb[0].getValue();  
          if (!deep && n.find('/')!=PEG_NOT_FOUND)  
             continue;  
          String x=ns+"/"+n;  
          jstring str=jEnv->NewStringUTF(x.getCString());  
          jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,str);  
       }       }
    }  
    Catch(jEnv);  
  
    return jVec;  
   // -------------------------------------
   // ---
   // -            ClassEnumeration
   // ---
   // -------------------------------------
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_ClassEnumeration__1getClass
     (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos)
   {
      Array<CIMClass> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMClass>*, jEnum);
   
      return DEBUG_ConvertCToJava (CIMClass*, jlong, new CIMClass ((*enm)[pos]));
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteNameSpace  JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_ClassEnumeration__1size
   (JNIEnv *jEnv, jobject jThs, jint jCc, jstring jNs)    (JNIEnv *jEnv, jobject jThs, jlong jEnum)
 { {
    CIMClient  *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);     Array<CIMClass> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMClass>*, jEnum);
    const char *str = jEnv->GetStringUTFChars(jNs,NULL);  
    String      ns(str);  
  
    jEnv->ReleaseStringUTFChars(jNs,str);     return enm->size ();
   }
  
    String lastNsComp;  
    String nsBase;  
  
    normalizeNs(ns,nsBase,lastNsComp);  // -------------------------------------
   // ---
   // -            InstEnumeration
   // ---
   // -------------------------------------
  
    CIMObjectPath cop(String::EMPTY,CIMNamespaceName(nsBase),CIMName("__Namespace"));  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_InstEnumeration__1getInstance
    Array<CIMKeyBinding> kb;    (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos)
    kb.append(CIMKeyBinding(("Name"),CIMValue(lastNsComp)));  {
    cop.setKeyBindings(kb);     Array<CIMInstance> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMInstance>*, jEnum);
  
    try {     return DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance ((*enm)[pos]));
       cCc->deleteInstance(CIMNamespaceName(nsBase),cop);  
    }    }
    Catch(jEnv);  
   JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_InstEnumeration__1size
     (JNIEnv *jEnv, jobject jThs, jlong jEnum)
   {
      Array<CIMInstance> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMInstance>*, jEnum);
   
      return enm->size ();
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1finalize  // -------------------------------------
    (JNIEnv *jEnv, jobject jThs, jint jCc)  // ---
   // -            JMPIQueryExp
   // ---
   // -------------------------------------
   
   /*
    * Class:     org_pegasus_jmpi_JMPIQueryExp
    * Method:    _applyInstance
    * Signature: (II)Z
    */
   JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance
     (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciInstance)
 { {
    CIMClient  *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);     WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt);
      CIMInstance        *ci       = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciInstance);
  
    delete cCc;     if (  !wql_stmt
         || !ci
         )
      {
         return 0;
      }
   
      try
      {
         return wql_stmt->evaluate (*ci);
      }
      catch (const Exception &e)
      {
         cerr << "Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance: Caught: " << e.getMessage () << endl;
  
    DEBUG_ConvertCleanup (jint, jCc);        return false;
      }
 } }
  
   
 // ------------------------------------- // -------------------------------------
 // --- // ---
 // -            CIMObject  // -            JMPISelectList
 // --- // ---
 // ------------------------------------- // -------------------------------------
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObject__1newClass  /*
   (JNIEnv *jEnv, jobject jThs, jint jCc)   * Class:     org_pegasus_jmpi_JMPISelectList
    * Method:    _applyInstance
    * Signature: (II)I
    */
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyInstance
     (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciInstance)
 { {
    CIMClass *cCc = DEBUG_ConvertJavaToC (jint, CIMClass*, jCc);     WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt);
      CIMInstance        *ci       = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciInstance);
      CIMInstance        *ciRet    = 0;
  
    try {     if (  !wql_stmt
       CIMObject *cCo = new CIMObject (*cCc);        || !ci
         )
      {
         return 0;
      }
   
      ciRet = new CIMInstance (ci->clone ());
  
       return DEBUG_ConvertCToJava (CIMObject*, jint, cCo);     if (ciRet)
      {
         try
         {
            wql_stmt->applyProjection (*ciRet, false);
    }    }
    Catch(jEnv);        catch (const Exception &e)
         {
            cerr << "Java_org_pegasus_jmpi_JMPISelectList__1applyInstance: Caught: " << e.getMessage () << endl;
  
    return 0;    return 0;
 } }
      }
   
      return DEBUG_ConvertCToJava (CIMInstance *, jlong, ciRet);
   }
   
   /*
    * Class:     org_pegasus_jmpi_JMPISelectList
    * Method:    _applyClass
    * Signature: (II)I
    */
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyClass
     (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciClass)
   {
      WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt);
      CIMClass           *cc       = DEBUG_ConvertJavaToC (jlong, CIMClass*, jciClass);
      CIMClass           *ccRet    = NULL;
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObject__1newInstance     if (!wql_stmt)
   (JNIEnv *jEnv, jobject jThs, jint jCi)  
 { {
    CIMInstance *cCi = DEBUG_ConvertJavaToC (jint, CIMInstance*, jCi);        return 0;
      }
  
    try {     if (cc)
       CIMObject *cCo = new CIMObject (*cCi);     {
         CIMObject co (cc->clone ());
  
       return DEBUG_ConvertCToJava (CIMObject*, jint, cCo);        try
         {
            wql_stmt->applyProjection (co, false);
    }    }
    Catch(jEnv);        catch (const Exception &e)
         {
            cerr << "Java_org_pegasus_jmpi_JMPISelectList__1applyClass: Caught: " << e.getMessage () << endl;
  
    return 0;    return 0;
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObject__1finalize        ccRet = new CIMClass (co);
   (JNIEnv *jEnv, jobject jThs, jint jInst)  
 {  
    CIMObject *co = DEBUG_ConvertJavaToC (jint, CIMObject*, jInst);  
  
    delete co;        return DEBUG_ConvertCToJava (CIMClass *, jlong, ccRet);
      }
  
    DEBUG_ConvertCleanup (jint, jInst);     return 0;
 } }
  
   
 // ------------------------------------- // -------------------------------------
 // --- // ---
 // -            OperationContext // -            OperationContext
Line 5212 
Line 6328 
  * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/Object;  * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
  */  */
 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_OperationContext__1get JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_OperationContext__1get
   (JNIEnv *jEnv, jobject jThs, jint jInst, jstring jContainer, jstring jKey)    (JNIEnv *jEnv, jobject jThs, jlong jInst, jstring jContainer, jstring jKey)
 { {
    OperationContext *poc  = DEBUG_ConvertJavaToC (jint, OperationContext*, jInst);     OperationContext *poc  = DEBUG_ConvertJavaToC (jlong, OperationContext*, jInst);
    jobject           jRet = 0;    jobject           jRet = 0;
  
    if (!poc)    if (!poc)
Line 5253 
Line 6369 
          if (key == "subscriptionInstance")          if (key == "subscriptionInstance")
          {          {
             CIMInstance ci     = sic.getInstance ();             CIMInstance ci     = sic.getInstance ();
             jint        jciRef = DEBUG_ConvertCToJava (CIMInstance*, jint, new CIMInstance (ci));              jlong       jciRef = DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance (ci));
  
             jRet = jEnv->NewObject (JMPIjvm::jv.CIMInstanceClassRef,             jRet = jEnv->NewObject (JMPIjvm::jv.CIMInstanceClassRef,
                                     JMPIjvm::jv.CIMInstanceNewI,                                      JMPIjvm::jv.CIMInstanceNewJ,
                                     jciRef);                                     jciRef);
          }          }
       }       }
Line 5270 
Line 6386 
             jobjectArray         jcopa       = 0;             jobjectArray         jcopa       = 0;
             int                  jcopaLength = copa.size ();             int                  jcopaLength = copa.size ();
  
             jcopa = jEnv->NewObjectArray (jcopaLength,              jcopa = (jobjectArray)jEnv->NewObjectArray (jcopaLength,
                                           JMPIjvm::jv.CIMObjectPathClassRef,                                           JMPIjvm::jv.CIMObjectPathClassRef,
                                           0);                                           0);
  
Line 5279 
Line 6395 
                jEnv->SetObjectArrayElement (jcopa,                jEnv->SetObjectArrayElement (jcopa,
                                             i,                                             i,
                                             jEnv->NewObject (JMPIjvm::jv.CIMObjectPathClassRef,                                             jEnv->NewObject (JMPIjvm::jv.CIMObjectPathClassRef,
                                                              JMPIjvm::jv.CIMObjectPathNewI,                                                               JMPIjvm::jv.CIMObjectPathNewJ,
                                                              new CIMObjectPath (copa[i])));                                                              new CIMObjectPath (copa[i])));
             }             }
  
Line 5353 
Line 6469 
    return jRet;    return jRet;
 } }
  
   
 // ------------------------------------- // -------------------------------------
 // --- // ---
 // -            SelectExp  // -            PathEnumeration
 // --- // ---
 // ------------------------------------- // -------------------------------------
  
 /*  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_PathEnumeration__1getObjectPath
  * Class:     org_pegasus_jmpi_SelectExp    (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos)
  * Method:    _finalize  
  * Signature: (I)V  
  */  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_SelectExp__1finalize  
   (JNIEnv *jEnv, jobject jThs, jint jEselx)  
 { {
    CMPI_SelectExp *eSelx = DEBUG_ConvertJavaToC (jint, CMPI_SelectExp*, jEselx);     Array<CIMObjectPath> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMObjectPath>*, jEnum);
  
    delete eSelx;     return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath ((*enm)[pos]));
   
    DEBUG_ConvertCleanup (jint, jEselx);  
 } }
  
 /*  JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_PathEnumeration__1size
  * Class:     org_pegasus_jmpi_SelectExp    (JNIEnv *jEnv, jobject jThs, jlong jEnum)
  * Method:    _newSelectExp  
  * Signature: (Ljava/lang/String;)I  
  */  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_SelectExp__1newSelectExp  
   (JNIEnv *jEnv, jobject jThs, jstring jQuery)  
 { {
    const char         *pszQuery = jEnv->GetStringUTFChars (jQuery, NULL);     Array<CIMObjectPath> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMObjectPath>*, jEnum);
    CMPI_SelectExp     *eSelx    = NULL;  
    WQLSelectStatement *stmt     = NULL;  
    String              queryLanguage (CALL_SIGN_WQL);  
    String              query (pszQuery);  
  
    stmt  = new WQLSelectStatement (queryLanguage, query);     return enm->size ();
    eSelx = new CMPI_SelectExp (stmt);  }
  
    jEnv->ReleaseStringUTFChars (jQuery, pszQuery);  
  
    return DEBUG_ConvertCToJava (CMPI_SelectExp *, jint, eSelx);  // -------------------------------------
   // ---
   // -            QualEnumeration
   // ---
   // -------------------------------------
   
   JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_QualEnumeration__1getQualifierType
     (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos)
   {
      Array<CIMQualifierDecl> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMQualifierDecl>*, jEnum);
   
      return DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, new CIMQualifierDecl ((*enm)[pos]));
 } }
  
 /*  JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_QualEnumeration__1size
  * Class:     org_pegasus_jmpi_SelectExp    (JNIEnv *jEnv, jobject jThs, jlong jEnum)
  * Method:    _getSelectString  
  * Signature: (I)Ljava/lang/String;  
  */  
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_SelectExp__1getSelectString  
   (JNIEnv *jEnv, jobject jThs, jint jEselx)  
 { {
    CMPI_SelectExp *eSelx = DEBUG_ConvertJavaToC (jint, CMPI_SelectExp*, jEselx);     Array<CIMQualifierDecl> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMQualifierDecl>*, jEnum);
  
    return (jstring)jEnv->NewStringUTF (eSelx->cond.getCString ());     return enm->size ();
 } }
  
   
 // ------------------------------------- // -------------------------------------
 // --- // ---
 // -            JMPISelectList  // -            SelectExp
 // --- // ---
 // ------------------------------------- // -------------------------------------
  
 /* /*
  * Class:     org_pegasus_jmpi_JMPISelectList   * Class:     org_pegasus_jmpi_SelectExp
  * Method:    _applyInstance   * Method:    _finalize
  * Signature: (II)I   * Signature: (I)V
  */  */
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyInstance  JNIEXPORT void JNICALL Java_org_pegasus_jmpi_SelectExp__1finalize
   (JNIEnv *jEnv, jobject jThs, jint jEselx, jint jciInstance)    (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt)
 {  
    CMPI_SelectExp *eSelx = DEBUG_ConvertJavaToC (jint, CMPI_SelectExp*, jEselx);  
    CIMInstance    *ci    = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciInstance);  
    CIMInstance    *ciRet = 0;  
   
    if (  !eSelx  
       || !eSelx->wql_stmt  
       )  
    {    {
       return 0;     WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt);
    }  
   
    ciRet = new CIMInstance (ci->clone ());  
  
    if (ciRet)     delete wql_stmt;
    {  
       eSelx->wql_stmt->applyProjection (*ciRet, false);  
    }  
  
    return DEBUG_ConvertCToJava (CIMInstance *, jint, ciRet);     DEBUG_ConvertCleanup (jlong, jWQLStmt);
 } }
  
 /* /*
  * Class:     org_pegasus_jmpi_JMPISelectList   * Class:     org_pegasus_jmpi_SelectExp
  * Method:    _applyClass   * Method:    _newSelectExp
  * Signature: (II)I   * Signature: (Ljava/lang/String;)I
  */  */
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyClass  JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_SelectExp__1newSelectExp
   (JNIEnv *jEnv, jobject jThs, jint jEselx, jint jciClass)    (JNIEnv *jEnv, jobject jThs, jstring jQuery)
 { {
    CMPI_SelectExp *eSelx = DEBUG_ConvertJavaToC (jint, CMPI_SelectExp*, jEselx);     const char         *pszQuery = jEnv->GetStringUTFChars (jQuery, NULL);
    CIMClass       *cc    = DEBUG_ConvertJavaToC (jint, CIMClass*, jciClass);     WQLSelectStatement *wql_stmt = NULL;
    CIMClass       *ccRet = NULL;     String              queryLanguage (CALL_SIGN_WQL);
      String              query (pszQuery);
  
    if (  !eSelx     wql_stmt = new WQLSelectStatement (queryLanguage, query);
       || !eSelx->wql_stmt     DDD (PEGASUS_STD (cout)<<"--- Java_org_pegasus_jmpi_SelectExp__1newSelectExp: wql_stmt = "<<PEGASUS_STD (hex)<< (long)wql_stmt<<PEGASUS_STD (dec)<<PEGASUS_STD (endl));
       )  
      try
    {    {
       return 0;        WQLParser::parse (query, *wql_stmt);
    }    }
      catch (const Exception &e)
    if (cc)  
    {    {
       CIMObject co (cc->clone ());        cerr << "Java_org_pegasus_jmpi_SelectExp__1newSelectExp: Caught: " << e.getMessage () << endl;
   
       eSelx->wql_stmt->applyProjection (co, false);  
   
       ccRet = new CIMClass (co);  
   
       return DEBUG_ConvertCToJava (CIMClass *, jint, ccRet);  
    }    }
  
    return 0;     jEnv->ReleaseStringUTFChars (jQuery, pszQuery);
 }  
  
 // -------------------------------------     return DEBUG_ConvertCToJava (WQLSelectStatement *, jlong, wql_stmt);
 // ---  }
 // -            JMPIQueryExp  
 // ---  
 // -------------------------------------  
  
 /* /*
  * Class:     org_pegasus_jmpi_JMPIQueryExp   * Class:     org_pegasus_jmpi_SelectExp
  * Method:    _applyInstance   * Method:    _getSelectString
  * Signature: (II)Z   * Signature: (I)Ljava/lang/String;
  */  */
 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance  JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_SelectExp__1getSelectString
   (JNIEnv *jEnv, jobject jThs, jint jEselx, jint jciInstance)    (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt)
 { {
    CMPI_SelectExp *eSelx = DEBUG_ConvertJavaToC (jint, CMPI_SelectExp*, jEselx);     WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt);
    CIMInstance    *ci    = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciInstance);     String              cond;
  
    if (  !eSelx     if (wql_stmt)
       || !eSelx->wql_stmt  
       )  
    {    {
       return 0;        try
         {
            cond = wql_stmt->getQuery ();
    }    }
         catch (const Exception &e)
         {
            cerr << "Java_org_pegasus_jmpi_SelectExp__1getSelectString: Caught: " << e.getMessage () << endl;
  
    if (eSelx->wql_stmt)           cond = "";
         }
      }
      else
    {    {
       return eSelx->wql_stmt->evaluate (*ci);        cond = "";
    }    }
  
    return false;     return (jstring)jEnv->NewStringUTF (cond.getCString ());
 } }
  
 } // extern "C" } // extern "C"


Legend:
Removed from v.1.35.2.2  
changed lines
  Added in v.1.65

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2