Added builder generation for augmentations
authorTony Tkacik <ttkacik@cisco.com>
Tue, 20 Aug 2013 16:58:31 +0000 (18:58 +0200)
committerTony Tkacik <ttkacik@cisco.com>
Tue, 20 Aug 2013 16:58:31 +0000 (18:58 +0200)
Added support for named augmentations

Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderGenerator.java
code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend

index 08ff99d1965644e01eefcbe813fdb014845e4b86..571c301b009ec2b6d2b315f3b5c383f194e705aa 100644 (file)
@@ -5,6 +5,8 @@ import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject;
 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType;\r
 import org.opendaylight.yangtools.sal.binding.model.api.Type;\r
 import org.opendaylight.yangtools.yang.binding.Augmentable;\r
+import org.opendaylight.yangtools.yang.binding.Augmentation;\r
+import org.opendaylight.yangtools.yang.binding.DataObject;\r
 \r
 public final class BuilderGenerator implements CodeGenerator {\r
 \r
@@ -17,7 +19,11 @@ public final class BuilderGenerator implements CodeGenerator {
                 // "rpc" and "grouping" elements do not implement Augmentable\r
                 if (t.getFullyQualifiedName().equals(Augmentable.class.getName())) {\r
                     return true;\r
+                } else if (t.getFullyQualifiedName().equals(Augmentation.class.getName())) {\r
+                    return true;\r
                 }\r
+                \r
+                \r
             }\r
         }\r
         return false;\r
index a56a79ebf7ba3a95b8287ec19adf8f5280f82bd2..6ffc912ebfd7d781da432f2992efe4aab0149968 100644 (file)
@@ -136,7 +136,7 @@ class BuilderTemplate {
     def private generateBody() '''
         public class «genType.name»«BUILDER» {
         
-            «generateFields»
+            «generateFields(false)»
 
             «generateSetters»
 
@@ -146,7 +146,7 @@ class BuilderTemplate {
 
             private class «genType.name»«IMPL» implements «genType.name» {
 
-                «generateFields»
+                «generateFields(true)»
 
                 «generateConstructor»
 
@@ -157,10 +157,10 @@ class BuilderTemplate {
         }
     '''
 
-    def private generateFields() '''
+    def private generateFields(boolean _final) '''
         «IF !fields.empty»
             «FOR f : fields»
-                private «f.returnType.resolveName» «f.name»;
+                private  «IF _final»final«ENDIF»  «f.returnType.resolveName» «f.name»;
             «ENDFOR»
         «ENDIF»
         «IF augmentField != null»