Class Change

java.lang.Object
org.javers.core.diff.Change
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
NewObject, ObjectRemoved, PropertyChange

public abstract class Change extends Object implements Serializable
Change represents an atomic difference between two objects.

There are several types fo change: ValueChange, ReferenceChange, ListChange, NewObject, ObjectRemoved, ContainerChange, MapChange. See the inheritance hierarchy for the complete list.

See Also:
  • Constructor Details

  • Method Details

    • getAffectedGlobalId

      public GlobalId getAffectedGlobalId()
      Affected domain object GlobalId
    • getAffectedLocalId

      public Object getAffectedLocalId()
      Affected domain object local Id (value under @Id property)
    • getAffectedObject

      public Optional<Object> getAffectedObject()
      Affected domain object. Depending on concrete Change type, it could be a new Object, removed Object or a new version of a changed Object.

      Optional - available only for freshly generated diff. Not available for Changes read from JaversRepository
    • getCommitMetadata

      public Optional<CommitMetadata> getCommitMetadata()
      Empty if change is calculated by Javers.compare(Object, Object)
    • toString

      public String toString()
      Pretty print with default dates formatting
      Overrides:
      toString in class Object
    • prettyPrint

      public abstract String prettyPrint(PrettyValuePrinter valuePrinter)
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object