org.apache.cayenne.util
Class PersistentObjectHolder

java.lang.Object
  extended by org.apache.cayenne.util.RelationshipFault
      extended by org.apache.cayenne.util.PersistentObjectHolder
All Implemented Interfaces:
Serializable, ValueHolder

public class PersistentObjectHolder
extends RelationshipFault
implements ValueHolder

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
protected  boolean fault
           
protected  Object value
           
 
Fields inherited from class org.apache.cayenne.util.RelationshipFault
relationshipName, relationshipOwner
 
Constructor Summary
PersistentObjectHolder(Persistent relationshipOwner, String relationshipName)
           
 
Method Summary
protected  Object 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.
 Object getValue()
          Returns a value resolving it via a query on the first call to this method.
 Object getValueDirectly()
          Retrieves ValueHolder value without triggering fault resolution.
 void invalidate()
          Turns a ValueHolder into a fault.
 boolean isFault()
          Returns true if this holder is not resolved, meaning its object is not yet known.
protected  void resolve()
          Reads an object from the database.
 Object setValue(Object value)
          Sets an object value, marking this ValueHolder as resolved.
 Object setValueDirectly(Object value)
          Sets ValueHolder vaue without triggering fault resolution.
 
Methods inherited from class org.apache.cayenne.util.RelationshipFault
getRelationshipName, getRelationshipOwner, isTransientParent, isUncommittedParent, resolveFromDB, updateReverse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fault

protected boolean fault

value

protected Object 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:
isFault in interface ValueHolder

invalidate

public void invalidate()
Description copied from interface: ValueHolder
Turns a ValueHolder into a fault.

Specified by:
invalidate in interface ValueHolder

getValue

public Object getValue()
                throws CayenneRuntimeException
Returns a value resolving it via a query on the first call to this method.

Specified by:
getValue in interface ValueHolder
Throws:
CayenneRuntimeException

getValueDirectly

public Object getValueDirectly()
                        throws CayenneRuntimeException
Description copied from interface: ValueHolder
Retrieves ValueHolder value without triggering fault resolution.

Specified by:
getValueDirectly in interface ValueHolder
Throws:
CayenneRuntimeException

setValue

public Object setValue(Object value)
                throws CayenneRuntimeException
Sets an object value, marking this ValueHolder as resolved.

Specified by:
setValue in interface ValueHolder
Parameters:
value - a new value of the ValueHolder.
Returns:
a previous value saved in the ValueHolder.
Throws:
CayenneRuntimeException

setValueDirectly

public Object setValueDirectly(Object value)
                        throws CayenneRuntimeException
Description copied from interface: ValueHolder
Sets ValueHolder vaue without triggering fault resolution.

Specified by:
setValueDirectly in interface ValueHolder
Throws:
CayenneRuntimeException

connect

protected Object 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.



Copyright © 2001-2011 Apache Cayenne. All Rights Reserved.