From 702b744f9c16bd564f5427b3b1614171f5a51d03 Mon Sep 17 00:00:00 2001 From: Edouard Tisserant Date: Mon, 7 Dec 2015 16:57:54 +0100 Subject: [PATCH] Enum bug fixed --- src/gen_java_Message.ysl2 | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/gen_java_Message.ysl2 b/src/gen_java_Message.ysl2 index 3009872..7b5fec2 100644 --- a/src/gen_java_Message.ysl2 +++ b/src/gen_java_Message.ysl2 @@ -64,23 +64,27 @@ tstylesheet { `` apply "*", mode=value ; - static class Management { - public static final HashMap tag = - new HashMap(); - } - public final int value; - «$jname»(int value) { + private static HashMap intMap; + + private «$jname»(int value) { this.value = value; - fill(value); } - private void fill(int value) { - Management.tag.put(value, this); + public static «$jname» getByInt(int value){ + if (intMap == null) { + intMap = new HashMap(); + for («$jname» s : «$jname».values()) { + intMap.put(s.value, s); + } + } + if (intMap.containsKey(value)) { + return intMap.get(value); + } + return null; } } - || } @@ -182,7 +186,7 @@ tstylesheet { || private native int _get«$name»(); public «$itype» get«$name»() { - return «$itype».Management.tag.get(_get«$name»()); + return «$itype».getByInt(_get«$name»()); } private native void _set«$name»(int value); public void set«$name»(«$itype» value) {