BUG-4688: Rework SchemaContext module lookups
[yangtools.git] / yang / yang-model-util / src / main / java / org / opendaylight / yangtools / yang / model / util / AbstractSchemaContext.java
index a0e022a6247afe77ae6d68bbbee1f7be86304df7..6f3cc009fd4942fffad1cbfbd6c5971409b741a4 100644 (file)
@@ -17,7 +17,7 @@ import java.util.Date;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.List;
-import java.util.Map;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
 import java.util.TreeSet;
@@ -29,7 +29,6 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
 import org.opendaylight.yangtools.yang.model.api.Module;
-import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier;
 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
@@ -52,13 +51,6 @@ public abstract class AbstractSchemaContext implements SchemaContext {
         return new TreeSet<>(REVISION_COMPARATOR);
     }
 
-    /**
-     * Returns the ModuleIdentifier-to-YANG source mapping.
-     *
-     * @return yang sources where key is ModuleIdentifier
-     */
-    protected abstract Map<ModuleIdentifier, String> getIdentifiersToSources();
-
     /**
      * Returns the namespace-to-module mapping.
      *
@@ -109,19 +101,20 @@ public abstract class AbstractSchemaContext implements SchemaContext {
         return extensions;
     }
 
+
     @Override
-    public Module findModuleByName(final String name, final Date revision) {
+    public Optional<Module> findModule(final String name, final Date revision) {
         for (final Module module : getNameToModules().get(name)) {
-            if (revision == null || revision.equals(module.getRevision())) {
-                return module;
+            if (Objects.equals(revision, module.getRevision())) {
+                return Optional.of(module);
             }
         }
 
-        return null;
+        return Optional.empty();
     }
 
     @Override
-    public Set<Module> findModuleByNamespace(final URI namespace) {
+    public Set<Module> findModules(final URI namespace) {
         final Set<Module> ret = getNamespaceToModules().get(namespace);
         return ret == null ? Collections.emptySet() : ret;
     }
@@ -236,15 +229,4 @@ public abstract class AbstractSchemaContext implements SchemaContext {
     public Set<AugmentationSchema> getAvailableAugmentations() {
         return Collections.emptySet();
     }
-
-    //FIXME: should work for submodules too
-    @Override
-    public Set<ModuleIdentifier> getAllModuleIdentifiers() {
-        return getIdentifiersToSources().keySet();
-    }
-
-    @Override
-    public Optional<String> getModuleSource(final ModuleIdentifier moduleIdentifier) {
-        return Optional.ofNullable(getIdentifiersToSources().get(moduleIdentifier));
-    }
 }