From bc1d5aafa05624dd9894242f7ad262dd7f8d1abb Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 8 Jan 2016 11:47:47 +0100 Subject: [PATCH] BUG-2062: use newly-introduced ordered leaf-list methods This adds explicit handling of ordered nodes, so that the ordering is really retained. Change-Id: I292fa81c5e8a44755e13a1da75bc083a9138a6a0 Signed-off-by: Robert Varga --- .../netconf/util/OrderedNormalizedNodeWriter.java | 8 ++++++-- .../sal/rest/impl/DepthAwareNormalizedNodeWriter.java | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/OrderedNormalizedNodeWriter.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/OrderedNormalizedNodeWriter.java index 11a3e077c4..169bf943fa 100644 --- a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/OrderedNormalizedNodeWriter.java +++ b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/OrderedNormalizedNodeWriter.java @@ -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); } diff --git a/opendaylight/restconf/sal-rest-connector/src/main/java/org/opendaylight/netconf/sal/rest/impl/DepthAwareNormalizedNodeWriter.java b/opendaylight/restconf/sal-rest-connector/src/main/java/org/opendaylight/netconf/sal/rest/impl/DepthAwareNormalizedNodeWriter.java index cfbb9c0217..51a0a15137 100644 --- a/opendaylight/restconf/sal-rest-connector/src/main/java/org/opendaylight/netconf/sal/rest/impl/DepthAwareNormalizedNodeWriter.java +++ b/opendaylight/restconf/sal-rest-connector/src/main/java/org/opendaylight/netconf/sal/rest/impl/DepthAwareNormalizedNodeWriter.java @@ -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--; -- 2.36.6