BUG-4688: Rework SchemaContext module lookups
[yangtools.git] / yang / yang-data-codec-gson / src / main / java / org / opendaylight / yangtools / yang / data / codec / gson / IdentityrefJSONCodec.java
index d4ec3b6d9bf74f6494932372e667f99493a9d5d1..2ce042d3592f5fb3a51cea3bdf1133cd1cb6dd4a 100644 (file)
@@ -12,6 +12,7 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.gson.stream.JsonWriter;
 import java.io.IOException;
+import java.util.Iterator;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.data.util.codec.QNameCodecUtil;
@@ -39,9 +40,9 @@ final class IdentityrefJSONCodec implements JSONCodec<QName> {
                 return parentModule;
             }
 
-            final Module module = schemaContext.findModuleByName(prefix, null);
-            checkArgument(module != null, "Could not find module %s", prefix);
-            return module.getQNameModule();
+            final Iterator<Module> modules = schemaContext.findModules(prefix).iterator();
+            checkArgument(modules.hasNext(), "Could not find module %s", prefix);
+            return modules.next().getQNameModule();
         });
     }
 
@@ -54,9 +55,9 @@ final class IdentityrefJSONCodec implements JSONCodec<QName> {
     @Override
     public void writeValue(final JsonWriter writer, final QName value) throws IOException {
         final String str = QNameCodecUtil.encodeQName(value, uri -> {
-            final Module module = schemaContext.findModuleByNamespaceAndRevision(uri.getNamespace(), null);
-            checkArgument(module != null, "Cannot find module for %s", uri);
-            return module.getName();
+            final Iterator<Module> modules = schemaContext.findModules(uri.getNamespace()).iterator();
+            checkArgument(modules.hasNext(), "Cannot find module for %s", uri);
+            return modules.next().getName();
         });
         writer.value(str);
     }