summaryrefslogtreecommitdiffstats
path: root/document
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-09-12 08:43:04 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2018-09-12 08:43:04 +0200
commit6622ef49ea6a9336339dbe6ec6d54153d590ad30 (patch)
tree32474f8003c469fc23ed99c461cc9f244ebd6f84 /document
parente081b9a0cf120903ee5ddaf852245c05ece3b0c2 (diff)
Just compare what is necessary for equality.
Diffstat (limited to 'document')
-rw-r--r--document/src/main/java/com/yahoo/document/DataType.java4
-rw-r--r--document/src/main/java/com/yahoo/document/ReferenceDataType.java15
2 files changed, 16 insertions, 3 deletions
diff --git a/document/src/main/java/com/yahoo/document/DataType.java b/document/src/main/java/com/yahoo/document/DataType.java
index abdbf394591..3f34314f0de 100644
--- a/document/src/main/java/com/yahoo/document/DataType.java
+++ b/document/src/main/java/com/yahoo/document/DataType.java
@@ -246,9 +246,7 @@ public abstract class DataType extends Identifiable implements Serializable, Com
}
public boolean equals(Object other) {
- if (!(other instanceof DataType)) return false;
- DataType type = (DataType)other;
- return (name.equals(type.name) && dataTypeId == type.dataTypeId);
+ return (other instanceof DataType) && (dataTypeId == ((DataType)other).dataTypeId);
}
public String toString() {
diff --git a/document/src/main/java/com/yahoo/document/ReferenceDataType.java b/document/src/main/java/com/yahoo/document/ReferenceDataType.java
index 5b5ba256f43..32c6f86ea31 100644
--- a/document/src/main/java/com/yahoo/document/ReferenceDataType.java
+++ b/document/src/main/java/com/yahoo/document/ReferenceDataType.java
@@ -98,4 +98,19 @@ public class ReferenceDataType extends DataType {
ReferenceFieldValue rhs = (ReferenceFieldValue)value;
return rhs.getDataType().equals(this);
}
+
+ @Override
+ public int compareTo(DataType rhs) {
+ int cmp = super.compareTo(rhs);
+ return (cmp != 0)
+ ? cmp
+ : (rhs instanceof ReferenceDataType) ? targetType.compareTo(((ReferenceDataType) rhs).targetType) : 0;
+ }
+
+ @Override
+ public boolean equals(Object rhs) {
+ return super.equals(rhs)
+ && (rhs instanceof ReferenceDataType)
+ && targetType.equals(((ReferenceDataType) rhs).targetType);
+ }
}