add forValue(int) method to EnumTemplate so that enum items can be resolved by given... 76/1176/1
authorMichal Rehak <mirehak@cisco.com>
Fri, 13 Sep 2013 03:36:43 +0000 (05:36 +0200)
committerMichal Rehak <mirehak@cisco.com>
Fri, 13 Sep 2013 03:39:08 +0000 (05:39 +0200)
Signed-off-by: Michal Rehak <mirehak@cisco.com>
code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/EnumTemplate.xtend

index 9fe871c399b93ce371219b7d24a811569a53380d..2c3ad2025735b3dbd0aa910edf649cef9838483b 100644 (file)
@@ -2,6 +2,9 @@ package org.opendaylight.yangtools.sal.java.api.generator
 \r
 import org.opendaylight.yangtools.sal.binding.model.api.Enumeration\r
 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType\r
+import java.util.Map\r
+import java.util.HashMap\r
+\r
 /**\r
  * Template for generating JAVA enumeration type. \r
  */\r
@@ -45,10 +48,27 @@ class EnumTemplate extends BaseTemplate {
         ENDFOR»;\r
         \r
             int value;\r
+            static java.util.Map<java.lang.Integer, «enums.name»> valueMap;\r
+\r
+            static {\r
+                valueMap = new java.util.HashMap<>();\r
+                for («enums.name» enumItem : «enums.name».values())\r
+                {\r
+                    valueMap.put(enumItem.value, enumItem);\r
+                }\r
+            }\r
         \r
             private «enums.name»(int value) {\r
                 this.value = value;\r
             }\r
+            \r
+            /**\r
+             * @param valueArg\r
+             * @return corresponding «enums.name» item\r
+             */\r
+            public static «enums.name» forValue(int valueArg) {\r
+                return valueMap.get(valueArg);\r
+            }\r
         }\r
     '''\r
 }
\ No newline at end of file