Merge "Added conflict handling between configuration and state choice nodes. -unique...
[controller.git] / opendaylight / md-sal / sal-binding-broker / src / main / java / org / opendaylight / controller / sal / binding / dom / serializer / impl / IntermediateMapping.xtend
index d0b114e3c37930727146fa6c3cb7a1e191a2ef61..04b8674727ced600871d3e9c44b05657c95d6658 100644 (file)
@@ -13,7 +13,10 @@ class IntermediateMapping {
     
     
     
-    static def Node<?> toNode(Map map) {
+    static def Node<?> toNode(Map<?,?> map) {
+        if(map instanceof Node<?>) {
+            return map as Node<?>;
+        }
         val nodeMap = map as Map<QName,Object>;
         Preconditions.checkArgument(map.size == 1);
         val elem = nodeMap.entrySet.iterator.next;
@@ -22,10 +25,15 @@ class IntermediateMapping {
         toNodeImpl(qname, value);
     }
 
+
     static def dispatch Node<?> toNodeImpl(QName name, List<?> objects) {
         val values = new ArrayList<Node<?>>(objects.size);
         for (obj : objects) {
-            values.add(toNode(obj as Map));
+            if(obj instanceof Node<?>) {
+                values.add(obj as Node<?>);
+            } else if(obj instanceof Map<?,?>) {
+                values.add(toNode(obj as Map<?,?>));
+            }
         }
         return new CompositeNodeTOImpl(name, null, values);
     }