diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/binary/BinaryAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/binary/BinaryAliasExample.java index 6747ab74f..038dfd95b 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/binary/BinaryAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/binary/BinaryAliasExample.java @@ -28,13 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof BinaryAliasExample && this.value.equals(((BinaryAliasExample) other).value)); + return this == other || (other instanceof BinaryAliasExample && equalTo((BinaryAliasExample) other)); + } + + private boolean equalTo(BinaryAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasOptionalDoubleAliasedBinaryResult.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasOptionalDoubleAliasedBinaryResult.java index 23db5aadc..058a3bbc8 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasOptionalDoubleAliasedBinaryResult.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasOptionalDoubleAliasedBinaryResult.java @@ -36,12 +36,16 @@ public String toString() { public boolean equals(@Nullable Object other) { return this == other || (other instanceof AliasOptionalDoubleAliasedBinaryResult - && this.value.equals(((AliasOptionalDoubleAliasedBinaryResult) other).value)); + && equalTo((AliasOptionalDoubleAliasedBinaryResult) other)); + } + + private boolean equalTo(AliasOptionalDoubleAliasedBinaryResult other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedBinaryResult.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedBinaryResult.java index 393b5b2a0..65f21f247 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedBinaryResult.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedBinaryResult.java @@ -28,13 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof AliasedBinaryResult && this.value.equals(((AliasedBinaryResult) other).value)); + return this == other || (other instanceof AliasedBinaryResult && equalTo((AliasedBinaryResult) other)); + } + + private boolean equalTo(AliasedBinaryResult other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedBoolean.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedBoolean.java index 593c18664..5d5bd726f 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedBoolean.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedBoolean.java @@ -25,12 +25,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof AliasedBoolean && this.value == ((AliasedBoolean) other).value); + return this == other || (other instanceof AliasedBoolean && equalTo((AliasedBoolean) other)); + } + + private boolean equalTo(AliasedBoolean other) { + return this.value == other.value; } @Override public int hashCode() { - return Boolean.hashCode(value); + return Boolean.hashCode(this.value); } public static AliasedBoolean valueOf(String value) { diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedDouble.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedDouble.java index 1f7e03344..ce7dd6395 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedDouble.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedDouble.java @@ -27,15 +27,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof AliasedDouble - && Double.doubleToLongBits(this.value) - == Double.doubleToLongBits(((AliasedDouble) other).value)); + return this == other || (other instanceof AliasedDouble && equalTo((AliasedDouble) other)); + } + + private boolean equalTo(AliasedDouble other) { + return Double.doubleToLongBits(this.value) == Double.doubleToLongBits(other.value); } @Override public int hashCode() { - return Double.hashCode(value); + return Double.hashCode(this.value); } @Override diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedInteger.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedInteger.java index 4aa10965f..f628cb4f9 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedInteger.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedInteger.java @@ -25,12 +25,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof AliasedInteger && this.value == ((AliasedInteger) other).value); + return this == other || (other instanceof AliasedInteger && equalTo((AliasedInteger) other)); + } + + private boolean equalTo(AliasedInteger other) { + return this.value == other.value; } @Override public int hashCode() { - return Integer.hashCode(value); + return this.value; } @Override diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedSafeLong.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedSafeLong.java index 9435420fb..9cc3643f1 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedSafeLong.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/AliasedSafeLong.java @@ -28,13 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof AliasedSafeLong && this.value.equals(((AliasedSafeLong) other).value)); + return this == other || (other instanceof AliasedSafeLong && equalTo((AliasedSafeLong) other)); + } + + private boolean equalTo(AliasedSafeLong other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @Override diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/BearerTokenAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/BearerTokenAliasExample.java index 4b403583f..2cefeaa57 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/BearerTokenAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/BearerTokenAliasExample.java @@ -30,14 +30,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof BearerTokenAliasExample - && this.value.equals(((BearerTokenAliasExample) other).value)); + return this == other || (other instanceof BearerTokenAliasExample && equalTo((BearerTokenAliasExample) other)); + } + + private boolean equalTo(BearerTokenAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } public static BearerTokenAliasExample valueOf(@DoNotLog String value) { diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/BinaryAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/BinaryAliasExample.java index 0e5577ba6..2db4d2265 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/BinaryAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/BinaryAliasExample.java @@ -28,13 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof BinaryAliasExample && this.value.equals(((BinaryAliasExample) other).value)); + return this == other || (other instanceof BinaryAliasExample && equalTo((BinaryAliasExample) other)); + } + + private boolean equalTo(BinaryAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/BinaryAliasOne.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/BinaryAliasOne.java index 0fa90b223..2d706a9e4 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/BinaryAliasOne.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/BinaryAliasOne.java @@ -28,12 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof BinaryAliasOne && this.value.equals(((BinaryAliasOne) other).value)); + return this == other || (other instanceof BinaryAliasOne && equalTo((BinaryAliasOne) other)); + } + + private boolean equalTo(BinaryAliasOne other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/BinaryAliasTwo.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/BinaryAliasTwo.java index de8d68082..e823b2326 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/BinaryAliasTwo.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/BinaryAliasTwo.java @@ -27,12 +27,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof BinaryAliasTwo && this.value.equals(((BinaryAliasTwo) other).value)); + return this == other || (other instanceof BinaryAliasTwo && equalTo((BinaryAliasTwo) other)); + } + + private boolean equalTo(BinaryAliasTwo other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/BooleanAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/BooleanAliasExample.java index fadc052dd..9618e7692 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/BooleanAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/BooleanAliasExample.java @@ -25,13 +25,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof BooleanAliasExample && this.value == ((BooleanAliasExample) other).value); + return this == other || (other instanceof BooleanAliasExample && equalTo((BooleanAliasExample) other)); + } + + private boolean equalTo(BooleanAliasExample other) { + return this.value == other.value; } @Override public int hashCode() { - return Boolean.hashCode(value); + return Boolean.hashCode(this.value); } public static BooleanAliasExample valueOf(String value) { diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/CollectionsTestAliasList.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/CollectionsTestAliasList.java index cd43adae6..67fa51dd8 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/CollectionsTestAliasList.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/CollectionsTestAliasList.java @@ -15,6 +15,8 @@ public final class CollectionsTestAliasList { private final List value; + private int memoizedHashCode; + private CollectionsTestAliasList(@Nonnull List value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -36,13 +38,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { return this == other - || (other instanceof CollectionsTestAliasList - && this.value.equals(((CollectionsTestAliasList) other).value)); + || (other instanceof CollectionsTestAliasList && equalTo((CollectionsTestAliasList) other)); + } + + private boolean equalTo(CollectionsTestAliasList other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.hashCode(); + memoizedHashCode = result; + } + return result; } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/CollectionsTestAliasMap.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/CollectionsTestAliasMap.java index 2bd1f8c80..78f40ce49 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/CollectionsTestAliasMap.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/CollectionsTestAliasMap.java @@ -15,6 +15,8 @@ public final class CollectionsTestAliasMap { private final Map value; + private int memoizedHashCode; + private CollectionsTestAliasMap(@Nonnull Map value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -35,14 +37,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof CollectionsTestAliasMap - && this.value.equals(((CollectionsTestAliasMap) other).value)); + return this == other || (other instanceof CollectionsTestAliasMap && equalTo((CollectionsTestAliasMap) other)); + } + + private boolean equalTo(CollectionsTestAliasMap other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.hashCode(); + memoizedHashCode = result; + } + return result; } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/CollectionsTestAliasSet.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/CollectionsTestAliasSet.java index 2e329b415..b8a0349e5 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/CollectionsTestAliasSet.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/CollectionsTestAliasSet.java @@ -15,6 +15,8 @@ public final class CollectionsTestAliasSet { private final Set value; + private int memoizedHashCode; + private CollectionsTestAliasSet(@Nonnull Set value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -35,14 +37,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof CollectionsTestAliasSet - && this.value.equals(((CollectionsTestAliasSet) other).value)); + return this == other || (other instanceof CollectionsTestAliasSet && equalTo((CollectionsTestAliasSet) other)); + } + + private boolean equalTo(CollectionsTestAliasSet other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.hashCode(); + memoizedHashCode = result; + } + return result; } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/DangerousLongAlias.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/DangerousLongAlias.java index 6fc27a17c..bc525d561 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/DangerousLongAlias.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/DangerousLongAlias.java @@ -28,13 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof DangerousLongAlias && this.value == ((DangerousLongAlias) other).value); + return this == other || (other instanceof DangerousLongAlias && equalTo((DangerousLongAlias) other)); + } + + private boolean equalTo(DangerousLongAlias other) { + return this.value == other.value; } @Override public int hashCode() { - return Long.hashCode(value); + return Long.hashCode(this.value); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/DateTimeAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/DateTimeAliasExample.java index c9d658e7b..8630ff805 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/DateTimeAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/DateTimeAliasExample.java @@ -12,6 +12,8 @@ public final class DateTimeAliasExample implements Comparable { private final OffsetDateTime value; + private int memoizedHashCode; + private DateTimeAliasExample(@Nonnull OffsetDateTime value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -28,13 +30,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof DateTimeAliasExample && this.value.equals(((DateTimeAliasExample) other).value)); + return this == other || (other instanceof DateTimeAliasExample && equalTo((DateTimeAliasExample) other)); + } + + private boolean equalTo(DateTimeAliasExample other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.isEqual(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.toInstant().hashCode(); + memoizedHashCode = result; + } + return result; } @Override diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/DoubleAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/DoubleAliasExample.java index 4f38efc8b..b4f4bda83 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/DoubleAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/DoubleAliasExample.java @@ -27,15 +27,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof DoubleAliasExample - && Double.doubleToLongBits(this.value) - == Double.doubleToLongBits(((DoubleAliasExample) other).value)); + return this == other || (other instanceof DoubleAliasExample && equalTo((DoubleAliasExample) other)); + } + + private boolean equalTo(DoubleAliasExample other) { + return Double.doubleToLongBits(this.value) == Double.doubleToLongBits(other.value); } @Override public int hashCode() { - return Double.hashCode(value); + return Double.hashCode(this.value); } @Override diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/DoubleAliasedBinaryResult.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/DoubleAliasedBinaryResult.java index 315ef8671..b87d4d07d 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/DoubleAliasedBinaryResult.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/DoubleAliasedBinaryResult.java @@ -28,13 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { return this == other - || (other instanceof DoubleAliasedBinaryResult - && this.value.equals(((DoubleAliasedBinaryResult) other).value)); + || (other instanceof DoubleAliasedBinaryResult && equalTo((DoubleAliasedBinaryResult) other)); + } + + private boolean equalTo(DoubleAliasedBinaryResult other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalLongAlias.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalLongAlias.java index 164a5bd58..cf408a872 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalLongAlias.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalLongAlias.java @@ -25,12 +25,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof ExternalLongAlias && this.value == ((ExternalLongAlias) other).value); + return this == other || (other instanceof ExternalLongAlias && equalTo((ExternalLongAlias) other)); + } + + private boolean equalTo(ExternalLongAlias other) { + return this.value == other.value; } @Override public int hashCode() { - return Long.hashCode(value); + return Long.hashCode(this.value); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalLongAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalLongAliasExample.java index ee68f3296..58c750b60 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalLongAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalLongAliasExample.java @@ -26,13 +26,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { return this == other - || (other instanceof ExternalLongAliasExample - && this.value == ((ExternalLongAliasExample) other).value); + || (other instanceof ExternalLongAliasExample && equalTo((ExternalLongAliasExample) other)); + } + + private boolean equalTo(ExternalLongAliasExample other) { + return this.value == other.value; } @Override public int hashCode() { - return Long.hashCode(value); + return Long.hashCode(this.value); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalLongAliasOne.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalLongAliasOne.java index 4090fc09d..6990e21ea 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalLongAliasOne.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalLongAliasOne.java @@ -25,13 +25,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof ExternalLongAliasOne && this.value == ((ExternalLongAliasOne) other).value); + return this == other || (other instanceof ExternalLongAliasOne && equalTo((ExternalLongAliasOne) other)); + } + + private boolean equalTo(ExternalLongAliasOne other) { + return this.value == other.value; } @Override public int hashCode() { - return Long.hashCode(value); + return Long.hashCode(this.value); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalLongAliasTwo.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalLongAliasTwo.java index 66edc6e1b..62c74f36a 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalLongAliasTwo.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalLongAliasTwo.java @@ -27,13 +27,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof ExternalLongAliasTwo && this.value.equals(((ExternalLongAliasTwo) other).value)); + return this == other || (other instanceof ExternalLongAliasTwo && equalTo((ExternalLongAliasTwo) other)); + } + + private boolean equalTo(ExternalLongAliasTwo other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } public static ExternalLongAliasTwo valueOf(String value) { diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalStringAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalStringAliasExample.java index a01df6d20..f3b57ecae 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalStringAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/ExternalStringAliasExample.java @@ -28,13 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { return this == other - || (other instanceof ExternalStringAliasExample - && this.value.equals(((ExternalStringAliasExample) other).value)); + || (other instanceof ExternalStringAliasExample && equalTo((ExternalStringAliasExample) other)); + } + + private boolean equalTo(ExternalStringAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/IntegerAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/IntegerAliasExample.java index 39978b20e..328600526 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/IntegerAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/IntegerAliasExample.java @@ -25,13 +25,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof IntegerAliasExample && this.value == ((IntegerAliasExample) other).value); + return this == other || (other instanceof IntegerAliasExample && equalTo((IntegerAliasExample) other)); + } + + private boolean equalTo(IntegerAliasExample other) { + return this.value == other.value; } @Override public int hashCode() { - return Integer.hashCode(value); + return this.value; } @Override diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/ListAlias.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/ListAlias.java index f88b57cce..effe58939 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/ListAlias.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/ListAlias.java @@ -15,6 +15,8 @@ public final class ListAlias { private final List value; + private int memoizedHashCode; + private ListAlias(@Nonnull List value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -35,12 +37,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof ListAlias && this.value.equals(((ListAlias) other).value)); + return this == other || (other instanceof ListAlias && equalTo((ListAlias) other)); + } + + private boolean equalTo(ListAlias other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.hashCode(); + memoizedHashCode = result; + } + return result; } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/LongAlias.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/LongAlias.java index 04bbf0be1..bb17e468e 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/LongAlias.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/LongAlias.java @@ -25,12 +25,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof LongAlias && this.value == ((LongAlias) other).value); + return this == other || (other instanceof LongAlias && equalTo((LongAlias) other)); + } + + private boolean equalTo(LongAlias other) { + return this.value == other.value; } @Override public int hashCode() { - return Long.hashCode(value); + return Long.hashCode(this.value); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/MapAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/MapAliasExample.java index 3302212de..cbbaea4a7 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/MapAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/MapAliasExample.java @@ -15,6 +15,8 @@ public final class MapAliasExample { private final Map value; + private int memoizedHashCode; + private MapAliasExample(@Nonnull Map value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -35,13 +37,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof MapAliasExample && this.value.equals(((MapAliasExample) other).value)); + return this == other || (other instanceof MapAliasExample && equalTo((MapAliasExample) other)); + } + + private boolean equalTo(MapAliasExample other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.hashCode(); + memoizedHashCode = result; + } + return result; } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/NestedStringAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/NestedStringAliasExample.java index a06fb077f..2d8f1ec4f 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/NestedStringAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/NestedStringAliasExample.java @@ -30,13 +30,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { return this == other - || (other instanceof NestedStringAliasExample - && this.value.equals(((NestedStringAliasExample) other).value)); + || (other instanceof NestedStringAliasExample && equalTo((NestedStringAliasExample) other)); + } + + private boolean equalTo(NestedStringAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } public static NestedStringAliasExample valueOf(@Safe String value) { diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalAlias.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalAlias.java index d7f032c04..f5e29b977 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalAlias.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalAlias.java @@ -37,12 +37,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof OptionalAlias && this.value.equals(((OptionalAlias) other).value)); + return this == other || (other instanceof OptionalAlias && equalTo((OptionalAlias) other)); + } + + private boolean equalTo(OptionalAlias other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalDoubleAlias.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalDoubleAlias.java index c39af4626..09ad74483 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalDoubleAlias.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalDoubleAlias.java @@ -37,13 +37,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof OptionalDoubleAlias && this.value.equals(((OptionalDoubleAlias) other).value)); + return this == other || (other instanceof OptionalDoubleAlias && equalTo((OptionalDoubleAlias) other)); + } + + private boolean equalTo(OptionalDoubleAlias other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalListAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalListAliasExample.java index 8b8e3a521..9033b7206 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalListAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalListAliasExample.java @@ -15,6 +15,8 @@ public final class OptionalListAliasExample { private final Optional> value; + private int memoizedHashCode; + private OptionalListAliasExample(@Nonnull Optional> value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -36,13 +38,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { return this == other - || (other instanceof OptionalListAliasExample - && this.value.equals(((OptionalListAliasExample) other).value)); + || (other instanceof OptionalListAliasExample && equalTo((OptionalListAliasExample) other)); + } + + private boolean equalTo(OptionalListAliasExample other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.hashCode(); + memoizedHashCode = result; + } + return result; } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalMapAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalMapAliasExample.java index ebb04c0c8..a0bcd1772 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalMapAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalMapAliasExample.java @@ -15,6 +15,8 @@ public final class OptionalMapAliasExample { private final Optional> value; + private int memoizedHashCode; + private OptionalMapAliasExample(@Nonnull Optional> value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -35,14 +37,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof OptionalMapAliasExample - && this.value.equals(((OptionalMapAliasExample) other).value)); + return this == other || (other instanceof OptionalMapAliasExample && equalTo((OptionalMapAliasExample) other)); + } + + private boolean equalTo(OptionalMapAliasExample other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.hashCode(); + memoizedHashCode = result; + } + return result; } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalSetAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalSetAliasExample.java index 92d9829eb..180741326 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalSetAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/OptionalSetAliasExample.java @@ -15,6 +15,8 @@ public final class OptionalSetAliasExample { private final Optional> value; + private int memoizedHashCode; + private OptionalSetAliasExample(@Nonnull Optional> value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -35,14 +37,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof OptionalSetAliasExample - && this.value.equals(((OptionalSetAliasExample) other).value)); + return this == other || (other instanceof OptionalSetAliasExample && equalTo((OptionalSetAliasExample) other)); + } + + private boolean equalTo(OptionalSetAliasExample other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.hashCode(); + memoizedHashCode = result; + } + return result; } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/ReferenceAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/ReferenceAliasExample.java index 10b7884f4..78e72f7ef 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/ReferenceAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/ReferenceAliasExample.java @@ -27,13 +27,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof ReferenceAliasExample && this.value.equals(((ReferenceAliasExample) other).value)); + return this == other || (other instanceof ReferenceAliasExample && equalTo((ReferenceAliasExample) other)); + } + + private boolean equalTo(ReferenceAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/RidAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/RidAliasExample.java index 03f0d918a..580942ab2 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/RidAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/RidAliasExample.java @@ -28,13 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof RidAliasExample && this.value.equals(((RidAliasExample) other).value)); + return this == other || (other instanceof RidAliasExample && equalTo((RidAliasExample) other)); + } + + private boolean equalTo(RidAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } public static RidAliasExample valueOf(String value) { diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/SafeExternalLongAlias.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/SafeExternalLongAlias.java index 194420858..9cdcfddf5 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/SafeExternalLongAlias.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/SafeExternalLongAlias.java @@ -28,13 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof SafeExternalLongAlias && this.value == ((SafeExternalLongAlias) other).value); + return this == other || (other instanceof SafeExternalLongAlias && equalTo((SafeExternalLongAlias) other)); + } + + private boolean equalTo(SafeExternalLongAlias other) { + return this.value == other.value; } @Override public int hashCode() { - return Long.hashCode(value); + return Long.hashCode(this.value); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/SafeLongAlias.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/SafeLongAlias.java index b46880d8d..d069c0eff 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/SafeLongAlias.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/SafeLongAlias.java @@ -28,12 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof SafeLongAlias && this.value == ((SafeLongAlias) other).value); + return this == other || (other instanceof SafeLongAlias && equalTo((SafeLongAlias) other)); + } + + private boolean equalTo(SafeLongAlias other) { + return this.value == other.value; } @Override public int hashCode() { - return Long.hashCode(value); + return Long.hashCode(this.value); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/SafeLongAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/SafeLongAliasExample.java index 5412e93c9..f99660ec2 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/SafeLongAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/SafeLongAliasExample.java @@ -31,13 +31,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof SafeLongAliasExample && this.value.equals(((SafeLongAliasExample) other).value)); + return this == other || (other instanceof SafeLongAliasExample && equalTo((SafeLongAliasExample) other)); + } + + private boolean equalTo(SafeLongAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @Override diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/SetAlias.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/SetAlias.java index 4ce8c27dc..9b118c300 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/SetAlias.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/SetAlias.java @@ -15,6 +15,8 @@ public final class SetAlias { private final Set value; + private int memoizedHashCode; + private SetAlias(@Nonnull Set value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -35,12 +37,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof SetAlias && this.value.equals(((SetAlias) other).value)); + return this == other || (other instanceof SetAlias && equalTo((SetAlias) other)); + } + + private boolean equalTo(SetAlias other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.hashCode(); + memoizedHashCode = result; + } + return result; } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/StringAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/StringAliasExample.java index 371e5ca0a..3a2def8a0 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/StringAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/StringAliasExample.java @@ -30,13 +30,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof StringAliasExample && this.value.equals(((StringAliasExample) other).value)); + return this == other || (other instanceof StringAliasExample && equalTo((StringAliasExample) other)); + } + + private boolean equalTo(StringAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @Override diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/StringAliasOne.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/StringAliasOne.java index 0702a17e8..09326d647 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/StringAliasOne.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/StringAliasOne.java @@ -27,12 +27,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof StringAliasOne && this.value.equals(((StringAliasOne) other).value)); + return this == other || (other instanceof StringAliasOne && equalTo((StringAliasOne) other)); + } + + private boolean equalTo(StringAliasOne other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @Override diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/StringAliasThree.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/StringAliasThree.java index bd96480ef..9f5b63fe2 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/StringAliasThree.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/StringAliasThree.java @@ -27,13 +27,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof StringAliasThree && this.value.equals(((StringAliasThree) other).value)); + return this == other || (other instanceof StringAliasThree && equalTo((StringAliasThree) other)); + } + + private boolean equalTo(StringAliasThree other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/StringAliasTwo.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/StringAliasTwo.java index f7605dce6..d617e2da5 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/StringAliasTwo.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/StringAliasTwo.java @@ -34,12 +34,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof StringAliasTwo && this.value.equals(((StringAliasTwo) other).value)); + return this == other || (other instanceof StringAliasTwo && equalTo((StringAliasTwo) other)); + } + + private boolean equalTo(StringAliasTwo other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/UuidAliasExample.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/UuidAliasExample.java index 9f9b9dd0c..63ebf556b 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/UuidAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/UuidAliasExample.java @@ -28,13 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof UuidAliasExample && this.value.equals(((UuidAliasExample) other).value)); + return this == other || (other instanceof UuidAliasExample && equalTo((UuidAliasExample) other)); + } + + private boolean equalTo(UuidAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } public static UuidAliasExample valueOf(String value) { diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/external/AliasToExternal.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/external/AliasToExternal.java index f87bf7ff7..f0d7fcd58 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/external/AliasToExternal.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/external/AliasToExternal.java @@ -30,13 +30,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof AliasToExternal && this.value.equals(((AliasToExternal) other).value)); + return this == other || (other instanceof AliasToExternal && equalTo((AliasToExternal) other)); + } + + private boolean equalTo(AliasToExternal other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @Override diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BearerTokenAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BearerTokenAliasExample.java index bf5cf0d2b..62f779331 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BearerTokenAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BearerTokenAliasExample.java @@ -30,14 +30,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof BearerTokenAliasExample - && this.value.equals(((BearerTokenAliasExample) other).value)); + return this == other || (other instanceof BearerTokenAliasExample && equalTo((BearerTokenAliasExample) other)); + } + + private boolean equalTo(BearerTokenAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } public static BearerTokenAliasExample valueOf(@DoNotLog String value) { diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BinaryAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BinaryAliasExample.java index 86838b08f..8fbab3975 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BinaryAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BinaryAliasExample.java @@ -28,13 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof BinaryAliasExample && this.value.equals(((BinaryAliasExample) other).value)); + return this == other || (other instanceof BinaryAliasExample && equalTo((BinaryAliasExample) other)); + } + + private boolean equalTo(BinaryAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BinaryAliasOne.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BinaryAliasOne.java index bb572810c..a8e932a0d 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BinaryAliasOne.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BinaryAliasOne.java @@ -28,12 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof BinaryAliasOne && this.value.equals(((BinaryAliasOne) other).value)); + return this == other || (other instanceof BinaryAliasOne && equalTo((BinaryAliasOne) other)); + } + + private boolean equalTo(BinaryAliasOne other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BinaryAliasTwo.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BinaryAliasTwo.java index 4265bb0a3..61536a0b9 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BinaryAliasTwo.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BinaryAliasTwo.java @@ -27,12 +27,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof BinaryAliasTwo && this.value.equals(((BinaryAliasTwo) other).value)); + return this == other || (other instanceof BinaryAliasTwo && equalTo((BinaryAliasTwo) other)); + } + + private boolean equalTo(BinaryAliasTwo other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BooleanAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BooleanAliasExample.java index d8fc0e1ce..fb4f30e64 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BooleanAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/BooleanAliasExample.java @@ -25,13 +25,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof BooleanAliasExample && this.value == ((BooleanAliasExample) other).value); + return this == other || (other instanceof BooleanAliasExample && equalTo((BooleanAliasExample) other)); + } + + private boolean equalTo(BooleanAliasExample other) { + return this.value == other.value; } @Override public int hashCode() { - return Boolean.hashCode(value); + return Boolean.hashCode(this.value); } public static BooleanAliasExample valueOf(String value) { diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/DateTimeAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/DateTimeAliasExample.java index 9d30f7d3c..7743ad5d3 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/DateTimeAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/DateTimeAliasExample.java @@ -12,6 +12,8 @@ public final class DateTimeAliasExample implements Comparable { private final OffsetDateTime value; + private int memoizedHashCode; + private DateTimeAliasExample(@Nonnull OffsetDateTime value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -28,13 +30,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof DateTimeAliasExample && this.value.equals(((DateTimeAliasExample) other).value)); + return this == other || (other instanceof DateTimeAliasExample && equalTo((DateTimeAliasExample) other)); + } + + private boolean equalTo(DateTimeAliasExample other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.isEqual(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.toInstant().hashCode(); + memoizedHashCode = result; + } + return result; } @Override diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/DoubleAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/DoubleAliasExample.java index e54ac1bc0..c5d2cfa7d 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/DoubleAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/DoubleAliasExample.java @@ -27,15 +27,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof DoubleAliasExample - && Double.doubleToLongBits(this.value) - == Double.doubleToLongBits(((DoubleAliasExample) other).value)); + return this == other || (other instanceof DoubleAliasExample && equalTo((DoubleAliasExample) other)); + } + + private boolean equalTo(DoubleAliasExample other) { + return Double.doubleToLongBits(this.value) == Double.doubleToLongBits(other.value); } @Override public int hashCode() { - return Double.hashCode(value); + return Double.hashCode(this.value); } @Override diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ExternalLongAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ExternalLongAliasExample.java index e3fefa447..80e582952 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ExternalLongAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ExternalLongAliasExample.java @@ -26,13 +26,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { return this == other - || (other instanceof ExternalLongAliasExample - && this.value == ((ExternalLongAliasExample) other).value); + || (other instanceof ExternalLongAliasExample && equalTo((ExternalLongAliasExample) other)); + } + + private boolean equalTo(ExternalLongAliasExample other) { + return this.value == other.value; } @Override public int hashCode() { - return Long.hashCode(value); + return Long.hashCode(this.value); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ExternalLongAliasOne.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ExternalLongAliasOne.java index 7d3c94e73..76c628ec1 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ExternalLongAliasOne.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ExternalLongAliasOne.java @@ -25,13 +25,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof ExternalLongAliasOne && this.value == ((ExternalLongAliasOne) other).value); + return this == other || (other instanceof ExternalLongAliasOne && equalTo((ExternalLongAliasOne) other)); + } + + private boolean equalTo(ExternalLongAliasOne other) { + return this.value == other.value; } @Override public int hashCode() { - return Long.hashCode(value); + return Long.hashCode(this.value); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ExternalLongAliasTwo.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ExternalLongAliasTwo.java index f7612dcbd..9e0dfcd24 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ExternalLongAliasTwo.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ExternalLongAliasTwo.java @@ -27,13 +27,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof ExternalLongAliasTwo && this.value.equals(((ExternalLongAliasTwo) other).value)); + return this == other || (other instanceof ExternalLongAliasTwo && equalTo((ExternalLongAliasTwo) other)); + } + + private boolean equalTo(ExternalLongAliasTwo other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } public static ExternalLongAliasTwo valueOf(String value) { diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ExternalStringAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ExternalStringAliasExample.java index 90c700494..7bd1c5089 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ExternalStringAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ExternalStringAliasExample.java @@ -28,13 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { return this == other - || (other instanceof ExternalStringAliasExample - && this.value.equals(((ExternalStringAliasExample) other).value)); + || (other instanceof ExternalStringAliasExample && equalTo((ExternalStringAliasExample) other)); + } + + private boolean equalTo(ExternalStringAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/IntegerAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/IntegerAliasExample.java index 05ec5c345..fc3254448 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/IntegerAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/IntegerAliasExample.java @@ -25,13 +25,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof IntegerAliasExample && this.value == ((IntegerAliasExample) other).value); + return this == other || (other instanceof IntegerAliasExample && equalTo((IntegerAliasExample) other)); + } + + private boolean equalTo(IntegerAliasExample other) { + return this.value == other.value; } @Override public int hashCode() { - return Integer.hashCode(value); + return this.value; } @Override diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ListAlias.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ListAlias.java index 927c3c593..55f65cbfb 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ListAlias.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ListAlias.java @@ -15,6 +15,8 @@ public final class ListAlias { private final List value; + private int memoizedHashCode; + private ListAlias(@Nonnull List value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -35,12 +37,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof ListAlias && this.value.equals(((ListAlias) other).value)); + return this == other || (other instanceof ListAlias && equalTo((ListAlias) other)); + } + + private boolean equalTo(ListAlias other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.hashCode(); + memoizedHashCode = result; + } + return result; } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/MapAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/MapAliasExample.java index 5d9fd75f8..d05eda6b8 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/MapAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/MapAliasExample.java @@ -15,6 +15,8 @@ public final class MapAliasExample { private final Map value; + private int memoizedHashCode; + private MapAliasExample(@Nonnull Map value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -35,13 +37,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof MapAliasExample && this.value.equals(((MapAliasExample) other).value)); + return this == other || (other instanceof MapAliasExample && equalTo((MapAliasExample) other)); + } + + private boolean equalTo(MapAliasExample other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.hashCode(); + memoizedHashCode = result; + } + return result; } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/NestedStringAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/NestedStringAliasExample.java index 18d91c8ba..8f98da23c 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/NestedStringAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/NestedStringAliasExample.java @@ -30,13 +30,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { return this == other - || (other instanceof NestedStringAliasExample - && this.value.equals(((NestedStringAliasExample) other).value)); + || (other instanceof NestedStringAliasExample && equalTo((NestedStringAliasExample) other)); + } + + private boolean equalTo(NestedStringAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } public static NestedStringAliasExample valueOf(@Safe String value) { diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalAlias.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalAlias.java index 0b337f9f2..f5e0b300b 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalAlias.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalAlias.java @@ -37,12 +37,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof OptionalAlias && this.value.equals(((OptionalAlias) other).value)); + return this == other || (other instanceof OptionalAlias && equalTo((OptionalAlias) other)); + } + + private boolean equalTo(OptionalAlias other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalDoubleAlias.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalDoubleAlias.java index 21f45245c..384327146 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalDoubleAlias.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalDoubleAlias.java @@ -37,13 +37,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof OptionalDoubleAlias && this.value.equals(((OptionalDoubleAlias) other).value)); + return this == other || (other instanceof OptionalDoubleAlias && equalTo((OptionalDoubleAlias) other)); + } + + private boolean equalTo(OptionalDoubleAlias other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalListAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalListAliasExample.java index 0b4d518dc..1b6987ce5 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalListAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalListAliasExample.java @@ -15,6 +15,8 @@ public final class OptionalListAliasExample { private final Optional> value; + private int memoizedHashCode; + private OptionalListAliasExample(@Nonnull Optional> value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -36,13 +38,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { return this == other - || (other instanceof OptionalListAliasExample - && this.value.equals(((OptionalListAliasExample) other).value)); + || (other instanceof OptionalListAliasExample && equalTo((OptionalListAliasExample) other)); + } + + private boolean equalTo(OptionalListAliasExample other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.hashCode(); + memoizedHashCode = result; + } + return result; } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalMapAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalMapAliasExample.java index ff44b0957..28e459c92 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalMapAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalMapAliasExample.java @@ -15,6 +15,8 @@ public final class OptionalMapAliasExample { private final Optional> value; + private int memoizedHashCode; + private OptionalMapAliasExample(@Nonnull Optional> value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -35,14 +37,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof OptionalMapAliasExample - && this.value.equals(((OptionalMapAliasExample) other).value)); + return this == other || (other instanceof OptionalMapAliasExample && equalTo((OptionalMapAliasExample) other)); + } + + private boolean equalTo(OptionalMapAliasExample other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.hashCode(); + memoizedHashCode = result; + } + return result; } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalSetAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalSetAliasExample.java index 4a8750aa4..82540ec3a 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalSetAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/OptionalSetAliasExample.java @@ -15,6 +15,8 @@ public final class OptionalSetAliasExample { private final Optional> value; + private int memoizedHashCode; + private OptionalSetAliasExample(@Nonnull Optional> value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -35,14 +37,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof OptionalSetAliasExample - && this.value.equals(((OptionalSetAliasExample) other).value)); + return this == other || (other instanceof OptionalSetAliasExample && equalTo((OptionalSetAliasExample) other)); + } + + private boolean equalTo(OptionalSetAliasExample other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.hashCode(); + memoizedHashCode = result; + } + return result; } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ReferenceAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ReferenceAliasExample.java index 96930af07..a8827be6a 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ReferenceAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/ReferenceAliasExample.java @@ -27,13 +27,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof ReferenceAliasExample && this.value.equals(((ReferenceAliasExample) other).value)); + return this == other || (other instanceof ReferenceAliasExample && equalTo((ReferenceAliasExample) other)); + } + + private boolean equalTo(ReferenceAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/RidAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/RidAliasExample.java index 386c1d12e..35bec3815 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/RidAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/RidAliasExample.java @@ -28,13 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof RidAliasExample && this.value.equals(((RidAliasExample) other).value)); + return this == other || (other instanceof RidAliasExample && equalTo((RidAliasExample) other)); + } + + private boolean equalTo(RidAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } public static RidAliasExample valueOf(String value) { diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/SafeExternalLongAlias.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/SafeExternalLongAlias.java index ece49d07c..0ad0e291a 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/SafeExternalLongAlias.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/SafeExternalLongAlias.java @@ -28,13 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof SafeExternalLongAlias && this.value == ((SafeExternalLongAlias) other).value); + return this == other || (other instanceof SafeExternalLongAlias && equalTo((SafeExternalLongAlias) other)); + } + + private boolean equalTo(SafeExternalLongAlias other) { + return this.value == other.value; } @Override public int hashCode() { - return Long.hashCode(value); + return Long.hashCode(this.value); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/SafeLongAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/SafeLongAliasExample.java index a7d0ff579..e16e76f21 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/SafeLongAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/SafeLongAliasExample.java @@ -31,13 +31,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof SafeLongAliasExample && this.value.equals(((SafeLongAliasExample) other).value)); + return this == other || (other instanceof SafeLongAliasExample && equalTo((SafeLongAliasExample) other)); + } + + private boolean equalTo(SafeLongAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @Override diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/SetAlias.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/SetAlias.java index b373e4972..35a29e7e8 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/SetAlias.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/SetAlias.java @@ -15,6 +15,8 @@ public final class SetAlias { private final Set value; + private int memoizedHashCode; + private SetAlias(@Nonnull Set value) { this.value = Preconditions.checkNotNull(value, "value cannot be null"); } @@ -35,12 +37,26 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof SetAlias && this.value.equals(((SetAlias) other).value)); + return this == other || (other instanceof SetAlias && equalTo((SetAlias) other)); + } + + private boolean equalTo(SetAlias other) { + if (this.memoizedHashCode != 0 + && other.memoizedHashCode != 0 + && this.memoizedHashCode != other.memoizedHashCode) { + return false; + } + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + int result = memoizedHashCode; + if (result == 0) { + result = this.value.hashCode(); + memoizedHashCode = result; + } + return result; } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/StringAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/StringAliasExample.java index 096886193..70b1000ea 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/StringAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/StringAliasExample.java @@ -30,13 +30,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof StringAliasExample && this.value.equals(((StringAliasExample) other).value)); + return this == other || (other instanceof StringAliasExample && equalTo((StringAliasExample) other)); + } + + private boolean equalTo(StringAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @Override diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/StringAliasOne.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/StringAliasOne.java index fe6b0f356..6716a3bf5 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/StringAliasOne.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/StringAliasOne.java @@ -27,12 +27,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof StringAliasOne && this.value.equals(((StringAliasOne) other).value)); + return this == other || (other instanceof StringAliasOne && equalTo((StringAliasOne) other)); + } + + private boolean equalTo(StringAliasOne other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @Override diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/StringAliasThree.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/StringAliasThree.java index 10c6e0635..b2116ed4b 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/StringAliasThree.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/StringAliasThree.java @@ -27,13 +27,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof StringAliasThree && this.value.equals(((StringAliasThree) other).value)); + return this == other || (other instanceof StringAliasThree && equalTo((StringAliasThree) other)); + } + + private boolean equalTo(StringAliasThree other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/StringAliasTwo.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/StringAliasTwo.java index fb457bc59..0b7e42a8c 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/StringAliasTwo.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/StringAliasTwo.java @@ -34,12 +34,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other || (other instanceof StringAliasTwo && this.value.equals(((StringAliasTwo) other).value)); + return this == other || (other instanceof StringAliasTwo && equalTo((StringAliasTwo) other)); + } + + private boolean equalTo(StringAliasTwo other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } @JsonCreator(mode = JsonCreator.Mode.DELEGATING) diff --git a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/UuidAliasExample.java b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/UuidAliasExample.java index c2f7a7e61..3463e2d8e 100644 --- a/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/UuidAliasExample.java +++ b/conjure-java-core/src/integrationInput/java/test/prefix/com/palantir/product/UuidAliasExample.java @@ -28,13 +28,16 @@ public String toString() { @Override public boolean equals(@Nullable Object other) { - return this == other - || (other instanceof UuidAliasExample && this.value.equals(((UuidAliasExample) other).value)); + return this == other || (other instanceof UuidAliasExample && equalTo((UuidAliasExample) other)); + } + + private boolean equalTo(UuidAliasExample other) { + return this.value.equals(other.value); } @Override public int hashCode() { - return value.hashCode(); + return this.value.hashCode(); } public static UuidAliasExample valueOf(String value) {