From 99e7f7ef909be3031a2042128e5ed60bc13328f5 Mon Sep 17 00:00:00 2001 From: heck Date: Wed, 1 Jul 2020 19:02:08 +0200 Subject: [PATCH] CodeGen - convert gone --- src/gen_cpp_Engine.ysl2 | 9 +-- src/gen_java_Engine.ysl2 | 116 ++++++++++++++++++--------------------- 2 files changed, 53 insertions(+), 72 deletions(-) diff --git a/src/gen_cpp_Engine.ysl2 b/src/gen_cpp_Engine.ysl2 index c93b0cd..7bfb086 100644 --- a/src/gen_cpp_Engine.ysl2 +++ b/src/gen_cpp_Engine.ysl2 @@ -298,14 +298,7 @@ tstylesheet { } function "mangle" { - const "convert", "1"; - - choose { - when "$convert" - > «concat('Java_foundation_pEp_jniadapter_', ../@name, '__1', str:replace(@name, '_', '_1'))» - otherwise - > «concat('Java_foundation_pEp_jniadapter_', ../@name, '_', str:replace(@name, '_', '_1'))» - } + > «concat('Java_foundation_pEp_jniadapter_', ../@name, '__1', str:replace(@name, '_', '_1'))» } template "parm", mode=sig { diff --git a/src/gen_java_Engine.ysl2 b/src/gen_java_Engine.ysl2 index 486d66a..876a089 100644 --- a/src/gen_java_Engine.ysl2 +++ b/src/gen_java_Engine.ysl2 @@ -176,12 +176,10 @@ tstylesheet { } template "method", mode=plain { - const "convert", "1"; const "singlereturn", "count(parm/creates|parm/returns|parm/inout[../int]) = 1"; const "multireturn", "count(parm/creates|parm/returns|parm/inout[../int]) > 1"; if "$multireturn" { - if "$convert" || private class _«@name»_Return { `` apply "parm[creates|returns|inout[../int]]", 1, mode=intermediate with "public", 1; @@ -190,90 +188,80 @@ tstylesheet { || } - if "$convert" || private native `call "returnInter"` _«@name»( `` apply "parm[in|inout]", 2, mode=intermediate ) throws pEpException; - || - - || - public `if "not($convert)" > native ``call "returnJava"` «@name»( + public `call "returnJava"` «@name»( `` apply "parm[in|inout]", 2, mode=java - ) throws pEpException`if "not($convert)" > ;` + ) throws pEpException + { || - if "$convert" { - | { - apply "parm", mode=convertIn; - - 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]/stringpairlist) > 0" - || - ArrayList> glist = _«@name»(`apply "parm[in]", mode=call;`); - if(glist != null){ - ArrayList> list = new ArrayList>(); - for (Pair i : glist) { - list.add(new Pair(Utils.toUTF16(i.first), Utils.toUTF16(i.second))); - } - return list; - } - return null; - || - - when "count(parm[returns]/identity) > 0" - |> return new Identity(_«@name»(`apply "parm[in]", mode=call;`)); - when "count(parm[returns]/identitylist) > 0" - || - Vector<_Identity> glist = _«@name»(`apply "parm[in]", mode=call;`); - if(glist != null){ - Vector list = new Vector(); - for (_Identity i : glist) { - list.add(new Identity(i)); - } - return list; - } - return null; - || - otherwise - |> return _«@name»(`apply "parm[in]", mode=call;`); - } + apply "parm", mode=convertIn; - if "$multireturn" - || - _«@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 "$singlereturn" choose { - if "not($singlereturn) and not($multireturn)" - || - _«@name»(`apply "parm[in]", mode=call;`); - || + // 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]/stringpairlist) > 0" + || + ArrayList> glist = _«@name»(`apply "parm[in]", mode=call;`); + if(glist != null){ + ArrayList> list = new ArrayList>(); + for (Pair i : glist) { + list.add(new Pair(Utils.toUTF16(i.first), Utils.toUTF16(i.second))); + } + return list; + } + return null; + || + + when "count(parm[returns]/identity) > 0" + |> return new Identity(_«@name»(`apply "parm[in]", mode=call;`)); + when "count(parm[returns]/identitylist) > 0" + || + Vector<_Identity> glist = _«@name»(`apply "parm[in]", mode=call;`); + if(glist != null){ + Vector list = new Vector(); + for (_Identity i : glist) { + list.add(new Identity(i)); + } + return list; + } + return null; + || + otherwise + |> return _«@name»(`apply "parm[in]", mode=call;`); } + + if "$multireturn" + || + _«@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;`); + || + + || + } || } template "method", mode=java_interface { - const "convert", "count(parm/stringlist|parm/stringpairlist|parm/string|parm/identity|parm/identitylist) > 0"; const "singlereturn", "count(parm/creates|parm/returns|parm/inout[../int]) = 1"; const "multireturn", "count(parm/creates|parm/returns|parm/inout[../int]) > 1"; || - public `if "not($convert)" > native ``call "returnJava"` «@name»( + public `call "returnJava"` «@name»( `` apply "parm[in|inout]", 2, mode=java ) throws pEpException;