Class PersistFieldManager
- java.lang.Object
-
- org.datanucleus.store.fieldmanager.AbstractFieldManager
-
- org.datanucleus.store.fieldmanager.PersistFieldManager
-
- All Implemented Interfaces:
FieldManager
public class PersistFieldManager extends AbstractFieldManager
Field manager that persists all unpersisted PC objects referenced from the source object. If any collection/map fields are not currently using SCO wrappers they will be converted to do so. Effectively provides "persistence-by-reachability" (at insert/update).
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
replaceSCOsWithWrappers
Whether this manager will replace any SCO fields with SCO wrappers.private DNStateManager
sm
StateManager for the owning object.
-
Constructor Summary
Constructors Constructor Description PersistFieldManager(DNStateManager sm, boolean replaceSCOsWithWrappers)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
processContainer(java.lang.Object container, AbstractMemberMetaData mmd)
private void
processElementContainer(AbstractMemberMetaData mmd, java.lang.Object container)
private void
processMapContainer(AbstractMemberMetaData mmd, java.lang.Object container)
protected java.lang.Object
processPersistable(java.lang.Object pc, int ownerFieldNum, PersistableObjectType objectType)
Utility method to process the passed persistable object.void
storeBooleanField(int fieldNumber, boolean value)
Method to store a boolean field value in the object at the specified field position.void
storeByteField(int fieldNumber, byte value)
Method to store a byte field value in the object at the specified field position.void
storeCharField(int fieldNumber, char value)
Method to store a char field value in the object at the specified field position.void
storeDoubleField(int fieldNumber, double value)
Method to store a double field value in the object at the specified field position.void
storeFloatField(int fieldNumber, float value)
Method to store a float field value in the object at the specified field position.void
storeIntField(int fieldNumber, int value)
Method to store an int field value in the object at the specified field position.void
storeLongField(int fieldNumber, long value)
Method to store a long field value in the object at the specified field position.void
storeObjectField(int fieldNumber, java.lang.Object value)
Method to store an object field.void
storeShortField(int fieldNumber, short value)
Method to store a short field value in the object at the specified field position.void
storeStringField(int fieldNumber, java.lang.String value)
Method to store a string field value in the object at the specified field position.-
Methods inherited from class org.datanucleus.store.fieldmanager.AbstractFieldManager
fetchBooleanField, fetchByteField, fetchCharField, fetchDoubleField, fetchFloatField, fetchIntField, fetchLongField, fetchObjectField, fetchShortField, fetchStringField
-
-
-
-
Field Detail
-
sm
private final DNStateManager sm
StateManager for the owning object.
-
replaceSCOsWithWrappers
private final boolean replaceSCOsWithWrappers
Whether this manager will replace any SCO fields with SCO wrappers.
-
-
Constructor Detail
-
PersistFieldManager
public PersistFieldManager(DNStateManager sm, boolean replaceSCOsWithWrappers)
Constructor.- Parameters:
sm
- StateManager for the object.replaceSCOsWithWrappers
- Whether to swap any SCO field objects for SCO wrappers
-
-
Method Detail
-
processPersistable
protected java.lang.Object processPersistable(java.lang.Object pc, int ownerFieldNum, PersistableObjectType objectType)
Utility method to process the passed persistable object.- Parameters:
pc
- The PC objectownerFieldNum
- Field number of owner where this is embeddedobjectType
- Type of object- Returns:
- The processed persistable object
-
storeObjectField
public void storeObjectField(int fieldNumber, java.lang.Object value)
Method to store an object field.- Specified by:
storeObjectField
in interfaceFieldManager
- Overrides:
storeObjectField
in classAbstractFieldManager
- Parameters:
fieldNumber
- Number of the field (absolute)value
- Value of the field
-
processContainer
private void processContainer(java.lang.Object container, AbstractMemberMetaData mmd)
-
processMapContainer
private void processMapContainer(AbstractMemberMetaData mmd, java.lang.Object container)
-
processElementContainer
private void processElementContainer(AbstractMemberMetaData mmd, java.lang.Object container)
-
storeBooleanField
public void storeBooleanField(int fieldNumber, boolean value)
Description copied from interface:FieldManager
Method to store a boolean field value in the object at the specified field position.- Specified by:
storeBooleanField
in interfaceFieldManager
- Overrides:
storeBooleanField
in classAbstractFieldManager
- Parameters:
fieldNumber
- Number of the fieldvalue
- value to store
-
storeByteField
public void storeByteField(int fieldNumber, byte value)
Description copied from interface:FieldManager
Method to store a byte field value in the object at the specified field position.- Specified by:
storeByteField
in interfaceFieldManager
- Overrides:
storeByteField
in classAbstractFieldManager
- Parameters:
fieldNumber
- Number of the fieldvalue
- value to store
-
storeCharField
public void storeCharField(int fieldNumber, char value)
Description copied from interface:FieldManager
Method to store a char field value in the object at the specified field position.- Specified by:
storeCharField
in interfaceFieldManager
- Overrides:
storeCharField
in classAbstractFieldManager
- Parameters:
fieldNumber
- Number of the fieldvalue
- value to store
-
storeDoubleField
public void storeDoubleField(int fieldNumber, double value)
Description copied from interface:FieldManager
Method to store a double field value in the object at the specified field position.- Specified by:
storeDoubleField
in interfaceFieldManager
- Overrides:
storeDoubleField
in classAbstractFieldManager
- Parameters:
fieldNumber
- Number of the fieldvalue
- value to store
-
storeFloatField
public void storeFloatField(int fieldNumber, float value)
Description copied from interface:FieldManager
Method to store a float field value in the object at the specified field position.- Specified by:
storeFloatField
in interfaceFieldManager
- Overrides:
storeFloatField
in classAbstractFieldManager
- Parameters:
fieldNumber
- Number of the fieldvalue
- value to store
-
storeIntField
public void storeIntField(int fieldNumber, int value)
Description copied from interface:FieldManager
Method to store an int field value in the object at the specified field position.- Specified by:
storeIntField
in interfaceFieldManager
- Overrides:
storeIntField
in classAbstractFieldManager
- Parameters:
fieldNumber
- Number of the fieldvalue
- value to store
-
storeLongField
public void storeLongField(int fieldNumber, long value)
Description copied from interface:FieldManager
Method to store a long field value in the object at the specified field position.- Specified by:
storeLongField
in interfaceFieldManager
- Overrides:
storeLongField
in classAbstractFieldManager
- Parameters:
fieldNumber
- Number of the fieldvalue
- value to store
-
storeShortField
public void storeShortField(int fieldNumber, short value)
Description copied from interface:FieldManager
Method to store a short field value in the object at the specified field position.- Specified by:
storeShortField
in interfaceFieldManager
- Overrides:
storeShortField
in classAbstractFieldManager
- Parameters:
fieldNumber
- Number of the fieldvalue
- value to store
-
storeStringField
public void storeStringField(int fieldNumber, java.lang.String value)
Description copied from interface:FieldManager
Method to store a string field value in the object at the specified field position.- Specified by:
storeStringField
in interfaceFieldManager
- Overrides:
storeStringField
in classAbstractFieldManager
- Parameters:
fieldNumber
- Number of the fieldvalue
- value to store
-
-