version 1.35.2.2, 2006/05/17 20:57:39
|
version 1.43, 2006/06/09 15:37:55
|
|
|
#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 |
|
|
JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1invokeMethod24 | JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1invokeMethod24 |
(JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jstring jMn, | (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jstring jMn, |
jobjectArray jIn, jobjectArray jOut) | jobjectArray jIn, jobjectArray jOut) |
|
|
{ | { |
JMPIjvm::cacheIDs(jEnv); | JMPIjvm::cacheIDs(jEnv); |
| |
|
|
Array<CIMParamValue> in; | Array<CIMParamValue> in; |
Array<CIMParamValue> out; | Array<CIMParamValue> out; |
| |
|
if (jIn) |
|
{ |
for (int i=0,m=jEnv->GetArrayLength(jIn); i<m; i++) { | for (int i=0,m=jEnv->GetArrayLength(jIn); i<m; i++) { |
JMPIjvm::checkException(jEnv); | JMPIjvm::checkException(jEnv); |
| |
|
|
| |
in.append(*p); | in.append(*p); |
} | } |
|
} |
try { | try { |
CIMValue *val=new CIMValue(ch->invokeMethod(ctx,cop->getNameSpace(),*cop,method,in,out)); | CIMValue *val=new CIMValue(ch->invokeMethod(ctx,cop->getNameSpace(),*cop,method,in,out)); |
| |
|
if (jOut) |
|
{ |
for (int i=0,m=out.size(),o=jEnv->GetArrayLength(jOut); i<m && i<o; i++) { | for (int i=0,m=out.size(),o=jEnv->GetArrayLength(jOut); i<m && i<o; i++) { |
CIMParamValue *parm = new CIMParamValue (out[i]); | CIMParamValue *parm = new CIMParamValue (out[i]); |
jint jParm = DEBUG_ConvertCToJava (CIMParamValue*, jint, parm); | jint jParm = DEBUG_ConvertCToJava (CIMParamValue*, jint, parm); |
|
|
jEnv->SetObjectArrayElement(jOut,i, | jEnv->SetObjectArrayElement(jOut,i, |
jEnv->NewObject(JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewI,jParm)); | jEnv->NewObject(JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewI,jParm)); |
} | } |
|
} |
return DEBUG_ConvertCToJava (CIMValue*, jint, val); | return DEBUG_ConvertCToJava (CIMValue*, jint, val); |
} | } |
Catch(jEnv); | Catch(jEnv); |
|
|
Array<CIMParamValue> in; | Array<CIMParamValue> in; |
Array<CIMParamValue> out; | Array<CIMParamValue> out; |
| |
|
if (jIn) |
|
{ |
for (int i=0,m=jEnv->GetArrayLength(jIn); i<m; i++) { | for (int i=0,m=jEnv->GetArrayLength(jIn); i<m; i++) { |
JMPIjvm::checkException(jEnv); | JMPIjvm::checkException(jEnv); |
| |
|
|
| |
in.append(*p); | in.append(*p); |
} | } |
|
} |
try { | try { |
checkNs(cop,jNs); | checkNs(cop,jNs); |
CIMValue *val=new CIMValue(cCc->invokeMethod(cop->getNameSpace(),*cop,method,in,out)); | CIMValue *val=new CIMValue(cCc->invokeMethod(cop->getNameSpace(),*cop,method,in,out)); |
| |
|
if (jOut) |
|
{ |
for (int i=0,m=out.size(),o=jEnv->GetArrayLength(jOut); i<m && i<o; i++) { | for (int i=0,m=out.size(),o=jEnv->GetArrayLength(jOut); i<m && i<o; i++) { |
CIMParamValue *parm = new CIMParamValue (out[i]); | CIMParamValue *parm = new CIMParamValue (out[i]); |
jint jParm = DEBUG_ConvertCToJava (CIMParamValue*, jint, parm); | jint jParm = DEBUG_ConvertCToJava (CIMParamValue*, jint, parm); |
|
|
i, | i, |
jEnv->NewObject(JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewI,jParm)); | jEnv->NewObject(JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewI,jParm)); |
} | } |
|
} |
jCv = DEBUG_ConvertCToJava (CIMValue*, jint, val); | jCv = DEBUG_ConvertCToJava (CIMValue*, jint, val); |
} | } |
Catch(jEnv); | Catch(jEnv); |
|
|
* Signature: (I)V | * Signature: (I)V |
*/ | */ |
JNIEXPORT void JNICALL Java_org_pegasus_jmpi_SelectExp__1finalize | JNIEXPORT void JNICALL Java_org_pegasus_jmpi_SelectExp__1finalize |
(JNIEnv *jEnv, jobject jThs, jint jEselx) |
(JNIEnv *jEnv, jobject jThs, jint jWQLStmt) |
{ | { |
CMPI_SelectExp *eSelx = DEBUG_ConvertJavaToC (jint, CMPI_SelectExp*, jEselx); |
WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jint, WQLSelectStatement*, jWQLStmt); |
| |
delete eSelx; |
delete wql_stmt; |
| |
DEBUG_ConvertCleanup (jint, jEselx); |
DEBUG_ConvertCleanup (jint, jWQLStmt); |
} | } |
| |
/* | /* |
|
|
(JNIEnv *jEnv, jobject jThs, jstring jQuery) | (JNIEnv *jEnv, jobject jThs, jstring jQuery) |
{ | { |
const char *pszQuery = jEnv->GetStringUTFChars (jQuery, NULL); | const char *pszQuery = jEnv->GetStringUTFChars (jQuery, NULL); |
CMPI_SelectExp *eSelx = NULL; |
WQLSelectStatement *wql_stmt = NULL; |
WQLSelectStatement *stmt = NULL; |
|
String queryLanguage (CALL_SIGN_WQL); | String queryLanguage (CALL_SIGN_WQL); |
String query (pszQuery); | String query (pszQuery); |
| |
stmt = new WQLSelectStatement (queryLanguage, query); |
wql_stmt = new WQLSelectStatement (queryLanguage, query); |
eSelx = new CMPI_SelectExp (stmt); |
DDD(PEGASUS_STD(cout)<<"--- Java_org_pegasus_jmpi_SelectExp__1newSelectExp: wql_stmt = "<<PEGASUS_STD(hex)<<(int)wql_stmt<<PEGASUS_STD(dec)<<PEGASUS_STD(endl)); |
|
|
|
try |
|
{ |
|
WQLParser::parse (query, *wql_stmt); |
|
} |
|
catch (const Exception &e) |
|
{ |
|
cerr << "Java_org_pegasus_jmpi_SelectExp__1newSelectExp: Caught: " << e.getMessage () << endl; |
|
} |
| |
jEnv->ReleaseStringUTFChars (jQuery, pszQuery); | jEnv->ReleaseStringUTFChars (jQuery, pszQuery); |
| |
return DEBUG_ConvertCToJava (CMPI_SelectExp *, jint, eSelx); |
return DEBUG_ConvertCToJava (WQLSelectStatement *, jint, wql_stmt); |
} | } |
| |
/* | /* |
|
|
* Signature: (I)Ljava/lang/String; | * Signature: (I)Ljava/lang/String; |
*/ | */ |
JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_SelectExp__1getSelectString | JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_SelectExp__1getSelectString |
(JNIEnv *jEnv, jobject jThs, jint jEselx) |
(JNIEnv *jEnv, jobject jThs, jint jWQLStmt) |
{ | { |
CMPI_SelectExp *eSelx = DEBUG_ConvertJavaToC (jint, CMPI_SelectExp*, jEselx); |
WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jint, WQLSelectStatement*, jWQLStmt); |
|
String cond; |
| |
return (jstring)jEnv->NewStringUTF (eSelx->cond.getCString ()); |
if (wql_stmt) |
|
{ |
|
try |
|
{ |
|
cond = wql_stmt->getQuery (); |
|
} |
|
catch (const Exception &e) |
|
{ |
|
cerr << "Java_org_pegasus_jmpi_SelectExp__1getSelectString: Caught: " << e.getMessage () << endl; |
|
|
|
cond = ""; |
|
} |
|
} |
|
else |
|
{ |
|
cond = ""; |
|
} |
|
|
|
return (jstring)jEnv->NewStringUTF (cond.getCString ()); |
} | } |
| |
// ------------------------------------- | // ------------------------------------- |
|
|
* Signature: (II)I | * Signature: (II)I |
*/ | */ |
JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyInstance | JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyInstance |
(JNIEnv *jEnv, jobject jThs, jint jEselx, jint jciInstance) |
(JNIEnv *jEnv, jobject jThs, jint jWQLStmt, jint jciInstance) |
{ | { |
CMPI_SelectExp *eSelx = DEBUG_ConvertJavaToC (jint, CMPI_SelectExp*, jEselx); |
WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jint, WQLSelectStatement*, jWQLStmt); |
CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciInstance); | CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciInstance); |
CIMInstance *ciRet = 0; | CIMInstance *ciRet = 0; |
| |
if ( !eSelx |
if ( !wql_stmt |
|| !eSelx->wql_stmt |
|| !ci |
) | ) |
{ | { |
return 0; | return 0; |
|
|
| |
if (ciRet) | if (ciRet) |
{ | { |
eSelx->wql_stmt->applyProjection (*ciRet, false); |
try |
|
{ |
|
wql_stmt->applyProjection (*ciRet, false); |
|
} |
|
catch (const Exception &e) |
|
{ |
|
cerr << "Java_org_pegasus_jmpi_JMPISelectList__1applyInstance: Caught: " << e.getMessage () << endl; |
|
|
|
return 0; |
|
} |
} | } |
| |
return DEBUG_ConvertCToJava (CIMInstance *, jint, ciRet); | return DEBUG_ConvertCToJava (CIMInstance *, jint, ciRet); |
|
|
* Signature: (II)I | * Signature: (II)I |
*/ | */ |
JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyClass | JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyClass |
(JNIEnv *jEnv, jobject jThs, jint jEselx, jint jciClass) |
(JNIEnv *jEnv, jobject jThs, jint jWQLStmt, jint jciClass) |
{ | { |
CMPI_SelectExp *eSelx = DEBUG_ConvertJavaToC (jint, CMPI_SelectExp*, jEselx); |
WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jint, WQLSelectStatement*, jWQLStmt); |
CIMClass *cc = DEBUG_ConvertJavaToC (jint, CIMClass*, jciClass); | CIMClass *cc = DEBUG_ConvertJavaToC (jint, CIMClass*, jciClass); |
CIMClass *ccRet = NULL; | CIMClass *ccRet = NULL; |
| |
if ( !eSelx |
if (!wql_stmt) |
|| !eSelx->wql_stmt |
|
) |
|
{ | { |
return 0; | return 0; |
} | } |
|
|
{ | { |
CIMObject co (cc->clone ()); | CIMObject co (cc->clone ()); |
| |
eSelx->wql_stmt->applyProjection (co, false); |
try |
|
{ |
|
wql_stmt->applyProjection (co, false); |
|
} |
|
catch (const Exception &e) |
|
{ |
|
cerr << "Java_org_pegasus_jmpi_JMPISelectList__1applyClass: Caught: " << e.getMessage () << endl; |
|
|
|
return 0; |
|
} |
| |
ccRet = new CIMClass (co); | ccRet = new CIMClass (co); |
| |
|
|
* Signature: (II)Z | * Signature: (II)Z |
*/ | */ |
JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance | JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance |
(JNIEnv *jEnv, jobject jThs, jint jEselx, jint jciInstance) |
(JNIEnv *jEnv, jobject jThs, jint jWQLStmt, jint jciInstance) |
{ | { |
CMPI_SelectExp *eSelx = DEBUG_ConvertJavaToC (jint, CMPI_SelectExp*, jEselx); |
WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jint, WQLSelectStatement*, jWQLStmt); |
CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciInstance); | CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciInstance); |
| |
if ( !eSelx |
if ( !wql_stmt |
|| !eSelx->wql_stmt |
|| !ci |
) | ) |
{ | { |
return 0; | return 0; |
} | } |
| |
if (eSelx->wql_stmt) |
try |
{ | { |
return eSelx->wql_stmt->evaluate (*ci); |
return wql_stmt->evaluate (*ci); |
} | } |
|
catch (const Exception &e) |
|
{ |
|
cerr << "Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance: Caught: " << e.getMessage () << endl; |
| |
return false; | return false; |
} | } |
|
} |
| |
} // extern "C" | } // extern "C" |
| |