X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-rest-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Frest%2Fimpl%2FJsonReader.java;h=3115994e01575a57661db4bbc73bc81927e9713d;hb=d18f597157deded5c99dc3cbca488a718500734a;hp=fa00908e4d54c41245332ebc5d6dedc8f78492d9;hpb=d8b2ea8f945aa225138d13f8681bd8ae879caf01;p=controller.git diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/JsonReader.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/JsonReader.java index fa00908e4d..3115994e01 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/JsonReader.java +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/JsonReader.java @@ -2,6 +2,7 @@ package org.opendaylight.controller.sal.rest.impl; import java.io.InputStream; import java.io.InputStreamReader; +import java.net.URI; import java.util.Map.Entry; import java.util.Set; @@ -48,7 +49,8 @@ class JsonReader { } private CompositeNodeWrapper createStructureWithRoot(String rootObjectName, JsonObject rootObject) { - CompositeNodeWrapper firstNode = new CompositeNodeWrapper(rootObjectName); + CompositeNodeWrapper firstNode = new CompositeNodeWrapper(getNamespaceFrom(rootObjectName), + getLocalNameFrom(rootObjectName)); for (Entry childOfFirstNode : rootObject.entrySet()) { addChildToParent(childOfFirstNode.getKey(), childOfFirstNode.getValue(), firstNode); } @@ -57,7 +59,8 @@ class JsonReader { private void addChildToParent(String childName, JsonElement childType, CompositeNodeWrapper parent) { if (childType.isJsonObject()) { - CompositeNodeWrapper child = new CompositeNodeWrapper(childName); + CompositeNodeWrapper child = new CompositeNodeWrapper(getNamespaceFrom(childName), + getLocalNameFrom(childName)); parent.addValue(child); for (Entry childOfChild : childType.getAsJsonObject().entrySet()) { addChildToParent(childOfChild.getKey(), childOfChild.getValue(), child); @@ -71,11 +74,28 @@ class JsonReader { String value = childPrimitive.getAsString(); SimpleNodeWrapper child = null; if (value.equals("[null]")) { - child = new SimpleNodeWrapper(childName, null); + child = new SimpleNodeWrapper(getNamespaceFrom(childName), getLocalNameFrom(childName), null); } else { - child = new SimpleNodeWrapper(childName, value); + child = new SimpleNodeWrapper(getNamespaceFrom(childName), getLocalNameFrom(childName), value); } parent.addValue(child); } } + + private URI getNamespaceFrom(String jsonElementName) { + int indexOfDelimeter = jsonElementName.lastIndexOf(':'); + if (indexOfDelimeter == -1) { + return null; + } + return URI.create(jsonElementName.substring(0, indexOfDelimeter)); + } + + private String getLocalNameFrom(String jsonElementName) { + int indexOfDelimeter = jsonElementName.lastIndexOf(':'); + if (indexOfDelimeter == -1) { + return jsonElementName; + } + return jsonElementName.substring(indexOfDelimeter + 1, jsonElementName.length()); + } + }