Use YANG-derived prefixes
[yangtools.git] / codec / yang-data-codec-xml / src / main / java / org / opendaylight / yangtools / yang / data / codec / xml / XmlCodecFactory.java
index aec147d45fbe5c6e3ddba7db5be8820b2abf911a..bbb5e2686d2dc75ea4068725dcb9da358b9ed005 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.data.codec.xml;
 import static java.util.Objects.requireNonNull;
 
 import java.util.List;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.MountPointContext;
@@ -47,13 +48,15 @@ import org.opendaylight.yangtools.yang.model.api.type.UnknownTypeDefinition;
  * A thread-safe factory for instantiating {@link XmlCodec}s.
  */
 public final class XmlCodecFactory extends AbstractCodecFactory<XmlCodec<?>> {
-    private final MountPointContext mountCtx;
-    private final InstanceIdentifierXmlCodec instanceIdentifierCodec;
+    private final @NonNull MountPointContext mountCtx;
+    private final @NonNull PreferredPrefixes pref;
+    private final @NonNull InstanceIdentifierXmlCodec instanceIdentifierCodec;
 
     private XmlCodecFactory(final MountPointContext mountCtx) {
         super(mountCtx.getEffectiveModelContext(), new SharedCodecCache<>());
         this.mountCtx = requireNonNull(mountCtx);
-        instanceIdentifierCodec = new InstanceIdentifierXmlCodec(this);
+        pref = new PreferredPrefixes.Shared(getEffectiveModelContext());
+        instanceIdentifierCodec = new InstanceIdentifierXmlCodec(this, pref);
     }
 
     MountPointContext mountPointContext() {
@@ -107,7 +110,7 @@ public final class XmlCodecFactory extends AbstractCodecFactory<XmlCodec<?>> {
 
     @Override
     protected XmlCodec<?> identityRefCodec(final IdentityrefTypeDefinition type, final QNameModule module) {
-        return new IdentityrefXmlCodec(getEffectiveModelContext(), module);
+        return new IdentityrefXmlCodec(getEffectiveModelContext(), pref, module);
     }
 
     @Override