BUG 340: Resolved instance-identifier translation in JSON 91/4891/5
authorMartin Sunal <msunal@cisco.com>
Mon, 27 Jan 2014 15:15:30 +0000 (16:15 +0100)
committerMartin Sunal <msunal@cisco.com>
Thu, 30 Jan 2014 09:57:58 +0000 (10:57 +0100)
Change-Id: Ia8853c00798674251b39941a675e9c359aa68a00
Signed-off-by: Martin Sunal <msunal@cisco.com>
opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/JsonMapper.java
opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/RestCodec.java

index ca318e4..226eff4 100644 (file)
@@ -252,14 +252,18 @@ class JsonMapper {
             result.append("/");
 
             writeModuleNameAndIdentifier(result, identityValue);
-            if (identityValue.getPredicates() != null) {
+            if (identityValue.getPredicates() != null && !identityValue.getPredicates().isEmpty()) {
                 for (Predicate predicate : identityValue.getPredicates()) {
                     IdentityValue identityValuePredicate = predicate.getName();
                     result.append("[");
-                    writeModuleNameAndIdentifier(result, identityValuePredicate);
-                    result.append("=\"");
+                    if (identityValuePredicate == null) {
+                        result.append(".");
+                    } else {
+                        writeModuleNameAndIdentifier(result, identityValuePredicate);
+                    }
+                    result.append("='");
                     result.append(predicate.getValue());
-                    result.append("\"");
+                    result.append("'");
                     result.append("]");
                 }
             }
index 4f643fe..d6b5300 100644 (file)
@@ -212,6 +212,11 @@ public class RestCodec {
                     List<Predicate> predicates = keyValuesToPredicateList(((NodeIdentifierWithPredicates) pathArgument)
                             .getKeyValues());
                     identityValue.setPredicates(predicates);
+                } else if (pathArgument instanceof NodeWithValue && identityValue != null) {
+                    List<Predicate> predicates = new ArrayList<>();
+                    String value = String.valueOf(((NodeWithValue) pathArgument).getValue());
+                    predicates.add(new Predicate(null, value));
+                    identityValue.setPredicates(predicates);
                 }
                 identityValuesDTO.add(identityValue);
             }