org.datanucleus.store.fieldmanager
Class DetachFieldManager

java.lang.Object
  extended by org.datanucleus.store.fieldmanager.AbstractFieldManager
      extended by org.datanucleus.store.fieldmanager.AbstractFetchFieldManager
          extended by org.datanucleus.store.fieldmanager.DetachFieldManager
All Implemented Interfaces:
FieldConsumer, FieldManager, FieldSupplier

public class DetachFieldManager
extends AbstractFetchFieldManager

FieldManager to handle the detachment of fields with persistable objects.

Version:
$Revision: 1.10 $

Nested Class Summary
 
Nested classes/interfaces inherited from class org.datanucleus.store.fieldmanager.AbstractFetchFieldManager
AbstractFetchFieldManager.EndOfFetchPlanGraphException
 
Field Summary
 
Fields inherited from class org.datanucleus.store.fieldmanager.AbstractFetchFieldManager
fpClass, secondClassMutableFields, sm, state
 
Constructor Summary
DetachFieldManager(StateManager sm, boolean[] secondClassMutableFields, FetchPlan.FetchPlanForClass fpClass, FetchPlanState state, boolean copy)
          Constructor for a field manager for detachment.
 
Method Summary
protected  java.lang.Object endOfGraphOperation(int fieldNumber)
          Method to throw and EndOfFetchPlanGraphException since we're at the end of a branch in the tree.
protected  java.lang.Object internalFetchObjectField(int fieldNumber)
          Method to fetch an object field whether it is collection/map, PC, or whatever for the detachment process.
protected  java.lang.Object processPersistable(java.lang.Object pc)
          Utility method to process the passed persistable object.
 
Methods inherited from class org.datanucleus.store.fieldmanager.AbstractFetchFieldManager
fetchBooleanField, fetchByteField, fetchCharField, fetchDoubleField, fetchFloatField, fetchIntField, fetchLongField, fetchObjectField, fetchShortField, fetchStringField
 
Methods inherited from class org.datanucleus.store.fieldmanager.AbstractFieldManager
storeBooleanField, storeByteField, storeCharField, storeDoubleField, storeFloatField, storeIntField, storeLongField, storeObjectField, storeShortField, storeStringField
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DetachFieldManager

public DetachFieldManager(StateManager sm,
                          boolean[] secondClassMutableFields,
                          FetchPlan.FetchPlanForClass fpClass,
                          FetchPlanState state,
                          boolean copy)
Constructor for a field manager for detachment.

Parameters:
sm - the StateManager of the instance being detached. An instance in Persistent or Transactional state
secondClassMutableFields - The second class mutable fields for the class of this object
fpClass - Fetch Plan for the class of this instance
state - State object to hold any pertinent controls for the detachment process
copy - Whether to create detached COPIES or just detach in situ
Method Detail

processPersistable

protected java.lang.Object processPersistable(java.lang.Object pc)
Utility method to process the passed persistable object.

Parameters:
pc - The PC object

internalFetchObjectField

protected java.lang.Object internalFetchObjectField(int fieldNumber)
Method to fetch an object field whether it is collection/map, PC, or whatever for the detachment process.

Specified by:
internalFetchObjectField in class AbstractFetchFieldManager
Parameters:
fieldNumber - Number of the field
Returns:
The object

endOfGraphOperation

protected java.lang.Object endOfGraphOperation(int fieldNumber)
Method to throw and EndOfFetchPlanGraphException since we're at the end of a branch in the tree.

Specified by:
endOfGraphOperation in class AbstractFetchFieldManager
Parameters:
fieldNumber - Number of the field
Returns:
Object to return


Copyright © 2009. All Rights Reserved.