org.javers.core.graph.ObjectNode Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of javers-core Show documentation
Show all versions of javers-core Show documentation
JaVers - object auditing and diff framework for Java
package org.javers.core.graph;
import org.javers.common.validation.Validate;
import org.javers.core.metamodel.object.CdoSnapshot;
import org.javers.core.metamodel.object.GlobalId;
import org.javers.core.metamodel.property.Property;
import org.javers.core.metamodel.type.EntityType;
import org.javers.core.metamodel.type.JaversProperty;
import org.javers.core.metamodel.type.ManagedType;
import org.javers.core.metamodel.type.ValueObjectType;
import java.util.List;
import java.util.Optional;
import static org.javers.common.validation.Validate.argumentsAreNotNull;
/**
* Node in client's domain object graph. Reflects one {@link Cdo} or {@link CdoSnapshot}.
*
* Cdo could be an {@link EntityType} or a {@link ValueObjectType}
*
* Implementation should delegate equals() and hashCode() to {@link Cdo}
*
* @author bartosz walacik
*/
public abstract class ObjectNode {
private final T cdo;
public ObjectNode(T cdo) {
argumentsAreNotNull(cdo);
this.cdo = cdo;
}
/**
* @return returns {@link Optional#empty()} for snapshots
*/
public Optional