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%2FModuleIdentifierImpl.java;h=6e825dd666473fe878c46deb8bbc85f41c732517;hb=481a692d463636bbcf75f023da71703913e1b605;hp=5a32774036a56b0809a68863a893c9e5a8f43020;hpb=b51d2c3dd9bde3f119b3fd41f865dfd0083ef7a4;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleIdentifierImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleIdentifierImpl.java index 5a32774036..6e825dd666 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleIdentifierImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleIdentifierImpl.java @@ -9,6 +9,8 @@ package org.opendaylight.yangtools.yang.parser.builder.impl; import static com.google.common.base.Preconditions.checkNotNull; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; + import com.google.common.base.Optional; import java.net.URI; import java.util.Date; @@ -77,8 +79,29 @@ public class ModuleIdentifierImpl implements ModuleIdentifier { if (getNamespace() != null && !getNamespace().equals(that.getNamespace())) { return false; } + + Date defaultRev = SimpleDateFormatUtil.DEFAULT_DATE_REV; + Date defaultImp = SimpleDateFormatUtil.DEFAULT_DATE_IMP; + + // if revision is in import only, spec says that it is undefined which + // revision to take + if (getRevision() == defaultImp ^ that.getRevision() == defaultImp) { + return true; + } + + // default and none revisions taken as equal + if ((defaultRev.equals(getRevision()) && that.getRevision() == null) + || (defaultRev.equals(that.getRevision()) && getRevision() == null)) { + return true; + } + + // else if none of them is default and one null + if (getRevision() == null ^ that.getRevision() == null) { + return false; + } + // only fail if this revision is non-null - if (getRevision() != null && !getRevision().equals(that.getRevision())) { + if (getRevision() != null && that.getRevision() != null && !getRevision().equals(that.getRevision())) { return false; }