diff options
Diffstat (limited to 'document/src')
-rw-r--r-- | document/src/main/java/com/yahoo/document/DataType.java | 4 | ||||
-rw-r--r-- | document/src/main/java/com/yahoo/document/ReferenceDataType.java | 15 |
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); + } } |