Eliminate YangModelDependencyInfo
[yangtools.git] / parser / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / repo / RevisionDependencyResolver.java
index 312ddfe4f96ffc59e989dd0beb8c9ca8b17a26f1..8ad4f0298df67e80a7fa2233bb938b82d6f22c4f 100644 (file)
@@ -10,46 +10,36 @@ package org.opendaylight.yangtools.yang.parser.repo;
 import java.util.Collection;
 import java.util.Map;
 import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
-import org.opendaylight.yangtools.yang.model.api.ModuleImport;
+import org.opendaylight.yangtools.yang.model.api.source.SourceDependency;
 import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier;
+import org.opendaylight.yangtools.yang.model.spi.source.SourceInfo;
 import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
-import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangModelDependencyInfo;
 
 final class RevisionDependencyResolver extends DependencyResolver {
-    RevisionDependencyResolver(final Map<SourceIdentifier, YangModelDependencyInfo> depInfo) {
+    RevisionDependencyResolver(final Map<SourceIdentifier, SourceInfo> depInfo) {
         super(depInfo);
     }
 
-    protected static SourceIdentifier findWildcard(final Iterable<SourceIdentifier> haystack,
-            final Unqualified needle) {
-        for (final SourceIdentifier r : haystack) {
-            if (needle.equals(r.name())) {
-                return r;
-            }
-        }
-
-        return null;
-    }
-
     @Override
     YangParserConfiguration parserConfig() {
         return YangParserConfiguration.DEFAULT;
     }
 
     @Override
-    protected boolean isKnown(final Collection<SourceIdentifier> haystack, final ModuleImport mi) {
-        final SourceIdentifier msi = new SourceIdentifier(mi.getModuleName(), mi.getRevision().orElse(null));
-
+    boolean isKnown(final Collection<SourceIdentifier> haystack, final SourceDependency dependency) {
         // Quick lookup
-        if (haystack.contains(msi)) {
-            return true;
-        }
-
-        // Slow revision-less walk
-        return mi.getRevision().isEmpty() && findWildcard(haystack, mi.getModuleName()) != null;
+        return haystack.contains(new SourceIdentifier(dependency.name(), dependency.revision()))
+            // Slow revision-less walk
+            || dependency.revision() == null && findWildcard(haystack, dependency.name()) != null;
     }
 
-    public static RevisionDependencyResolver create(final Map<SourceIdentifier, YangModelDependencyInfo> depInfo) {
-        return new RevisionDependencyResolver(depInfo);
+    private static SourceIdentifier findWildcard(final Collection<SourceIdentifier> haystack,
+            final Unqualified needle) {
+        for (var sourceId : haystack) {
+            if (needle.equals(sourceId.name())) {
+                return sourceId;
+            }
+        }
+        return null;
     }
 }
\ No newline at end of file