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;
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;
}