Browse Source

CodeGen improvements - generate comments

JNI-106
heck 5 years ago
parent
commit
75704fa9f5
  1. 124
      src/gen_java_Engine.ysl2

124
src/gen_java_Engine.ysl2

@ -17,8 +17,7 @@ tstylesheet {
final public class «$cname» extends AbstractEngine implements EngineInterface { final public class «$cname» extends AbstractEngine implements EngineInterface {
public «$cname»() throws pEpException { } public «$cname»() throws pEpException { }
`` apply "method"
`` apply "method", mode=plain
`` apply "basic" `` apply "basic"
} }
@ -42,8 +41,8 @@ tstylesheet {
const "jtype" call "toJava" with "type", "@type"; const "jtype" call "toJava" with "type", "@type";
|| ||
private native «$itype» _«@name»(`apply "parm/*", mode=basic_iparm`);
// CodeGen "basic"
public «$jtype» «@name»(`apply "parm/*", mode=basic_parm`) { public «$jtype» «@name»(`apply "parm/*", mode=basic_parm`) {
|| ||
apply "parm/*", mode=basic_parm_set; apply "parm/*", mode=basic_parm_set;
@ -71,13 +70,12 @@ tstylesheet {
|| ||
} }
private native «$itype» _«@name»(`apply "parm/*", mode=basic_iparm`);
|| ||
} }
template "basic" mode=java_interface { template "basic" mode=java_interface {
const "itype" call "toIntermediate" with "type", "@type";
const "jtype" call "toJava" with "type", "@type"; const "jtype" call "toJava" with "type", "@type";
|| ||
public «$jtype» «@name»(`apply "parm/*", mode=basic_parm`); public «$jtype» «@name»(`apply "parm/*", mode=basic_parm`);
|| ||
@ -173,12 +171,18 @@ tstylesheet {
} }
} }
template "method", mode=plain { template "method" {
const "singlereturn", "count(parm/creates|parm/returns|parm/inout[../int]) = 1"; const "singlereturn", "count(parm/creates|parm/returns|parm/inout[../int]) = 1";
const "multireturn", "count(parm/creates|parm/returns|parm/inout[../int]) > 1"; const "multireturn", "count(parm/creates|parm/returns|parm/inout[../int]) > 1";
||
//CodeGen "method"
||
if "$multireturn" { if "$multireturn" {
|| ||
//CodeGen "mutlireturn" - class for return type
private class _«@name»_Return { private class _«@name»_Return {
`` apply "parm[creates|returns|inout[../int]]", 1, mode=intermediate with "public", 1; `` apply "parm[creates|returns|inout[../int]]", 1, mode=intermediate with "public", 1;
} }
@ -187,81 +191,81 @@ tstylesheet {
} }
|| ||
private native `call "returnInter"` _«@name»(
`` apply "parm[in|inout]", 2, mode=intermediate
) throws pEpException;
public `call "returnJava"` «@name»( public `call "returnJava"` «@name»(
`` apply "parm[in|inout]", 2, mode=java `` apply "parm[in|inout]", 2, mode=java
) throws pEpException ) throws pEpException
{ {
|| ||
apply "parm", mode=convertIn; apply "parm", mode=convertIn;
if "$singlereturn" choose { if "$singlereturn" {
choose {
// TODO factorize type conversion with multireturn and gen_java_message.java when "count(parm[returns][stringlist|string|sstring]) > 0"
|> return Utils.toUTF16(_«@name»(`apply "parm[in]", mode=call;`));
when "count(parm[returns][stringlist|string|sstring]) > 0"
|> return Utils.toUTF16(_«@name»(`apply "parm[in]", mode=call;`)); when "count(parm[returns]/stringpairlist) > 0"
when "count(parm[returns]/stringpairlist) > 0" ||
|| ArrayList<Pair<byte[], byte[]>> glist = _«@name»(`apply "parm[in]", mode=call;`);
ArrayList<Pair<byte[], byte[]>> glist = _«@name»(`apply "parm[in]", mode=call;`); if(glist != null){
if(glist != null){ ArrayList<Pair<String, String>> list = new ArrayList<Pair<String, String>>();
ArrayList<Pair<String, String>> list = new ArrayList<Pair<String, String>>(); for (Pair<byte[],byte[]> i : glist) {
for (Pair<byte[],byte[]> i : glist) { list.add(new Pair<String, String>(Utils.toUTF16(i.first), Utils.toUTF16(i.second)));
list.add(new Pair<String, String>(Utils.toUTF16(i.first), Utils.toUTF16(i.second))); }
return list;
} }
return list; return null;
} ||
return null;
|| when "count(parm[returns]/identity) > 0"
|> return new Identity(_«@name»(`apply "parm[in]", mode=call;`));
when "count(parm[returns]/identity) > 0"
|> return new Identity(_«@name»(`apply "parm[in]", mode=call;`)); when "count(parm[returns]/identitylist) > 0"
when "count(parm[returns]/identitylist) > 0" ||
|| Vector<_Identity> glist = _«@name»(`apply "parm[in]", mode=call;`);
Vector<_Identity> glist = _«@name»(`apply "parm[in]", mode=call;`); if(glist != null){
if(glist != null){ Vector<Identity> list = new Vector<Identity>();
Vector<Identity> list = new Vector<Identity>(); for (_Identity i : glist) {
for (_Identity i : glist) { list.add(new Identity(i));
list.add(new Identity(i)); }
return list;
} }
return list; return null;
} ||
return null;
||
otherwise
|> return _«@name»(`apply "parm[in]", mode=call;`);
}
if "$multireturn" otherwise
|| |> return _«@name»(`apply "parm[in]", mode=call;`);
_«@name»_Return _result = _«@name»(`apply "parm[in|inout]", mode=call;`); }
«@name»_Return result = new «@name»_Return(); }
`` apply "parm[creates|returns|inout[../int]]", mode=convertOut;
return result;
||
if "not($singlereturn) and not($multireturn)" if "$multireturn" {
|| ||
_«@name»(`apply "parm[in]", mode=call;`); _«@name»_Return _result = _«@name»(`apply "parm[in|inout]", mode=call;`);
|| «@name»_Return result = new «@name»_Return();
`` apply "parm[creates|returns|inout[../int]]", mode=convertOut;
return result;
||
}
if "not($singlereturn) and not($multireturn)" {
||
_«@name»(`apply "parm[in]", mode=call;`);
||
}
|| ||
} }
private native `call "returnInter"` _«@name»(
`` apply "parm[in|inout]", 2, mode=intermediate
) throws pEpException;
|| ||
} }
template "method", mode=java_interface { template "method", mode=java_interface {
const "singlereturn", "count(parm/creates|parm/returns|parm/inout[../int]) = 1";
const "multireturn", "count(parm/creates|parm/returns|parm/inout[../int]) > 1";
|| ||
public `call "returnJava"` «@name»( public `call "returnJava"` «@name»(
`` apply "parm[in|inout]", 2, mode=java `` apply "parm[in|inout]", 2, mode=java
) throws pEpException; ) throws pEpException;
|| ||
} }

Loading…
Cancel
Save