@ -62,16 +62,19 @@ tstylesheet {
||
||
apply "parm[returns|creates]", mode=return;
choose {
choose {
when "$returning > 1" {
when "$returning > 1" {
apply "parm[returns|creates]", mode=return;
apply "parm[1]", mode=return {
||
with "name" > result
jobject result_ = NULL;
with "jtype" > Engine$_«@name»_Return
jclass clazz_result_ = findClass(env, "org/pEp/jniadapter/Engine$_«@name»_Return");
with "sig" > (Lorg/pEp/jniadapter/Engine;)V
assert(clazz_result_);
with "jnitype" > InnerClass
jmethodID constructor_result_ = env->GetMethodID(clazz_result_, "<init>", "(Lorg/pEp/jniadapter/Engine;)V");
}
assert(constructor_result_);
result_ = env->NewObject(clazz_result_, constructor_result_, obj);
||
apply "parm[returns|creates]", mode=setresult
apply "parm[returns|creates]", mode=setresult
with "jtype" > org/pEp/jniadapter/Engine$_«@name»_Return
with "jtype" > org/pEp/jniadapter/Engine$_«@name»_Return
@ -82,7 +85,6 @@ tstylesheet {
}
}
when "$returning = 1" {
when "$returning = 1" {
apply "parm[returns|creates]", mode=return;
||
||
return «name(parm[returns|creates]/*[3])»_;
return «name(parm[returns|creates]/*[3])»_;
@ -120,42 +122,13 @@ tstylesheet {
param "type", "name(*[2])";
param "type", "name(*[2])";
param "jtype" call "toJava" with "type", "$type";
param "jtype" call "toJava" with "type", "$type";
param "name", "name(*[3])";
param "name", "name(*[3])";
param "jnitype" choose {
when "$type = 'message' or $type = 'identity'" > jlong
when "ancestor::namespace/child::enum[@name=$type]" > jint
when "$type = 'stringlist'" > jbyteArray
otherwise >
}
param "retname", "$name";
param "sig" choose {
when "$type = 'message' or $type = 'identity'" > (J)V
when "ancestor::namespace/child::enum[@name=$type]" > (I)V
when "$type = 'stringlist'" > (Ljava.lang.Object;)V
otherwise > ()V
}
choose {
choose {
when "$jnitype = 'jbyteArray'"
when "$type = 'stringlist' or $type = 'stringpairlist' or $type = 'identity' or $type = 'identitylist'"
||
jobject «$name»_ = NULL;
if (_«$retname»)
«$name»_ = from_stringlist(env, _«$retname»);
||
when "$type = 'identity'"
||
||
jobject «$name»_ = NULL;
jobject «$name»_ = NULL;
if (_«$retname»)
if (_«$name»)
«$name»_ = from_identity(env, _«$retname»);
«$name»_ = from_«$type»(env, _«$name»);
||
when "$type = 'stringpairlist'"
||
jobject «$name»_ = NULL;
if (_«$retname»)
«$name»_ = from_stringpairlist(env, _«$retname»);
||
||
@ -192,26 +165,14 @@ tstylesheet {
}
}
otherwise {
otherwise {
| jobject «$name»_ = NULL;
indent(0);
if "$retname != 'result'" > if (_«$retname»)
> {\n
||
||
jobject «$name»_ = NULL;
if (_«$name») {
jclass clazz_«$name»_ = findClass(env, "org/pEp/jniadapter/«$jtype»");
jclass clazz_«$name»_ = findClass(env, "org/pEp/jniadapter/«$jtype»");
assert(clazz_«$name»_);
assert(clazz_«$name»_);
jmethodID constructor_«$name»_ = env->GetMethodID(clazz_«$name»_, "<init>", "«$sig» ");
jmethodID constructor_«$name»_ = env->GetMethodID(clazz_«$name»_, "<init>", "(J)V ");
assert(constructor_«$name»_);
assert(constructor_«$name»_);
||
«$name»_ = env->NewObject(clazz_«$name»_, constructor_«$name»_, (jlong) _«$name»);
indent(1);
> «$name»_ = env->NewObject(clazz_«$name»_, constructor_«$name»_
choose {
when "$jnitype = 'InnerClass'" > , obj
when "$jnitype != ''" > , («$jnitype») _«$retname»
}
> );\n
||
}
}
||
||