Bug fixes for codecs.
authorLukas Sedlak <lsedlak@cisco.com>
Mon, 10 Feb 2014 06:51:33 +0000 (22:51 -0800)
committerGerrit Code Review <gerrit@opendaylight.org>
Tue, 11 Feb 2014 22:50:00 +0000 (22:50 +0000)
Added proper serialization of Empty Type Definitions into TransformerGenerator.xtend.
Added overload method "toDocument" which creates XML Document without schema definition for particular Data DOM tree.
This fix is primary needed for md-sal NetconfMapping. If this fix is NOT applied the toRpcMessage in NetconfMapping.xtend will NOT work properly.
Added javadocs for both toDocument methods.

Signed-off-by: Lukas Sedlak <lsedlak@cisco.com>
Change-Id: Ia1af32d3a9f11d81da8abf4274b84ca3b5d610d5

code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/TransformerGenerator.xtend

index 0dc904b1083b907bc76dce4abd7d37c653fc43f2..67ba5957c8d001a9abb3479c4d8452d0f37ac853 100644 (file)
@@ -73,6 +73,7 @@ import java.util.Set
 import org.opendaylight.yangtools.sal.binding.generator.util.XtendHelper
 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition
 import org.opendaylight.yangtools.yang.binding.BindingMapping
+import org.opendaylight.yangtools.yang.model.api.type.EmptyTypeDefinition
 
 class TransformerGenerator {
 
@@ -1427,8 +1428,20 @@ class TransformerGenerator {
     private def dispatch serializeValue(Enumeration type, String parameter, TypeDefinition<?> typeDefinition) {
         '''«type.valueSerializer(typeDefinition).resolvedName».toDomValue(«parameter»)'''
     }
-
+    
+    private def dispatch serializeValue(Type type, String parameter, EmptyTypeDefinition typeDefinition) {
+        '''(«parameter».booleanValue() ? "" : null)'''
+    }
+    
     private def dispatch serializeValue(Type signature, String property, TypeDefinition<?> typeDefinition) {
+        serializeValue(signature,property)
+    }
+    
+    private def dispatch serializeValue(Type signature, String property, Void typeDefinition) {
+        serializeValue(signature,property)
+    }
+    
+    private def dispatch serializeValue(Type signature, String property) {
         if (INSTANCE_IDENTIFIER == signature) {
             return '''«INSTANCE_IDENTIFIER_CODEC».serialize(«property»)'''
         } else if (CLASS_TYPE.equals(signature)) {