From e5f3aa6b8a00e9ab2eda520124c72d22fdd0cb1f Mon Sep 17 00:00:00 2001 From: heck Date: Thu, 2 Jul 2020 19:21:59 +0200 Subject: [PATCH] Generate marker files for make Move exceptions into own subpkg foundation.pEp.jniadapter.exceptions --- .hgignore | 4 +- .../pEp/jniadapter/AbstractEngine.java | 3 +- src/foundation/pEp/jniadapter/Sync.java | 4 -- src/foundation/pEp/jniadapter/_Blob.java | 2 + src/gen_cpp_Engine.ysl2 | 5 +- src/gen_cpp_Message.ysl2 | 5 +- src/gen_java_Engine.ysl2 | 8 ++- src/gen_java_Message.ysl2 | 35 +++++++++-- src/gen_java_exceptions.ysl2 | 35 ----------- src/gen_throw_pEp_exception.ysl2 | 59 ++++++++++--------- .../pEp/jniadapter/test/jni88/TestMain.java | 2 + .../pEp/jniadapter/test/jni91/TestMain.java | 1 + .../pEp/jniadapter/test/jni92/TestMain.java | 1 + 13 files changed, 82 insertions(+), 82 deletions(-) delete mode 100644 src/gen_java_exceptions.ysl2 diff --git a/.hgignore b/.hgignore index 6a80d6a..551e718 100644 --- a/.hgignore +++ b/.hgignore @@ -24,8 +24,8 @@ foundation_pEp_jniadapter_Engine.* foundation_pEp_jniadapter_Identity.h foundation_pEp_jniadapter_Message.cc foundation_pEp_jniadapter_Message.h -throw_pEp_exception.cc -throw_pEp_exception.hh +#throw_pEp_exception.cc +#throw_pEp_exception.hh CipherSuite.java Color.java diff --git a/src/foundation/pEp/jniadapter/AbstractEngine.java b/src/foundation/pEp/jniadapter/AbstractEngine.java index e3af136..b4befa8 100644 --- a/src/foundation/pEp/jniadapter/AbstractEngine.java +++ b/src/foundation/pEp/jniadapter/AbstractEngine.java @@ -4,9 +4,8 @@ import java.util.ArrayList; import java.util.Vector; import foundation.pEp.jniadapter.Sync.DefaultCallback; +import foundation.pEp.jniadapter.exceptions.*; -import java.io.UnsupportedEncodingException; -import java.text.Normalizer; abstract class AbstractEngine extends UniquelyIdentifiable implements AbstractEngineInterface, AutoCloseable { static { diff --git a/src/foundation/pEp/jniadapter/Sync.java b/src/foundation/pEp/jniadapter/Sync.java index 7889340..55f2e2c 100644 --- a/src/foundation/pEp/jniadapter/Sync.java +++ b/src/foundation/pEp/jniadapter/Sync.java @@ -1,9 +1,5 @@ package foundation.pEp.jniadapter; -import foundation.pEp.jniadapter.Identity; -import foundation.pEp.jniadapter.Message; -import foundation.pEp.jniadapter.pEpException; - public interface Sync { diff --git a/src/foundation/pEp/jniadapter/_Blob.java b/src/foundation/pEp/jniadapter/_Blob.java index 0cbc732..4922abd 100644 --- a/src/foundation/pEp/jniadapter/_Blob.java +++ b/src/foundation/pEp/jniadapter/_Blob.java @@ -1,5 +1,7 @@ package foundation.pEp.jniadapter; +import foundation.pEp.jniadapter.exceptions.*; + public class _Blob { public byte[] data; public byte[] mime_type; diff --git a/src/gen_cpp_Engine.ysl2 b/src/gen_cpp_Engine.ysl2 index 7bfb086..ab337bc 100644 --- a/src/gen_cpp_Engine.ysl2 +++ b/src/gen_cpp_Engine.ysl2 @@ -5,7 +5,10 @@ tstylesheet { include ./types_c.ysl2 include ./types_java.ysl2 - template "/namespace[@name='pEp']" apply "interface", 0; + template "/namespace[@name='pEp']" { + apply "interface", 0; + document("gen_cpp_Engine.marker", "text") > "" + } template "interface" document("foundation_pEp_jniadapter_{@name}.cc", "text") || diff --git a/src/gen_cpp_Message.ysl2 b/src/gen_cpp_Message.ysl2 index a5f4496..963c681 100644 --- a/src/gen_cpp_Message.ysl2 +++ b/src/gen_cpp_Message.ysl2 @@ -5,7 +5,10 @@ tstylesheet { include ./textutils.ysl2 include ./types_c.ysl2 - template "/namespace[@name='pEp']" apply "struct", 0; + template "/namespace[@name='pEp']" { + apply "struct", 0; + document("gen_cpp_Message.marker", "text") > "" + } template "struct" { const "jname" call "CamelCase" with "text", "@name"; diff --git a/src/gen_java_Engine.ysl2 b/src/gen_java_Engine.ysl2 index 30256e6..db69b7c 100644 --- a/src/gen_java_Engine.ysl2 +++ b/src/gen_java_Engine.ysl2 @@ -4,7 +4,10 @@ tstylesheet { include ./textutils.ysl2 include ./types_java.ysl2 - template "/namespace[@name='pEp']" apply "interface", 0; + template "/namespace[@name='pEp']" { + apply "interface", 0; + document("gen_java_Engine.marker", "text") > "" + } template "interface" { const "cname" call "toJava" with "type", "@name"; @@ -12,6 +15,7 @@ tstylesheet { || package foundation.pEp.jniadapter; + import foundation.pEp.jniadapter.exceptions.*; import java.util.ArrayList; import java.util.Vector; @@ -265,7 +269,7 @@ tstylesheet { || public `call "returnJava"` «@name»( `` apply "parm[in|inout]", 2, mode=java - ) throws pEpException; + ); || } diff --git a/src/gen_java_Message.ysl2 b/src/gen_java_Message.ysl2 index e03f147..2610d2f 100644 --- a/src/gen_java_Message.ysl2 +++ b/src/gen_java_Message.ysl2 @@ -4,7 +4,10 @@ tstylesheet { include ./textutils.ysl2 include ./types_java.ysl2 - template "/namespace[@name='pEp']" apply "struct|enum|exception", 0; + template "/namespace[@name='pEp']" { + apply "struct|enum|exception", 0; + document("gen_java_Message.marker", "text") > "" + } template "struct" { const "cname" call "toJava" with "type", "@name"; @@ -12,6 +15,7 @@ tstylesheet { || package foundation.pEp.jniadapter; + import foundation.pEp.jniadapter.exceptions.*; import java.util.ArrayList; import java.util.Vector; import java.util.Date; @@ -77,23 +81,24 @@ tstylesheet { || } - template "enum|exception" { + template "enum" { const "jname" call "toJava" with "type", "@name"; document("foundation/pEp/jniadapter/{$jname}.java", "text") || - // CodeGen template enum|exception + // CodeGen template enum package foundation.pEp.jniadapter; import java.util.HashMap; - + `` apply ".", 0, mode=inner || + } - template "enum|exception", mode=inner { + template "enum", mode=inner { const "jname" call "CamelCase" with "text", "@name"; || - // CodeGen template enum|exception, mode=inner + // CodeGen template enum, mode=inner public enum «$jname» { `` apply "*", mode=value ; @@ -123,6 +128,24 @@ tstylesheet { || } + function "exception" { + param "name"; + + document "foundation/pEp/jniadapter/exceptions/{$name}.java", "text" { + | package foundation.pEp.jniadapter.exceptions; + | + | public class «$name» extends pEpException { + | public «$name»(String message) { + | super(message); + | } + | } + } + } + + template "exception" for "*[text()!=0]" call "exception" + with "name" call "CamelCase" with "text", "name(.)"; + + template "*", mode=entry { const "ctype", "name(.)"; const "type" call "toJava" with "type", "name(.)"; diff --git a/src/gen_java_exceptions.ysl2 b/src/gen_java_exceptions.ysl2 deleted file mode 100644 index ecdca21..0000000 --- a/src/gen_java_exceptions.ysl2 +++ /dev/null @@ -1,35 +0,0 @@ -include yslt.yml2 - -tstylesheet { - include ./textutils.ysl2 - - template "/" { - | package foundation.pEp.jniadapter; - | - | public class pEpException extends RuntimeException { - | public pEpException(String message) { - | super(message); - | } - | } - - apply "namespace/exception[@name='Status']", 0; - } - - function "exception" { - param "name"; - - document "foundation/pEp/jniadapter/{$name}.java", "text" { - | package foundation.pEp.jniadapter; - | - | public class «$name» extends pEpException { - | public «$name»(String message) { - | super(message); - | } - | } - } - } - - template "exception" for "*[text()!=0]" call "exception" - with "name" call "CamelCase" with "text", "name(.)"; -} - diff --git a/src/gen_throw_pEp_exception.ysl2 b/src/gen_throw_pEp_exception.ysl2 index 3c9d3ad..01602ac 100644 --- a/src/gen_throw_pEp_exception.ysl2 +++ b/src/gen_throw_pEp_exception.ysl2 @@ -18,42 +18,43 @@ tstylesheet { }; || - + document("gen_throw_pEp_exception.marker", "text") > "" } template "namespace" - || - #include - #include - #include "throw_pEp_exception.hh" + document("throw_pEp_exception.cc", "text") + || + #include + #include + #include "throw_pEp_exception.hh" - namespace pEp { - namespace JNIAdapter { - jint throw_pEp_Exception(JNIEnv *env, PEP_STATUS status) - { - jclass ex; - const char *ex_name; - - switch (status) { - `` apply "exception/*[text()!=0]", 4, mode=case - default: - assert(0); - ex_name = "Exception"; - } - - ex = env->FindClass(ex_name); - assert(ex); - - if (ex == NULL) { - ex = env->FindClass("java/lang/NoClassDefFoundError"); + namespace pEp { + namespace JNIAdapter { + jint throw_pEp_Exception(JNIEnv *env, PEP_STATUS status) + { + jclass ex; + const char *ex_name; + + switch (status) { + `` apply "exception/*[text()!=0]", 4, mode=case + default: + assert(0); + ex_name = "Exception"; + } + + ex = env->FindClass(ex_name); assert(ex); + + if (ex == NULL) { + ex = env->FindClass("java/lang/NoClassDefFoundError"); + assert(ex); + } + + return env->ThrowNew(ex, ex_name); } - - return env->ThrowNew(ex, ex_name); - } + }; }; - }; - || + || template "*", mode=case { | case `call "UCASE" with "text", "name(.)"`: diff --git a/test/java/foundation/pEp/jniadapter/test/jni88/TestMain.java b/test/java/foundation/pEp/jniadapter/test/jni88/TestMain.java index bc53fb5..68a15a6 100644 --- a/test/java/foundation/pEp/jniadapter/test/jni88/TestMain.java +++ b/test/java/foundation/pEp/jniadapter/test/jni88/TestMain.java @@ -1,5 +1,7 @@ package foundation.pEp.jniadapter.test.jni88; import foundation.pEp.jniadapter.*; +import foundation.pEp.jniadapter.exceptions.*; + import java.util.Vector; import java.lang.Thread; diff --git a/test/java/foundation/pEp/jniadapter/test/jni91/TestMain.java b/test/java/foundation/pEp/jniadapter/test/jni91/TestMain.java index 0f01ccf..be7f75d 100644 --- a/test/java/foundation/pEp/jniadapter/test/jni91/TestMain.java +++ b/test/java/foundation/pEp/jniadapter/test/jni91/TestMain.java @@ -1,5 +1,6 @@ package foundation.pEp.jniadapter.test.jni91; import foundation.pEp.jniadapter.*; +import foundation.pEp.jniadapter.exceptions.*; import java.lang.Thread; diff --git a/test/java/foundation/pEp/jniadapter/test/jni92/TestMain.java b/test/java/foundation/pEp/jniadapter/test/jni92/TestMain.java index 5a9d3c7..1ed476a 100644 --- a/test/java/foundation/pEp/jniadapter/test/jni92/TestMain.java +++ b/test/java/foundation/pEp/jniadapter/test/jni92/TestMain.java @@ -1,4 +1,5 @@ package foundation.pEp.jniadapter.test.jni92; +import foundation.pEp.jniadapter.exceptions.*; import foundation.pEp.jniadapter.test.utils.*; import foundation.pEp.pitytest.*; import foundation.pEp.jniadapter.*;