X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fbuilder%2Fimpl%2FModuleImpl.java;h=d2c3729871227954435671f78d27bece1e06a8f9;hb=a26e85869b8751609c2301a2d7898de2c9c64ccb;hp=7adca41d193a100d56e38a05d10e57b2faf2a310;hpb=ae814a949d486245bdc4d20df9752d74ee9d541a;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleImpl.java index 7adca41d19..d2c3729871 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleImpl.java @@ -1,6 +1,7 @@ package org.opendaylight.yangtools.yang.parser.builder.impl; -import com.google.common.base.Optional; +import static com.google.common.base.Preconditions.checkNotNull; + import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import java.net.URI; @@ -10,6 +11,7 @@ import java.util.List; import java.util.Set; import java.util.TreeSet; import org.opendaylight.yangtools.concepts.Immutable; +import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; import org.opendaylight.yangtools.yang.model.api.Deviation; import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition; @@ -26,10 +28,9 @@ import org.opendaylight.yangtools.yang.parser.builder.util.Comparators; public final class ModuleImpl extends AbstractDocumentedDataNodeContainer implements Module, Immutable { - private final URI namespace; + private final QNameModule qnameModule; private final String name; private final String sourcePath; - private final Optional revision; private final String prefix; private final String yangVersion; private final String organization; @@ -49,7 +50,7 @@ public final class ModuleImpl extends AbstractDocumentedDataNodeContainer implem * * * NoteConstructor has intentionality limited visibility to package, since - * this class should be only instantied via builders. + * this class should be only instantiated via builders. * * @param name * @param sourcePath @@ -57,13 +58,13 @@ public final class ModuleImpl extends AbstractDocumentedDataNodeContainer implem */ ModuleImpl(final String name, final String sourcePath, final ModuleBuilder builder) { super(builder); - this.name = name; - this.sourcePath = sourcePath; - this.imports = ImmutableSet. copyOf(builder.imports); - this.namespace = builder.getNamespace(); + this.name = checkNotNull(name, "Missing name"); + this.sourcePath = sourcePath; //TODO: can this be nullable? + this.imports = ImmutableSet. copyOf(builder.imports.values()); this.prefix = builder.getPrefix(); - this.revision = builder.getRevision() == null ? Optional.absent(): - Optional.of(new Date(builder.getRevision().getTime())); + + this.qnameModule = QNameModule.create(builder.getNamespace(), + builder.getRevision() == null ? null : new Date(builder.getRevision().getTime())); this.yangVersion = builder.getYangVersion(); this.organization = builder.getOrganization(); this.contact = builder.getContact(); @@ -75,7 +76,7 @@ public final class ModuleImpl extends AbstractDocumentedDataNodeContainer implem this.extensionNodes = ImmutableList.copyOf(builder.getExtensions()); this.identities = ImmutableSet.copyOf(builder.getIdentities()); this.unknownNodes = ImmutableList.copyOf(builder.getExtensionInstances()); - this.source = builder.source; + this.source = checkNotNull(builder.getSource(), "Missing source"); } @@ -86,7 +87,7 @@ public final class ModuleImpl extends AbstractDocumentedDataNodeContainer implem @Override public URI getNamespace() { - return namespace; + return qnameModule.getNamespace(); } @Override @@ -96,11 +97,7 @@ public final class ModuleImpl extends AbstractDocumentedDataNodeContainer implem @Override public Date getRevision() { - if (revision.isPresent()) { - return new Date(revision.get().getTime()); - } else { - return null; - } + return qnameModule.getRevision(); } @Override @@ -168,6 +165,7 @@ public final class ModuleImpl extends AbstractDocumentedDataNodeContainer implem return unknownNodes; } + @Override public String getSource() { return source; } @@ -176,10 +174,9 @@ public final class ModuleImpl extends AbstractDocumentedDataNodeContainer implem public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + ((namespace == null) ? 0 : namespace.hashCode()); result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((revision == null) ? 0 : revision.hashCode()); result = prime * result + ((yangVersion == null) ? 0 : yangVersion.hashCode()); + result = prime * result + qnameModule.hashCode(); return result; } @@ -195,13 +192,6 @@ public final class ModuleImpl extends AbstractDocumentedDataNodeContainer implem return false; } ModuleImpl other = (ModuleImpl) obj; - if (namespace == null) { - if (other.namespace != null) { - return false; - } - } else if (!namespace.equals(other.namespace)) { - return false; - } if (name == null) { if (other.name != null) { return false; @@ -209,11 +199,7 @@ public final class ModuleImpl extends AbstractDocumentedDataNodeContainer implem } else if (!name.equals(other.name)) { return false; } - if (revision == null) { - if (other.revision != null) { - return false; - } - } else if (!revision.equals(other.revision)) { + if (!qnameModule.equals(other.qnameModule)) { return false; } if (yangVersion == null) { @@ -236,12 +222,17 @@ public final class ModuleImpl extends AbstractDocumentedDataNodeContainer implem public String toString() { StringBuilder sb = new StringBuilder(ModuleImpl.class.getSimpleName()); sb.append("["); - sb.append("name=" + name); - sb.append(", namespace=" + namespace); - sb.append(", revision=" + revision); - sb.append(", prefix=" + prefix); - sb.append(", yangVersion=" + yangVersion); + sb.append("name=").append(name); + sb.append(", namespace=").append(getNamespace()); + sb.append(", revision=").append(getRevision()); + sb.append(", prefix=").append(prefix); + sb.append(", yangVersion=").append(yangVersion); sb.append("]"); return sb.toString(); } -} \ No newline at end of file + + @Override + public QNameModule getQNameModule() { + return qnameModule; + } +}