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%2Fimpl%2Futil%2FYangModelDependencyInfo.java;h=e7125bf4ad5d210d884ec60b6d66e1dfb080251e;hb=4968d735af48cd6b0ea91b37fbd238316c7cb46c;hp=cbe259f1fd9fc1abedb2b0ee7aca82bd6b57a540;hpb=82af449e4ef07d80490e79484d0402b81009541e;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/util/YangModelDependencyInfo.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/util/YangModelDependencyInfo.java index cbe259f1fd..e7125bf4ad 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/util/YangModelDependencyInfo.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/util/YangModelDependencyInfo.java @@ -9,21 +9,15 @@ package org.opendaylight.yangtools.yang.parser.impl.util; import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.getArgumentString; -import org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils; - import com.google.common.base.Optional; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangStatementSourceImpl; -import java.util.HashSet; -import java.util.Set; -import org.opendaylight.yangtools.yang.model.api.Rfc6020Mapping; -import org.opendaylight.yangtools.antlrv4.code.gen.YangStatementParser.StatementContext; -import org.opendaylight.yangtools.antlrv4.code.gen.YangStatementParser; +import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import java.io.InputStream; import java.util.Date; +import java.util.HashSet; import java.util.List; import java.util.Objects; +import java.util.Set; import org.antlr.v4.runtime.ParserRuleContext; import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Belongs_to_stmtContext; import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Import_stmtContext; @@ -33,9 +27,17 @@ import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Revision_date_stmt import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Revision_stmtContext; import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Revision_stmtsContext; import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Submodule_stmtContext; +import org.opendaylight.yangtools.antlrv4.code.gen.YangStatementParser; +import org.opendaylight.yangtools.antlrv4.code.gen.YangStatementParser.StatementContext; +import org.opendaylight.yangtools.concepts.SemVer; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.ModuleImport; +import org.opendaylight.yangtools.yang.model.api.Rfc6020Mapping; import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException; +import org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils; +import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; +import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangStatementSourceImpl; /** * Helper transfer object which holds basic and dependency information for YANG @@ -484,11 +486,17 @@ public abstract class YangModelDependencyInfo { private static final class ModuleImportImpl implements ModuleImport { private final Date revision; + private final SemVer semVer; private final String name; public ModuleImportImpl(final String moduleName, final Date revision) { - this.name = moduleName; + this(moduleName, revision, Module.DEFAULT_SEMANTIC_VERSION); + } + + public ModuleImportImpl(final String moduleName, final Date revision, final SemVer semVer) { + this.name = Preconditions.checkNotNull(moduleName, "Module name must not be null."); this.revision = revision; + this.semVer = Preconditions.checkNotNull(semVer, "Semantic version of module must not be null."); } @Override @@ -501,6 +509,11 @@ public abstract class YangModelDependencyInfo { return this.revision; } + @Override + public SemVer getSemanticVersion() { + return this.semVer; + } + @Override public String getPrefix() { return null; @@ -512,6 +525,7 @@ public abstract class YangModelDependencyInfo { int result = 1; result = prime * result + Objects.hashCode(name); result = prime * result + Objects.hashCode(revision); + result = prime * result + Objects.hashCode(semVer); return result; } @@ -541,6 +555,10 @@ public abstract class YangModelDependencyInfo { } else if (!revision.equals(other.revision)) { return false; } + + if (!Objects.equals(getSemanticVersion(), other.getSemanticVersion())) { + return false; + } return true; }