Bug 2766: Fixed parsing and serializing XPath Instance Identifiers
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / codec / xml / InstanceIdentifierForXmlCodec.java
index 347cc42cdc0d0d811a5f92db9d2a564bba62dd4f..ce304c82eb74dc878f50ecd45a200df25fd216d2 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.data.impl.codec.xml;
 
 import java.net.URI;
 import java.util.Map.Entry;
-
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
@@ -25,8 +24,8 @@ public final class InstanceIdentifierForXmlCodec {
         return codec.deserialize(element.getTextContent().trim());
     }
 
-    public static Element serialize(final YangInstanceIdentifier id, final Element element) {
-        final RandomPrefixInstanceIdentifierSerializer codec = new RandomPrefixInstanceIdentifierSerializer();
+    public static Element serialize(final YangInstanceIdentifier id, final Element element, SchemaContext context) {
+        final RandomPrefixInstanceIdentifierSerializer codec = new RandomPrefixInstanceIdentifierSerializer(context);
         final String str = codec.serialize(id);
 
         for (Entry<URI, String> e : codec.getPrefixes()) {
@@ -36,6 +35,15 @@ public final class InstanceIdentifierForXmlCodec {
         return element;
     }
 
+    /**
+     *
+     * @deprecated USe {@link #serialize(YangInstanceIdentifier, Element, SchemaContext)} instead.
+     */
+    @Deprecated
+    public static Element serialize(final YangInstanceIdentifier id, final Element element) {
+        throw new UnsupportedOperationException("Not supported, due to buggy API contract.");
+    }
+
     private static String getIdAndPrefixAsStr(final String pathPart) {
         int predicateStartIndex = pathPart.indexOf('[');
         return predicateStartIndex == -1 ? pathPart : pathPart.substring(0, predicateStartIndex);