Add XMLNamespace
[yangtools.git] / yang / yang-data-codec-xml / src / main / java / org / opendaylight / yangtools / yang / data / codec / xml / XmlStringInstanceIdentifierCodec.java
index dc3aa59543a516a0ab476a018431200eb59e961c..47bd2ba769923804cc413301693cb1be974a9840 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.yangtools.yang.data.codec.xml;
 import static com.google.common.base.Preconditions.checkArgument;
 import static java.util.Objects.requireNonNull;
 
-import java.net.URI;
 import java.util.ArrayDeque;
 import java.util.Deque;
 import java.util.Iterator;
@@ -18,13 +17,14 @@ import javax.xml.namespace.NamespaceContext;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.util.AbstractModuleStringInstanceIdentifierCodec;
 import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 
 final class XmlStringInstanceIdentifierCodec extends AbstractModuleStringInstanceIdentifierCodec
         implements XmlCodec<YangInstanceIdentifier> {
@@ -33,9 +33,9 @@ final class XmlStringInstanceIdentifierCodec extends AbstractModuleStringInstanc
 
     private final @NonNull DataSchemaContextTree dataContextTree;
     private final @NonNull XmlCodecFactory codecFactory;
-    private final @NonNull SchemaContext context;
+    private final @NonNull EffectiveModelContext context;
 
-    XmlStringInstanceIdentifierCodec(final SchemaContext context, final XmlCodecFactory xmlCodecFactory) {
+    XmlStringInstanceIdentifierCodec(final EffectiveModelContext context, final XmlCodecFactory xmlCodecFactory) {
         this.context = requireNonNull(context);
         this.dataContextTree = DataSchemaContextTree.from(context);
         this.codecFactory = requireNonNull(xmlCodecFactory);
@@ -44,13 +44,13 @@ final class XmlStringInstanceIdentifierCodec extends AbstractModuleStringInstanc
     @Override
     protected Module moduleForPrefix(final String prefix) {
         final String prefixedNS = getNamespaceContext().getNamespaceURI(prefix);
-        final Iterator<Module> modules = context.findModules(URI.create(prefixedNS)).iterator();
+        final Iterator<? extends Module> modules = context.findModules(XMLNamespace.of(prefixedNS)).iterator();
         return modules.hasNext() ? modules.next() : null;
     }
 
     @Override
-    protected String prefixForNamespace(final URI namespace) {
-        final Iterator<Module> modules = context.findModules(namespace).iterator();
+    protected String prefixForNamespace(final XMLNamespace namespace) {
+        final Iterator<? extends Module> modules = context.findModules(namespace).iterator();
         return modules.hasNext() ? modules.next().getName() : null;
     }