Class DetachFieldManager
java.lang.Object
org.datanucleus.store.fieldmanager.AbstractFieldManager
org.datanucleus.store.fieldmanager.AbstractFetchDepthFieldManager
org.datanucleus.store.fieldmanager.DetachFieldManager
- All Implemented Interfaces:
FieldManager
FieldManager to handle the detachment of fields with persistable objects.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.datanucleus.store.fieldmanager.AbstractFetchDepthFieldManager
AbstractFetchDepthFieldManager.EndOfFetchPlanGraphException
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) boolean
Whether we should create detached copies, or detach in situ.Fields inherited from class org.datanucleus.store.fieldmanager.AbstractFetchDepthFieldManager
fpClass, secondClassMutableFields, sm, state
-
Constructor Summary
ConstructorsConstructorDescriptionDetachFieldManager
(DNStateManager sm, boolean[] secondClassMutableFields, FetchPlanForClass fpClass, FetchPlanState state, boolean copy) Constructor for a field manager for detachment. -
Method Summary
Modifier and TypeMethodDescriptionprotected Object
endOfGraphOperation
(int fieldNumber) Method to throw and EndOfFetchPlanGraphException since we're at the end of a branch in the tree.protected Object
internalFetchObjectField
(int fieldNumber) Method to fetch an object field whether it is collection/map, PC, or whatever for the detachment process.private Object
processContainer
(AbstractMemberMetaData mmd, Object container) private Object
processElementContainer
(int fieldNumber, Object container, AbstractMemberMetaData mmd, ContainerHandler<Object, ElementContainerAdapter<Object>> containerHandler) private Object
processField
(AbstractMemberMetaData mmd, Object value) private Object
processMapContainer
(int fieldNumber, Object mapContainer, AbstractMemberMetaData mmd, ContainerHandler<Object, MapContainerAdapter<Object>> containerHandler) protected void
Utility method to process the passed persistable object.protected Object
Utility method to process the passed persistable object creating a copy.Methods inherited from class org.datanucleus.store.fieldmanager.AbstractFetchDepthFieldManager
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
-
Field Details
-
copy
boolean copyWhether we should create detached copies, or detach in situ.
-
-
Constructor Details
-
DetachFieldManager
public DetachFieldManager(DNStateManager sm, boolean[] secondClassMutableFields, FetchPlanForClass fpClass, FetchPlanState state, boolean copy) Constructor for a field manager for detachment.- Parameters:
sm
- StateManager of the instance being detached. An instance in Persistent or Transactional statesecondClassMutableFields
- The second class mutable fields for the class of this objectfpClass
- Fetch Plan for the class of this instancestate
- State object to hold any pertinent controls for the detachment processcopy
- Whether to create detached COPIES or just detach in-situ
-
-
Method Details
-
processPersistableCopy
Utility method to process the passed persistable object creating a copy.- Parameters:
pc
- The PC object- Returns:
- The processed object
-
processPersistable
Utility method to process the passed persistable object.- Parameters:
pc
- The PC object
-
internalFetchObjectField
Method to fetch an object field whether it is collection/map, PC, or whatever for the detachment process.- Specified by:
internalFetchObjectField
in classAbstractFetchDepthFieldManager
- Parameters:
fieldNumber
- Number of the field- Returns:
- The object
-
processField
-
processContainer
-
processElementContainer
private Object processElementContainer(int fieldNumber, Object container, AbstractMemberMetaData mmd, ContainerHandler<Object, ElementContainerAdapter<Object>> containerHandler) -
processMapContainer
private Object processMapContainer(int fieldNumber, Object mapContainer, AbstractMemberMetaData mmd, ContainerHandler<Object, MapContainerAdapter<Object>> containerHandler) -
endOfGraphOperation
Method to throw and EndOfFetchPlanGraphException since we're at the end of a branch in the tree.- Specified by:
endOfGraphOperation
in classAbstractFetchDepthFieldManager
- Parameters:
fieldNumber
- Number of the field- Returns:
- Object to return
-