summaryrefslogtreecommitdiffstats
path: root/document/src
diff options
context:
space:
mode:
Diffstat (limited to 'document/src')
-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);
+ }
}