BUG-865: deprecate pre-Beryllium parser elements
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / builder / impl / ModuleIdentifierImpl.java
index 02f6abb780eca50e122c739bd6eb7e10e20ce9bd..63608b3e7a71d6d41aa40468fb8e56f623ead4d9 100644 (file)
@@ -5,36 +5,40 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.yangtools.yang.parser.builder.impl;
 
+import static com.google.common.base.Preconditions.checkNotNull;
 import com.google.common.base.Optional;
-import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier;
-
 import java.net.URI;
 import java.util.Date;
-
-import static com.google.common.base.Preconditions.checkNotNull;
+import org.opendaylight.yangtools.yang.common.QNameModule;
+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 Pre-Beryllium implementation, scheduled for removal.
  */
+@Deprecated
 public class ModuleIdentifierImpl implements ModuleIdentifier {
+    private final QNameModule qnameModule;
     private final String name;
-    private final Optional<URI> namespace;
-    private final Optional<Date> revision;
 
-    public ModuleIdentifierImpl(String name, Optional<URI> namespace, Optional<Date> revision) {
+    public ModuleIdentifierImpl(final String name, final Optional<URI> namespace, final Optional<Date> revision) {
         this.name = checkNotNull(name);
-        this.namespace = checkNotNull(namespace);
-        this.revision = checkNotNull(revision);
+        this.qnameModule = QNameModule.create(namespace.orNull(), revision.orNull());
+    }
+
+    @Override
+    public QNameModule getQNameModule() {
+        return qnameModule;
     }
 
     @Override
     public Date getRevision() {
-        return revision.orNull();
+        return qnameModule.getRevision();
     }
 
     @Override
@@ -44,24 +48,24 @@ public class ModuleIdentifierImpl implements ModuleIdentifier {
 
     @Override
     public URI getNamespace() {
-        return namespace.orNull();
+        return qnameModule.getNamespace();
     }
 
     @Override
     public String toString() {
         return "ModuleIdentifierImpl{" +
                 "name='" + name + '\'' +
-                ", namespace=" + namespace +
-                ", revision=" + revision +
+                ", namespace=" + getNamespace() +
+                ", revision=" + qnameModule.getFormattedRevision() +
                 '}';
     }
 
     @Override
-    public boolean equals(Object o) {
+    public boolean equals(final Object o) {
         if (this == o) {
             return true;
         }
-        if (o == null || (o instanceof ModuleIdentifier == false)) {
+        if (!(o instanceof ModuleIdentifier)) {
             return false;
         }
 
@@ -70,12 +74,13 @@ public class ModuleIdentifierImpl implements ModuleIdentifier {
         if (!name.equals(that.getName())) {
             return false;
         }
+
         // only fail if this namespace is non-null
-        if (namespace.isPresent() && namespace.get().equals(that.getNamespace()) == false)  {
+        if (getNamespace() != null && !getNamespace().equals(that.getNamespace())) {
             return false;
         }
         // only fail if this revision is non-null
-        if (revision.isPresent() && revision.get().equals(that.getRevision()) == false) {
+        if (getRevision() != null && !getRevision().equals(that.getRevision())) {
             return false;
         }