Update TypeDefinition design
[yangtools.git] / yang / yang-model-util / src / main / java / org / opendaylight / yangtools / yang / model / util / ModuleIdentifierImpl.java
index af5c18c82c6952ea9a051b35deb41edc30e92642..1f8b375c7e75b12b87b18d36f45b4fe9cc43729c 100644 (file)
@@ -10,56 +10,35 @@ package org.opendaylight.yangtools.yang.model.util;
 import static com.google.common.base.Preconditions.checkNotNull;
 
 import com.google.common.annotations.Beta;
-import java.net.URI;
-import java.util.Date;
-import java.util.Objects;
 import java.util.Optional;
-import org.opendaylight.yangtools.concepts.SemVer;
-import org.opendaylight.yangtools.yang.common.QNameModule;
-import org.opendaylight.yangtools.yang.model.api.Module;
+import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier;
 
 /**
  * ModuleIdentifier that can be used for indexing/searching by name.
  * Name is only non-null attribute.
  * Equality check on namespace and revision is only triggered if they are non-null
+ *
+ * @deprecated This class will be removed with {@link ModuleIdentifier}
  */
+@Deprecated
 @Beta
 public final class ModuleIdentifierImpl implements ModuleIdentifier {
-    private final QNameModule qnameModule;
+    private final Revision revision;
     private final String name;
-    private final SemVer semVer;
 
-    private ModuleIdentifierImpl(final String name, final Optional<URI> namespace, final Optional<Date> revision,
-            final SemVer semVer) {
+    private ModuleIdentifierImpl(final String name, final Optional<Revision> revision) {
         this.name = checkNotNull(name);
-        this.qnameModule = QNameModule.create(namespace.orElse(null), revision.orElse(null));
-        this.semVer = (semVer == null ? Module.DEFAULT_SEMANTIC_VERSION : semVer);
-    }
-
-    public static ModuleIdentifier create(final String name, final Optional<URI> namespace,
-            final Optional<Date> revision) {
-        return create(name, namespace, revision, Module.DEFAULT_SEMANTIC_VERSION);
-    }
-
-    public static ModuleIdentifier create(final String name, final Optional<URI> namespace,
-            final Optional<Date> revision, final SemVer semVer) {
-        return new ModuleIdentifierImpl(name, namespace, revision, semVer);
+        this.revision = revision.orElse(null);
     }
 
-    @Override
-    public QNameModule getQNameModule() {
-        return qnameModule;
-    }
-
-    @Override
-    public Date getRevision() {
-        return qnameModule.getRevision();
+    public static ModuleIdentifier create(final String name, final Optional<Revision> revision) {
+        return new ModuleIdentifierImpl(name, revision);
     }
 
     @Override
-    public SemVer getSemanticVersion() {
-        return semVer;
+    public Optional<Revision> getRevision() {
+        return Optional.ofNullable(revision);
     }
 
     @Override
@@ -67,18 +46,11 @@ public final class ModuleIdentifierImpl implements ModuleIdentifier {
         return name;
     }
 
-    @Override
-    public URI getNamespace() {
-        return qnameModule.getNamespace();
-    }
-
     @Override
     public String toString() {
         return "ModuleIdentifierImpl{"
             + "name='" + name + '\''
-            + ", namespace=" + getNamespace()
-            + ", revision=" + qnameModule.getFormattedRevision()
-            + ", semantic version=" + semVer
+            + ", revision=" + revision
             + '}';
     }
 
@@ -97,19 +69,11 @@ public final class ModuleIdentifierImpl implements ModuleIdentifier {
             return false;
         }
 
-        // only fail if this namespace is non-null
-        if (getNamespace() != null && !getNamespace().equals(other.getNamespace())) {
-            return false;
-        }
         // only fail if this revision is non-null
         if (getRevision() != null && !getRevision().equals(other.getRevision())) {
             return false;
         }
 
-        if (!Objects.equals(getSemanticVersion(), other.getSemanticVersion())) {
-            return false;
-        }
-
         return true;
     }