Package org.apache.cayenne.util
Class PersistentObjectHolder<E>
- java.lang.Object
-
- org.apache.cayenne.util.RelationshipFault<E>
-
- org.apache.cayenne.util.PersistentObjectHolder<E>
-
- All Implemented Interfaces:
Serializable,ValueHolder<E>
public class PersistentObjectHolder<E> extends RelationshipFault<E> implements ValueHolder<E>
A ValueHolder implementation that holds a single Persistent object related to an object used to initialize PersistentObjectHolder. Value is resolved on first access.- Since:
- 1.2
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanfaultprotected Evalue-
Fields inherited from class org.apache.cayenne.util.RelationshipFault
relationshipName, relationshipOwner
-
-
Constructor Summary
Constructors Constructor Description PersistentObjectHolder(Persistent relationshipOwner, String relationshipName)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidconnect(Persistent persistent)Returns an object that should be stored as a value in this ValueHolder, ensuring that it is registered with the same context.EgetValue()Returns a value resolving it via a query on the first call to this method.EgetValueDirectly()Retrieves ValueHolder value without triggering fault resolution.voidinvalidate()Turns a ValueHolder into a fault.booleanisFault()Returns true if this holder is not resolved, meaning its object is not yet known.protected voidmergeLocalChanges(List resolved)protected voidresolve()Reads an object from the database.EsetValue(E value)Sets an object value, marking this ValueHolder as resolved.EsetValueDirectly(E value)Sets ValueHolder vaue without triggering fault resolution.-
Methods inherited from class org.apache.cayenne.util.RelationshipFault
getRelationshipName, getRelationshipOwner, isTransientParent, isUncommittedParent, resolveFromDB, updateReverse
-
-
-
-
Field Detail
-
fault
protected boolean fault
-
value
protected E value
-
-
Constructor Detail
-
PersistentObjectHolder
public PersistentObjectHolder(Persistent relationshipOwner, String relationshipName)
-
-
Method Detail
-
isFault
public boolean isFault()
Returns true if this holder is not resolved, meaning its object is not yet known.- Specified by:
isFaultin interfaceValueHolder<E>
-
invalidate
public void invalidate()
Description copied from interface:ValueHolderTurns a ValueHolder into a fault.- Specified by:
invalidatein interfaceValueHolder<E>
-
getValue
public E getValue() throws CayenneRuntimeException
Returns a value resolving it via a query on the first call to this method.- Specified by:
getValuein interfaceValueHolder<E>- Throws:
CayenneRuntimeException
-
getValueDirectly
public E getValueDirectly() throws CayenneRuntimeException
Description copied from interface:ValueHolderRetrieves ValueHolder value without triggering fault resolution.- Specified by:
getValueDirectlyin interfaceValueHolder<E>- Throws:
CayenneRuntimeException
-
setValue
public E setValue(E value) throws CayenneRuntimeException
Sets an object value, marking this ValueHolder as resolved.- Specified by:
setValuein interfaceValueHolder<E>- Parameters:
value- a new value of the ValueHolder.- Returns:
- a previous value saved in the ValueHolder.
- Throws:
CayenneRuntimeException
-
setValueDirectly
public E setValueDirectly(E value) throws CayenneRuntimeException
Description copied from interface:ValueHolderSets ValueHolder vaue without triggering fault resolution.- Specified by:
setValueDirectlyin interfaceValueHolder<E>- Throws:
CayenneRuntimeException
-
connect
protected void connect(Persistent persistent)
Returns an object that should be stored as a value in this ValueHolder, ensuring that it is registered with the same context.
-
resolve
protected void resolve()
Reads an object from the database.
-
mergeLocalChanges
protected void mergeLocalChanges(List resolved)
- Specified by:
mergeLocalChangesin classRelationshipFault<E>
-
-