diff --git a/core/src/main/java/google/registry/model/ImmutableObject.java b/core/src/main/java/google/registry/model/ImmutableObject.java
index fb615c714..3db9e4f8e 100644
--- a/core/src/main/java/google/registry/model/ImmutableObject.java
+++ b/core/src/main/java/google/registry/model/ImmutableObject.java
@@ -156,10 +156,6 @@ public abstract class ImmutableObject implements Cloneable {
* }
* }
*
- *
- *
This method makes use of {@link #toStringHelper}, which embeds {@link
- * System#identityHashCode} in the output string. Subclasses that require deterministic string
- * representations across JVM instances should override this method.
*/
@Override
public String toString() {
@@ -185,11 +181,9 @@ public abstract class ImmutableObject implements Cloneable {
public String toStringHelper(SortedMap fields) {
return String.format(
- "%s (@%s): {\n%s",
- getClass().getSimpleName(),
- System.identityHashCode(this),
- Joiner.on('\n').join(fields.entrySet()))
- .replaceAll("\n", "\n ") + "\n}";
+ "%s: {\n%s", getClass().getSimpleName(), Joiner.on('\n').join(fields.entrySet()))
+ .replaceAll("\n", "\n ")
+ + "\n}";
}
/** Helper function to recursively hydrate an ImmutableObject. */
diff --git a/core/src/main/java/google/registry/model/common/Cursor.java b/core/src/main/java/google/registry/model/common/Cursor.java
index c3fb5b85d..2aca2ad80 100644
--- a/core/src/main/java/google/registry/model/common/Cursor.java
+++ b/core/src/main/java/google/registry/model/common/Cursor.java
@@ -19,9 +19,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
import static google.registry.model.common.EntityGroupRoot.getCrossTldKey;
import static google.registry.util.DateTimeUtils.START_OF_TIME;
-import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
-import com.google.common.collect.ImmutableSortedMap;
import com.googlecode.objectify.Key;
import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Id;
@@ -296,22 +294,5 @@ public class Cursor extends ImmutableObject implements DatastoreAndSqlEntity, Un
this.type = type;
this.scope = scope;
}
-
- /**
- * A deterministic string representation of a {@link CursorId}. See {@link
- * ImmutableObject#toString} for more information.
- */
- @Override
- public String toString() {
- return String.format(
- "%s: {\n%s",
- getClass().getSimpleName(),
- Joiner.on('\n')
- .join(
- ImmutableSortedMap.of("scope", scope, "type", type)
- .entrySet()))
- .replaceAll("\n", "\n ")
- + "\n}";
- }
}
}
diff --git a/core/src/main/java/google/registry/model/contact/ContactHistory.java b/core/src/main/java/google/registry/model/contact/ContactHistory.java
index 7a8f2061c..ab2f6de18 100644
--- a/core/src/main/java/google/registry/model/contact/ContactHistory.java
+++ b/core/src/main/java/google/registry/model/contact/ContactHistory.java
@@ -16,8 +16,6 @@ package google.registry.model.contact;
import static google.registry.persistence.transaction.TransactionManagerFactory.jpaTm;
-import com.google.common.base.Joiner;
-import com.google.common.collect.ImmutableSortedMap;
import com.googlecode.objectify.Key;
import com.googlecode.objectify.annotation.EntitySubclass;
import google.registry.model.EppResource;
@@ -202,24 +200,6 @@ public class ContactHistory extends HistoryEntry implements SqlEntity, UnsafeSer
private void setId(long id) {
this.id = id;
}
-
- /**
- * A deterministic string representation of a {@link ContactHistoryId}. See {@link
- * ImmutableObject#toString} for more information.
- */
- @Override
- public String toString() {
- return String.format(
- "%s: {\n%s",
- getClass().getSimpleName(),
- Joiner.on('\n')
- .join(
- ImmutableSortedMap.of(
- "contactRepoId", getContactRepoId(), "id", getId())
- .entrySet()))
- .replaceAll("\n", "\n ")
- + "\n}";
- }
}
@Override
diff --git a/core/src/main/java/google/registry/model/domain/DomainHistory.java b/core/src/main/java/google/registry/model/domain/DomainHistory.java
index f26d028c2..e804fc42f 100644
--- a/core/src/main/java/google/registry/model/domain/DomainHistory.java
+++ b/core/src/main/java/google/registry/model/domain/DomainHistory.java
@@ -18,9 +18,7 @@ import static com.google.common.collect.ImmutableSet.toImmutableSet;
import static google.registry.persistence.transaction.TransactionManagerFactory.jpaTm;
import static google.registry.util.CollectionUtils.nullToEmptyImmutableCopy;
-import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.ImmutableSortedMap;
import com.googlecode.objectify.Key;
import com.googlecode.objectify.annotation.EntitySubclass;
import google.registry.model.EppResource;
@@ -386,24 +384,6 @@ public class DomainHistory extends HistoryEntry implements SqlEntity {
private void setId(long id) {
this.id = id;
}
-
- /**
- * A deterministic string representation of a {@link DomainHistoryId}. See {@link
- * ImmutableObject#toString} for more information.
- */
- @Override
- public String toString() {
- return String.format(
- "%s: {\n%s",
- getClass().getSimpleName(),
- Joiner.on('\n')
- .join(
- ImmutableSortedMap.of(
- "domainRepoId", getDomainRepoId(), "id", getId())
- .entrySet()))
- .replaceAll("\n", "\n ")
- + "\n}";
- }
}
@Override
diff --git a/core/src/main/java/google/registry/model/host/HostHistory.java b/core/src/main/java/google/registry/model/host/HostHistory.java
index 247f9e700..0831a65e6 100644
--- a/core/src/main/java/google/registry/model/host/HostHistory.java
+++ b/core/src/main/java/google/registry/model/host/HostHistory.java
@@ -16,8 +16,6 @@ package google.registry.model.host;
import static google.registry.persistence.transaction.TransactionManagerFactory.jpaTm;
-import com.google.common.base.Joiner;
-import com.google.common.collect.ImmutableSortedMap;
import com.googlecode.objectify.Key;
import com.googlecode.objectify.annotation.EntitySubclass;
import google.registry.model.EppResource;
@@ -205,24 +203,6 @@ public class HostHistory extends HistoryEntry implements SqlEntity, UnsafeSerial
private void setId(long id) {
this.id = id;
}
-
- /**
- * A deterministic string representation of a {@link HostHistoryId}. See {@link
- * ImmutableObject#toString} for more information.
- */
- @Override
- public String toString() {
- return String.format(
- "%s: {\n%s",
- getClass().getSimpleName(),
- Joiner.on('\n')
- .join(
- ImmutableSortedMap.of(
- "hostRepoId", getHostRepoId(), "id", getId())
- .entrySet()))
- .replaceAll("\n", "\n ")
- + "\n}";
- }
}
@Override
diff --git a/core/src/main/java/google/registry/model/registrar/RegistrarContact.java b/core/src/main/java/google/registry/model/registrar/RegistrarContact.java
index 647cf4214..d4aefc041 100644
--- a/core/src/main/java/google/registry/model/registrar/RegistrarContact.java
+++ b/core/src/main/java/google/registry/model/registrar/RegistrarContact.java
@@ -32,9 +32,7 @@ import static java.util.stream.Collectors.joining;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Enums;
-import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.ImmutableSortedMap;
import com.google.common.collect.ImmutableSortedSet;
import com.google.common.collect.Streams;
import com.googlecode.objectify.Key;
@@ -415,24 +413,6 @@ public class RegistrarContact extends ImmutableObject
this.emailAddress = emailAddress;
this.registrarId = registrarId;
}
-
- /**
- * A deterministic string representation of a {@link RegistrarPocId}. See {@link
- * ImmutableObject#toString} for more information.
- */
- @Override
- public String toString() {
- return String.format(
- "%s: {\n%s",
- getClass().getSimpleName(),
- Joiner.on('\n')
- .join(
- ImmutableSortedMap.of(
- "emailAddress", emailAddress, "registrarId", registrarId)
- .entrySet()))
- .replaceAll("\n", "\n ")
- + "\n}";
- }
}
/** A builder for constructing a {@link RegistrarContact}, since it is immutable. */
diff --git a/core/src/test/java/google/registry/model/ImmutableObjectTest.java b/core/src/test/java/google/registry/model/ImmutableObjectTest.java
index a67bfc794..a84905391 100644
--- a/core/src/test/java/google/registry/model/ImmutableObjectTest.java
+++ b/core/src/test/java/google/registry/model/ImmutableObjectTest.java
@@ -68,11 +68,8 @@ public class ImmutableObjectTest {
@Test
void testToString_simpleClass() {
SimpleObject object = new SimpleObject("foo", null);
- assertThat(object.toString()).isEqualTo(""
- + "SimpleObject (@" + System.identityHashCode(object) + "): {\n"
- + " a=foo\n"
- + " b=null\n"
- + "}");
+ assertThat(object.toString())
+ .isEqualTo("" + "SimpleObject: {\n" + " a=foo\n" + " b=null\n" + "}");
}
@Test
@@ -332,8 +329,8 @@ public class ImmutableObjectTest {
// The hash code test test is implicit in "equals", it is added here just for clarity.
assertThat(instance1.hashCode()).isEqualTo(instance2.hashCode());
- assertThat(instance1.toString()).matches(
- "(?s)HasInsignificantFields (.*): \\{\\s*significant=significant\\s*\\}\\s*");
+ assertThat(instance1.toString())
+ .matches("(?s)HasInsignificantFields: \\{\\s*significant=significant\\s*\\}\\s*");
}
static class HasInsignificantFields extends ImmutableObject {