diff --git a/.hgignore b/.hgignore index fb8e188..7b0004c 100644 --- a/.hgignore +++ b/.hgignore @@ -2,6 +2,7 @@ syntax: glob *.class *.jar +*.swp org_pEp_*.h diff --git a/src/Makefile b/src/Makefile index 7b1a789..eaadf29 100644 --- a/src/Makefile +++ b/src/Makefile @@ -3,7 +3,7 @@ JAR=jniadapter.jar all: $(JAR) $(LIBRARY) -JAVASOURCE=$(wildcard org/pEp/jniadapter/*.java) +JAVASOURCE=$(wildcard org/pEp/jniadapter/*.java) org/pEp/jniadapter/pEpException.java $(JAR): $(JAVASOURCE) javac $< @@ -17,11 +17,16 @@ org_pEp_jniadapter_Engine.o: org_pEp_jniadapter_Engine.h org_pEp_jniadapter_Engi $(LIBRARY): org_pEp_jniadapter_Engine.o ar -r $@ $< -.PHONY: clean +.PHONY: clean generate distclean clean: rm -f $(JAR) $(LIBRARY) rm -f org_pEp_jniadapter_Engine.o rm -f org_pEp_jniadapter_Engine.h + rm -f *.class rm -f org/pEp/jniadapter/*.class + rm -f org/pEp/jniadapter/pEp*.java + +org/pEp/jniadapter/pEpException.java: pEp.yml2 gen_java_exceptions.ysl2 + yml2proc -y gen_java_exceptions.ysl2 $< -o $@ diff --git a/src/gen_java_exceptions.ysl2 b/src/gen_java_exceptions.ysl2 new file mode 100644 index 0000000..dd56820 --- /dev/null +++ b/src/gen_java_exceptions.ysl2 @@ -0,0 +1,57 @@ +include yslt.yml2 + +tstylesheet { + function "UCASE" { + param "text"; + + value "translate($text, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')"; + } + + function "lcase" { + param "text"; + + value "translate($text, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"; + } + + function "CamelCase" { + param "text"; + + choose { + when "contains($text, '-')" { + const "tokens", "str:tokenize($text, '-')"; + for "$tokens" { + choose { + when ".='pEp'" > pEp + otherwise { + call "UCASE" with "text", "substring(., 1, 1)"; + call "lcase" with "text", "substring(., 2)"; + } + } + } + } + otherwise | unsupported + } + } + + template "/" { + | package org.pEp.jniadapter; + | + | public class pEpException extends Exception { } + + apply "namespace/enum", 0; + } + + function "exception" { + param "name"; + + document("org/pEp/jniadapter/{$name}.java") { + | package org.pEp.jniadapter; + | + | class «$name» extends pEpException { } + } + } + + template "enum" for "*" call "exception" + with "name" call "CamelCase" with "text", "name(.)"; +} + diff --git a/src/org/pEp/jniadapter/InitCannotLoadGPGME.java b/src/org/pEp/jniadapter/InitCannotLoadGPGME.java deleted file mode 100644 index 6168222..0000000 --- a/src/org/pEp/jniadapter/InitCannotLoadGPGME.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.pEp.jniadapter; - -public class InitCannotLoadGPGME extends pEpException { } - diff --git a/src/org/pEp/jniadapter/InitCannotOpenDB.java b/src/org/pEp/jniadapter/InitCannotOpenDB.java deleted file mode 100644 index 48cfbdd..0000000 --- a/src/org/pEp/jniadapter/InitCannotOpenDB.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.pEp.jniadapter; - -public class InitCannotOpenDB extends pEpException { } - diff --git a/src/org/pEp/jniadapter/InitCannotOpenSystemDB.java b/src/org/pEp/jniadapter/InitCannotOpenSystemDB.java deleted file mode 100644 index c841f8f..0000000 --- a/src/org/pEp/jniadapter/InitCannotOpenSystemDB.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.pEp.jniadapter; - -public class InitCannotOpenSystemDB extends pEpException { } - diff --git a/src/org/pEp/jniadapter/InitGPGMEInitFailed.java b/src/org/pEp/jniadapter/InitGPGMEInitFailed.java deleted file mode 100644 index 8eb2f3a..0000000 --- a/src/org/pEp/jniadapter/InitGPGMEInitFailed.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.pEp.jniadapter; - -public class InitGPGMEInitFailed extends pEpException { } - diff --git a/src/org/pEp/jniadapter/InitSQLite3WithoutMutex.java b/src/org/pEp/jniadapter/InitSQLite3WithoutMutex.java deleted file mode 100644 index ccfa893..0000000 --- a/src/org/pEp/jniadapter/InitSQLite3WithoutMutex.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.pEp.jniadapter; - -public class InitSQLite3WithoutMutex extends pEpException { } - diff --git a/src/org/pEp/jniadapter/pEpException.java b/src/org/pEp/jniadapter/pEpException.java deleted file mode 100644 index efd084a..0000000 --- a/src/org/pEp/jniadapter/pEpException.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.pEp.jniadapter; - -public class pEpException extends Exception { } - diff --git a/src/pEp.yml2 b/src/pEp.yml2 new file mode 100644 index 0000000..b8069b7 --- /dev/null +++ b/src/pEp.yml2 @@ -0,0 +1,49 @@ +decl namespace @name; +decl enum @name; + +namespace pEp { + enum pEp_status { + pEp_status_ok > 0 + + pEp_init_cannot_load_gpgme > 0x0110 + pEp_init_gpgme_init_failed > 0x0111 + + pEp_init_sqlite3_without_mutex > 0x0120 + pEp_init_cannot_open_db > 0x0121 + pEp_init_cannot_open_system_db > 0x0122 + + pEp_key_not_found > 0x0201 + pEp_key_has_ambig_name > 0x0202 + pEp_get_key_failed > 0x0203 + + pEp_cannot_find_identity > 0x0301 + pEp_cannot_set_person > 0x0381 + pEp_cannot_set_pgp_keypair > 0x0382 + pEp_cannot_set_identity > 0x0383 + + pEp_unencrypted > 0x0400 + pEp_verified > 0x0401 + pEp_decrypted > 0x0402 + pEp_decrypted_and_verified > 0x0403 + pEp_decrypt_wrong_format > 0x0404 + pEp_decrypt_no_key > 0x0405 + pEp_decrypt_signature_does_not_match > 0x0406 + pEp_verify_no_key > 0x0407 + pEp_verified_and_trusted > 0x0408 + pEp_cannot_decrypt_unknown > 0x04ff + + pEp_safeword_not_found > 0x0501 + + pEp_cannot_create_key > 0x0601 + pEp_cannot_send_key > 0x0602 + + pEp_commit_failed > 0xff01 + + pEp_cannot_create_temp_file > -5 + pEp_illegal_value > -4 + pEp_buffer_too_small > -3 + pEp_out_of_memory > -2 + pEp_unknown_error > -1 + }; +}; +