1 package org.opendaylight.yangtools.sal.java.api.generator
\r
3 import org.opendaylight.yangtools.sal.binding.model.api.Enumeration
\r
4 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType
\r
6 import java.util.HashMap
\r
9 * Template for generating JAVA enumeration type.
\r
11 class EnumTemplate extends BaseTemplate {
\r
15 * Enumeration which will be transformed to JAVA source code for enumeration
\r
17 val Enumeration enums
\r
20 * Constructs instance of this class with concrete <code>enums</code>.
\r
22 * @param enumeration which will be transformed to JAVA source code
\r
24 new(Enumeration enums) {
\r
25 super(enums as GeneratedType )
\r
31 * Generates only JAVA enumeration source code.
\r
33 * @return string with JAVA enumeration source code
\r
35 def generateAsInnerClass() {
\r
40 * Template method which generates enumeration body (declaration + enumeration items).
\r
42 * @return string with the enumeration body
\r
45 public enum «enums.name» {
\r
46 «FOR v : enums.values SEPARATOR ",\n"»
\r
47 «" "»«v.name»(«v.value»)«
\r
51 static java.util.Map<java.lang.Integer, «enums.name»> valueMap;
\r
54 valueMap = new java.util.HashMap<>();
\r
55 for («enums.name» enumItem : «enums.name».values())
\r
57 valueMap.put(enumItem.value, enumItem);
\r
61 private «enums.name»(int value) {
\r
66 * @return integer value
\r
68 public int getIntValue() {
\r
74 * @return corresponding «enums.name» item
\r
76 public static «enums.name» forValue(int valueArg) {
\r
77 return valueMap.get(valueArg);
\r