Package google.registry.model
Class ImmutableObject
- java.lang.Object
-
- google.registry.model.ImmutableObject
-
- All Implemented Interfaces:
java.lang.Cloneable
- Direct Known Subclasses:
Address
,AllocationTokenExtension
,AuthInfo
,AuthInfo.PasswordAuth
,BaseDomainLabelList
,BaseFee
,BaseTransferObject
,BillingBase
,CheckData
,CheckData.Check
,CheckData.CheckNameOrID
,ClaimsList
,CommonMarkContactFields
,CommonMarkFields
,ContactCommand.ContactCreateOrChange
,CreateAutoTimestamp
,CrossTldSingleton
,Cursor.CursorId
,DesignatedContact
,Disclose
,Disclose.PostalInfoChoice
,DnsRefreshRequest
,DomainCheckFlowCustomLogic.AfterValidationParameters
,DomainCheckFlowCustomLogic.BeforeResponseParameters
,DomainCheckFlowCustomLogic.BeforeResponseReturnData
,DomainCommand.DomainCreateOrChange
,DomainCommand.Info
,DomainCommand.Info.NameWithHosts
,DomainCreateFlowCustomLogic.AfterValidationParameters
,DomainCreateFlowCustomLogic.BeforeResponseParameters
,DomainCreateFlowCustomLogic.BeforeResponseReturnData
,DomainCreateFlowCustomLogic.BeforeSaveParameters
,DomainDeleteFlowCustomLogic.AfterValidationParameters
,DomainDeleteFlowCustomLogic.BeforeResponseParameters
,DomainDeleteFlowCustomLogic.BeforeResponseReturnData
,DomainDeleteFlowCustomLogic.BeforeSaveParameters
,DomainDsDataBase
,DomainInfoFlowCustomLogic.AfterValidationParameters
,DomainInfoFlowCustomLogic.BeforeResponseParameters
,DomainInfoFlowCustomLogic.BeforeResponseReturnData
,DomainLabelEntry
,DomainObjectSpec
,DomainPricingCustomLogic.CreatePriceParameters
,DomainPricingCustomLogic.RenewPriceParameters
,DomainPricingCustomLogic.RestorePriceParameters
,DomainPricingCustomLogic.TransferPriceParameters
,DomainPricingCustomLogic.UpdatePriceParameters
,DomainRenewFlowCustomLogic.AfterValidationParameters
,DomainRenewFlowCustomLogic.BeforeResponseParameters
,DomainRenewFlowCustomLogic.BeforeResponseReturnData
,DomainRenewFlowCustomLogic.BeforeSaveParameters
,DomainTransactionRecord
,DomainUpdateFlowCustomLogic.AfterValidationParameters
,DomainUpdateFlowCustomLogic.BeforeSaveParameters
,EncodedSignedMark
,EppInput
,EppInput.CommandWrapper
,EppInput.InnerCommand
,EppInput.Options
,EppInput.Services
,EppOutput
,EppResponse
,FeeCheckCommandExtensionV06
,FeeCheckCommandExtensionV11
,FeeCheckCommandExtensionV12
,FeeCheckResponseExtensionItemCommandV12
,FeeCheckResponseExtensionV06
,FeeCheckResponseExtensionV11
,FeeCheckResponseExtensionV12
,FeeExtensionCommandDescriptor
,FeeQueryCommandExtensionItem
,FeeQueryResponseExtensionItem
,FeesAndCredits
,FeeTransformCommandExtension
,FeeTransformResponseExtension
,FlowMetadata
,ForeignKeyedDesignatedContact
,GracePeriodBase
,Greeting
,HistoryEntry
,HistoryEntry.HistoryEntryId
,IssuerInfo
,LaunchCheckExtension
,LaunchCheckResponseExtension
,LaunchCheckResponseExtension.LaunchCheck
,LaunchCheckResponseExtension.LaunchCheckName
,LaunchExtension
,LaunchNotice
,LaunchNotice.NoticeIdType
,LaunchPhase
,Lock
,Mark
,MarkProtection
,MessageQueueInfo
,MetadataExtension
,PackagePromotion
,PackageTokenExtension
,PackageTokenResponseExtension
,PendingActionNotificationResponse
,Period
,PhoneNumber
,PollMessage
,PostalInfo
,PresenceMarker
,RdapAuthorization
,RdeRevision.RdeRevisionId
,RegistrarPoc
,RegistrarPoc.RegistrarPocId
,ResourceCommand.AbstractSingleResourceCommand
,ResourceCommand.ResourceCheck
,ResourceCommand.ResourceUpdate.AddRemove
,Result
,RgpInfoExtension
,RgpUpdateExtension
,SecDnsCreateExtension
,SecDnsInfoExtension
,SecDnsUpdateExtension
,SecDnsUpdateExtension.Add
,SecDnsUpdateExtension.Change
,SecDnsUpdateExtension.Remove
,SignedMark
,SignedMarkRevocationList
,Spec11ThreatMatch
,SuperuserExtension
,TimeOfYear
,Tld
,Trid
,UpdateAutoTimestamp
,UpdateAutoTimestampEntity
,UserRoles
,VKey
@Immutable public abstract class ImmutableObject extends java.lang.Object implements java.lang.Cloneable
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
ImmutableObject.DoNotHydrate
Marker to indicate thattoHydratedString()
should not hydrate a field.protected static interface
ImmutableObject.IgnoredInDiffableMap
Marker to indicate that this filed should be ignored bytoDiffableFieldMap()
.static interface
ImmutableObject.Insignificant
Indicates that the field does not take part in the immutability contract.
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.Integer
hashCode
-
Constructor Summary
Constructors Constructor Description ImmutableObject()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static <T extends ImmutableObject>
Tclone(T t)
Returns a clone of the given object.protected static <T extends ImmutableObject>
TcloneEmptyToNull(T t)
Returns a clone of the given object with empty fields set to null.VKey<? extends ImmutableObject>
createVKey()
boolean
equals(java.lang.Object other)
protected java.util.Map<java.lang.reflect.Field,java.lang.Object>
getSignificantFields()
Returns the map of significant fields (fields that we care about for purposes of comparison and display).int
hashCode()
java.util.Map<java.lang.String,java.lang.Object>
toDiffableFieldMap()
Returns a map of all object fields (including sensitive data) that's used to produce diffs.java.lang.String
toHydratedString()
Similar to toString(), with a full expansion of referenced keys, including in collections.java.lang.String
toString()
Returns a string view of the object, formatted like:java.lang.String
toStringHelper(java.util.SortedMap<java.lang.String,java.lang.Object> fields)
-
-
-
Method Detail
-
getSignificantFields
protected java.util.Map<java.lang.reflect.Field,java.lang.Object> getSignificantFields()
Returns the map of significant fields (fields that we care about for purposes of comparison and display).Isolated into a method so that derived classes can override it.
-
equals
public boolean equals(java.lang.Object other)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
clone
protected static <T extends ImmutableObject> T clone(T t)
Returns a clone of the given object.
-
cloneEmptyToNull
protected static <T extends ImmutableObject> T cloneEmptyToNull(T t)
Returns a clone of the given object with empty fields set to null.
-
toString
public java.lang.String toString()
Returns a string view of the object, formatted like:ModelObject (@12345): { field1=value1 field2=[a,b,c] field3=AnotherModelObject: { foo=bar } }
- Overrides:
toString
in classjava.lang.Object
-
toHydratedString
public java.lang.String toHydratedString()
Similar to toString(), with a full expansion of referenced keys, including in collections.
-
toStringHelper
public java.lang.String toStringHelper(java.util.SortedMap<java.lang.String,java.lang.Object> fields)
-
toDiffableFieldMap
public java.util.Map<java.lang.String,java.lang.Object> toDiffableFieldMap()
Returns a map of all object fields (including sensitive data) that's used to produce diffs.
-
createVKey
public VKey<? extends ImmutableObject> createVKey()
-
-