Updated code generation
[yangtools.git] / code-generator / binding-java-api-generator / src / main / java / org / opendaylight / yangtools / sal / java / api / generator / EnumTemplate.xtend
1 package org.opendaylight.yangtools.sal.java.api.generator\r
2 \r
3 import org.opendaylight.yangtools.sal.binding.model.api.Enumeration\r
4 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType\r
5 /**\r
6  * Template for generating JAVA enumeration type. \r
7  */\r
8 class EnumTemplate extends BaseTemplate {\r
9 \r
10     \r
11     /**\r
12      * Enumeration which will be transformed to JAVA source code for enumeration\r
13      */\r
14     val Enumeration enums\r
15     \r
16     /**\r
17      * Constructs instance of this class with concrete <code>enums</code>.\r
18      * \r
19      * @param enumeration which will be transformed to JAVA source code \r
20      */\r
21     new(Enumeration enums) {\r
22         super(enums as GeneratedType )\r
23         this.enums = enums\r
24     }\r
25     \r
26     \r
27     /**\r
28      * Generates only JAVA enumeration source code.\r
29      * \r
30      * @return string with JAVA enumeration source code\r
31      */\r
32     def generateAsInnerClass() {\r
33         return body\r
34     }\r
35     \r
36     /**\r
37      * Template method which generates enumeration body (declaration + enumeration items).\r
38      * \r
39      * @return string with the enumeration body \r
40      */\r
41     override body() '''\r
42         public enum «enums.name» {\r
43         «FOR v : enums.values SEPARATOR ",\n"»\r
44             «"    "»«v.name»(«v.value»)«\r
45         ENDFOR»;\r
46         \r
47             int value;\r
48         \r
49             private «enums.name»(int value) {\r
50                 this.value = value;\r
51             }\r
52         }\r
53     '''\r
54 }