Updated code generation
[yangtools.git] / code-generator / binding-java-api-generator / src / main / java / org / opendaylight / yangtools / sal / java / api / generator / EnumTemplate.xtend
index 60cbb2955364920ab5d780727a7755b39dcdd96d..9fe871c399b93ce371219b7d24a811569a53380d 100644 (file)
@@ -1,73 +1,54 @@
-package org.opendaylight.yangtools.sal.java.api.generator
-
-import org.opendaylight.yangtools.sal.binding.model.api.Enumeration
-/**
- * Template for generating JAVA enumeration type. 
- */
-class EnumTemplate {
-    
-    /**
-     * Enumeration which will be transformed to JAVA source code for enumeration
-     */
-    val Enumeration enums
-    
-    /**
-     * Constructs instance of this class with concrete <code>enums</code>.
-     * 
-     * @param enumeration which will be transformed to JAVA source code 
-     */
-    new(Enumeration enums) {
-        this.enums = enums
-    }
-    
-    /**
-     * Generates JAVA source code for the enumeration with the package name.
-     * 
-     * @return JAVA source code for enumeration and for the package name 
-     */
-    def String generate() {
-        val body = generateBody
-        val pkg = generatePkg
-        return pkg.toString + body.toString
-    }
-    
-    /**
-     * Generates only JAVA enumeration source code.
-     * 
-     * @return string with JAVA enumeration source code
-     */
-    def generateAsInnerClass() {
-        return generateBody
-    }
-    
-    /**
-     * Template method which generates enumeration body (declaration + enumeration items).
-     * 
-     * @return string with the enumeration body 
-     */
-    def private generateBody() '''
-        public enum «enums.name» {
-        «FOR v : enums.values SEPARATOR ",\n"»
-            «"    "»«v.name»(«v.value»)«
-        ENDFOR»;
-        
-            int value;
-        
-            private «enums.name»(int value) {
-                this.value = value;
-            }
-        }
-    '''
-    
-    /**
-     * Template method which generates the package name line.
-     * 
-     * @return string with the package name line   
-     */
-    def private generatePkg() '''
-        package «enums.packageName»;
-        
-        
-    '''
-    
+package org.opendaylight.yangtools.sal.java.api.generator\r
+\r
+import org.opendaylight.yangtools.sal.binding.model.api.Enumeration\r
+import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType\r
+/**\r
+ * Template for generating JAVA enumeration type. \r
+ */\r
+class EnumTemplate extends BaseTemplate {\r
+\r
+    \r
+    /**\r
+     * Enumeration which will be transformed to JAVA source code for enumeration\r
+     */\r
+    val Enumeration enums\r
+    \r
+    /**\r
+     * Constructs instance of this class with concrete <code>enums</code>.\r
+     * \r
+     * @param enumeration which will be transformed to JAVA source code \r
+     */\r
+    new(Enumeration enums) {\r
+        super(enums as GeneratedType )\r
+        this.enums = enums\r
+    }\r
+    \r
+    \r
+    /**\r
+     * Generates only JAVA enumeration source code.\r
+     * \r
+     * @return string with JAVA enumeration source code\r
+     */\r
+    def generateAsInnerClass() {\r
+        return body\r
+    }\r
+    \r
+    /**\r
+     * Template method which generates enumeration body (declaration + enumeration items).\r
+     * \r
+     * @return string with the enumeration body \r
+     */\r
+    override body() '''\r
+        public enum «enums.name» {\r
+        «FOR v : enums.values SEPARATOR ",\n"»\r
+            «"    "»«v.name»(«v.value»)«\r
+        ENDFOR»;\r
+        \r
+            int value;\r
+        \r
+            private «enums.name»(int value) {\r
+                this.value = value;\r
+            }\r
+        }\r
+    '''\r
 }
\ No newline at end of file