import static com.google.common.base.Preconditions.checkNotNull;
-import com.google.common.base.Optional;
+import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil;
+import com.google.common.base.Optional;
import java.net.URI;
import java.util.Date;
-
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier;
if (this == o) {
return true;
}
- if (o == null || (o instanceof ModuleIdentifier == false)) {
+ if (o == null || (!(o instanceof ModuleIdentifier))) {
return false;
}
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;
}