diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2020-09-29 19:15:29 +0200 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2020-09-30 10:23:35 +0200 |
commit | 96c27a8107d572f624018f367a369989efa74f84 (patch) | |
tree | 78c56cb0a700681dc982244e7a3e7a5d3d3e5a48 | |
parent | 9a999a7a7b87d3c5f731c9c5a90d158b93359a1a (diff) |
Add equals and hashCode to some classes
7 files changed, 67 insertions, 3 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/RequestHandlerTestDriver.java b/container-core/src/main/java/com/yahoo/container/jdisc/RequestHandlerTestDriver.java index 8243ad07760..a3e264c16ee 100644 --- a/container-core/src/main/java/com/yahoo/container/jdisc/RequestHandlerTestDriver.java +++ b/container-core/src/main/java/com/yahoo/container/jdisc/RequestHandlerTestDriver.java @@ -127,7 +127,7 @@ public class RequestHandlerTestDriver implements AutoCloseable { public String read() { ByteBuffer nextBuffer = content.read(); if (nextBuffer == null) return null; // end of transmission - return Charset.forName("utf-8").decode(nextBuffer).toString(); + return StandardCharsets.UTF_8.decode(nextBuffer).toString(); } /** Returns the number of bytes available in the handler right now */ diff --git a/document/abi-spec.json b/document/abi-spec.json index e53cf09f07e..c9191aa2fdb 100644 --- a/document/abi-spec.json +++ b/document/abi-spec.json @@ -399,6 +399,8 @@ "public com.yahoo.document.DocumentId getId()", "public void <init>(com.yahoo.document.DocumentPut)", "public void <init>(com.yahoo.document.DocumentPut, com.yahoo.document.Document)", + "public boolean equals(java.lang.Object)", + "public int hashCode()", "public java.lang.String toString()" ], "fields": [] @@ -1929,6 +1931,8 @@ "public java.lang.String getSelection()", "public boolean isPresent()", "public static com.yahoo.document.TestAndSetCondition fromConditionString(java.util.Optional)", + "public boolean equals(java.lang.Object)", + "public int hashCode()", "public java.lang.String toString()" ], "fields": [ diff --git a/document/src/main/java/com/yahoo/document/DocumentPut.java b/document/src/main/java/com/yahoo/document/DocumentPut.java index c5ce2e7e181..e24388cd65f 100644 --- a/document/src/main/java/com/yahoo/document/DocumentPut.java +++ b/document/src/main/java/com/yahoo/document/DocumentPut.java @@ -1,6 +1,8 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.document; +import java.util.Objects; + /** * @author Vegard Sjonfjell */ @@ -47,6 +49,20 @@ public class DocumentPut extends DocumentOperation { } @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DocumentPut that = (DocumentPut) o; + return document.equals(that.document) && + getCondition().equals(that.getCondition()); + } + + @Override + public int hashCode() { + return Objects.hash(document, getCondition()); + } + + @Override public String toString() { return "put of document " + getId(); } diff --git a/document/src/main/java/com/yahoo/document/TestAndSetCondition.java b/document/src/main/java/com/yahoo/document/TestAndSetCondition.java index 6a189fc2969..a582807e38c 100644 --- a/document/src/main/java/com/yahoo/document/TestAndSetCondition.java +++ b/document/src/main/java/com/yahoo/document/TestAndSetCondition.java @@ -1,6 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.document; +import java.util.Objects; import java.util.Optional; /** @@ -43,6 +44,19 @@ public class TestAndSetCondition { } @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + TestAndSetCondition that = (TestAndSetCondition) o; + return conditionStr.equals(that.conditionStr); + } + + @Override + public int hashCode() { + return Objects.hash(conditionStr); + } + + @Override public String toString() { StringBuilder string = new StringBuilder(); string.append("condition '"); diff --git a/documentapi/abi-spec.json b/documentapi/abi-spec.json index e531e886dd9..6b44153faca 100644 --- a/documentapi/abi-spec.json +++ b/documentapi/abi-spec.json @@ -170,7 +170,10 @@ "public java.util.Optional priority()", "public java.util.Optional fieldSet()", "public java.util.Optional route()", - "public java.util.OptionalInt traceLevel()" + "public java.util.OptionalInt traceLevel()", + "public boolean equals(java.lang.Object)", + "public int hashCode()", + "public java.lang.String toString()" ], "fields": [] }, diff --git a/documentapi/src/main/java/com/yahoo/documentapi/DocumentOperationParameters.java b/documentapi/src/main/java/com/yahoo/documentapi/DocumentOperationParameters.java index 3258c2f5b2c..05535e540b5 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/DocumentOperationParameters.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/DocumentOperationParameters.java @@ -5,6 +5,7 @@ import com.yahoo.document.fieldset.FieldSet; import com.yahoo.document.fieldset.FieldSetRepo; import com.yahoo.documentapi.messagebus.protocol.DocumentProtocol; +import java.util.Objects; import java.util.Optional; import java.util.OptionalInt; @@ -68,4 +69,30 @@ public class DocumentOperationParameters { public Optional<String> route() { return Optional.ofNullable(route); } public OptionalInt traceLevel() { return traceLevel >= 0 ? OptionalInt.of(traceLevel) : OptionalInt.empty(); } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DocumentOperationParameters that = (DocumentOperationParameters) o; + return traceLevel == that.traceLevel && + priority == that.priority && + Objects.equals(fieldSet, that.fieldSet) && + Objects.equals(route, that.route); + } + + @Override + public int hashCode() { + return Objects.hash(priority, fieldSet, route, traceLevel); + } + + @Override + public String toString() { + return "DocumentOperationParameters{" + + "priority=" + priority + + ", fieldSet='" + fieldSet + '\'' + + ", route='" + route + '\'' + + ", traceLevel=" + traceLevel + + '}'; + } + } diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/test/TestDriver.java b/jdisc_core/src/main/java/com/yahoo/jdisc/test/TestDriver.java index 35d29fd9e44..eebaf1f579f 100644 --- a/jdisc_core/src/main/java/com/yahoo/jdisc/test/TestDriver.java +++ b/jdisc_core/src/main/java/com/yahoo/jdisc/test/TestDriver.java @@ -41,7 +41,7 @@ import java.util.concurrent.atomic.AtomicInteger; * {@link BootstrapLoader} that provides convenient access to the {@link ContainerActivator} and {@link * CurrentContainer} interfaces. A typical test case using this class looks as follows:</p> * <pre> - * {@literal @}Test + *{@literal @}Test * public void requireThatMyComponentIsWellBehaved() { * TestDriver driver = TestDriver.newSimpleApplicationInstanceWithoutOsgi(); * ContainerBuilder builder = driver.newContainerBuilder(); |