BUG-2062: use newly-introduced ordered leaf-list methods 68/32268/3
authorRobert Varga <rovarga@cisco.com>
Fri, 8 Jan 2016 10:47:47 +0000 (11:47 +0100)
committerTony Tkacik <ttkacik@cisco.com>
Tue, 12 Jan 2016 13:52:24 +0000 (13:52 +0000)
This adds explicit handling of ordered nodes, so that the ordering is
really retained.

Change-Id: I292fa81c5e8a44755e13a1da75bc083a9138a6a0
Signed-off-by: Robert Varga <rovarga@cisco.com>
opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/OrderedNormalizedNodeWriter.java
opendaylight/restconf/sal-rest-connector/src/main/java/org/opendaylight/netconf/sal/rest/impl/DepthAwareNormalizedNodeWriter.java

index 11a3e077c44172cf080a74365d18660725b9f7b9..169bf943fa6de7e4026428551f54d4d3390a5b28 100644 (file)
@@ -35,6 +35,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.api.schema.OrderedLeafSetNode;
 import org.opendaylight.yangtools.yang.data.api.schema.OrderedMapNode;
 import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
@@ -241,9 +242,12 @@ public class OrderedNormalizedNodeWriter implements Closeable, Flushable{
             return writeChildren(n.getValue(), dataSchemaNode, true);
         }
         if (node instanceof LeafSetNode) {
-            //covers also OrderedLeafSetNode for which doesn't exist start* method
             final LeafSetNode<?> n = (LeafSetNode<?>) node;
-            writer.startLeafSet(n.getIdentifier(), OrderedNormalizedNodeWriter.childSizeHint(n.getValue()));
+            if (node instanceof OrderedLeafSetNode) {
+                writer.startOrderedLeafSet(n.getIdentifier(), OrderedNormalizedNodeWriter.childSizeHint(n.getValue()));
+            } else {
+                writer.startLeafSet(n.getIdentifier(), OrderedNormalizedNodeWriter.childSizeHint(n.getValue()));
+            }
             return writeChildren(n.getValue(), dataSchemaNode, true);
         }
 
index cfbb9c021777ef59202db84e26d40a5d8a633fb3..51a0a151371714e64f0077ee37601908c77dc38d 100644 (file)
@@ -30,6 +30,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.api.schema.OrderedLeafSetNode;
 import org.opendaylight.yangtools.yang.data.api.schema.OrderedMapNode;
 import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
@@ -259,9 +260,12 @@ public class DepthAwareNormalizedNodeWriter implements RestconfNormalizedNodeWri
             processedAsCompositeNode = writeChildren(n.getValue());
         }
         else if (node instanceof LeafSetNode) {
-            //covers also OrderedLeafSetNode for which doesn't exist start* method
             final LeafSetNode<?> n = (LeafSetNode<?>) node;
-            writer.startLeafSet(n.getIdentifier(), childSizeHint(n.getValue()));
+            if (node instanceof OrderedLeafSetNode) {
+                writer.startOrderedLeafSet(n.getIdentifier(), childSizeHint(n.getValue()));
+            } else {
+                writer.startLeafSet(n.getIdentifier(), childSizeHint(n.getValue()));
+            }
             currentDepth++;
             processedAsCompositeNode = writeChildren(n.getValue());
             currentDepth--;