Class AttachFieldManager
- java.lang.Object
-
- org.datanucleus.store.fieldmanager.AbstractFieldManager
-
- org.datanucleus.store.fieldmanager.AttachFieldManager
-
- All Implemented Interfaces:
FieldManager
public class AttachFieldManager extends AbstractFieldManager
Utility class to handle the attach of fields. The attachment process has 2 distinct cases to cater for.- The object was detached, has been updated, and needs reattaching.
- The object was detached from a different datastore, and is being attached here and we want to do a pass through the object to update the fields in the object before it is persisted
-
-
Field Summary
Fields Modifier and Type Field Description private DNStateManagerattachedSMStateManager for the attached instanceprivate booleancascadeAttachWhether to cascade the attach to related fields.(package private) booleancopyWhether we should create attached copies, or attach in situ.private boolean[]dirtyFieldsFields that were marked as dirty at attach.private booleanpersistentWhether the attached instance is persistent yet.private boolean[]secondClassMutableFieldsThe second class mutable fields.
-
Constructor Summary
Constructors Constructor Description AttachFieldManager(DNStateManager attachedSM, boolean[] secondClassMutableFields, boolean[] dirtyFields, boolean persistent, boolean cascadeAttach, boolean copy)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidstoreBooleanField(int fieldNumber, boolean value)Method to store a boolean field value in the object at the specified field position.voidstoreByteField(int fieldNumber, byte value)Method to store a byte field value in the object at the specified field position.voidstoreCharField(int fieldNumber, char value)Method to store a char field value in the object at the specified field position.voidstoreDoubleField(int fieldNumber, double value)Method to store a double field value in the object at the specified field position.voidstoreFloatField(int fieldNumber, float value)Method to store a float field value in the object at the specified field position.voidstoreIntField(int fieldNumber, int value)Method to store an int field value in the object at the specified field position.voidstoreLongField(int fieldNumber, long value)Method to store a long field value in the object at the specified field position.voidstoreObjectField(int fieldNumber, java.lang.Object value)Method to store an object field into the attached instance.voidstoreShortField(int fieldNumber, short value)Method to store a short field value in the object at the specified field position.voidstoreStringField(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
-
attachedSM
private final DNStateManager attachedSM
StateManager for the attached instance
-
secondClassMutableFields
private final boolean[] secondClassMutableFields
The second class mutable fields.
-
dirtyFields
private final boolean[] dirtyFields
Fields that were marked as dirty at attach.
-
persistent
private final boolean persistent
Whether the attached instance is persistent yet.
-
cascadeAttach
private final boolean cascadeAttach
Whether to cascade the attach to related fields.
-
copy
boolean copy
Whether we should create attached copies, or attach in situ.
-
-
Constructor Detail
-
AttachFieldManager
public AttachFieldManager(DNStateManager attachedSM, boolean[] secondClassMutableFields, boolean[] dirtyFields, boolean persistent, boolean cascadeAttach, boolean copy)
Constructor.- Parameters:
attachedSM- StateManager for the attached instancesecondClassMutableFields- second class mutable field flagsdirtyFields- Flags for whether the field(s) are dirtypersistent- whether the object being "attached" is persistent (yet)cascadeAttach- Whether to cascade any attach calls to related fieldscopy- Whether to attach copy
-
-
Method Detail
-
storeObjectField
public void storeObjectField(int fieldNumber, java.lang.Object value)Method to store an object field into the attached instance.- Specified by:
storeObjectFieldin interfaceFieldManager- Overrides:
storeObjectFieldin classAbstractFieldManager- Parameters:
fieldNumber- Number of the field to storevalue- the value in the detached instance
-
storeBooleanField
public void storeBooleanField(int fieldNumber, boolean value)Description copied from interface:FieldManagerMethod to store a boolean field value in the object at the specified field position.- Specified by:
storeBooleanFieldin interfaceFieldManager- Overrides:
storeBooleanFieldin classAbstractFieldManager- Parameters:
fieldNumber- Number of the fieldvalue- value to store
-
storeByteField
public void storeByteField(int fieldNumber, byte value)Description copied from interface:FieldManagerMethod to store a byte field value in the object at the specified field position.- Specified by:
storeByteFieldin interfaceFieldManager- Overrides:
storeByteFieldin classAbstractFieldManager- Parameters:
fieldNumber- Number of the fieldvalue- value to store
-
storeCharField
public void storeCharField(int fieldNumber, char value)Description copied from interface:FieldManagerMethod to store a char field value in the object at the specified field position.- Specified by:
storeCharFieldin interfaceFieldManager- Overrides:
storeCharFieldin classAbstractFieldManager- Parameters:
fieldNumber- Number of the fieldvalue- value to store
-
storeDoubleField
public void storeDoubleField(int fieldNumber, double value)Description copied from interface:FieldManagerMethod to store a double field value in the object at the specified field position.- Specified by:
storeDoubleFieldin interfaceFieldManager- Overrides:
storeDoubleFieldin classAbstractFieldManager- Parameters:
fieldNumber- Number of the fieldvalue- value to store
-
storeFloatField
public void storeFloatField(int fieldNumber, float value)Description copied from interface:FieldManagerMethod to store a float field value in the object at the specified field position.- Specified by:
storeFloatFieldin interfaceFieldManager- Overrides:
storeFloatFieldin classAbstractFieldManager- Parameters:
fieldNumber- Number of the fieldvalue- value to store
-
storeIntField
public void storeIntField(int fieldNumber, int value)Description copied from interface:FieldManagerMethod to store an int field value in the object at the specified field position.- Specified by:
storeIntFieldin interfaceFieldManager- Overrides:
storeIntFieldin classAbstractFieldManager- Parameters:
fieldNumber- Number of the fieldvalue- value to store
-
storeLongField
public void storeLongField(int fieldNumber, long value)Description copied from interface:FieldManagerMethod to store a long field value in the object at the specified field position.- Specified by:
storeLongFieldin interfaceFieldManager- Overrides:
storeLongFieldin classAbstractFieldManager- Parameters:
fieldNumber- Number of the fieldvalue- value to store
-
storeShortField
public void storeShortField(int fieldNumber, short value)Description copied from interface:FieldManagerMethod to store a short field value in the object at the specified field position.- Specified by:
storeShortFieldin interfaceFieldManager- Overrides:
storeShortFieldin classAbstractFieldManager- Parameters:
fieldNumber- Number of the fieldvalue- value to store
-
storeStringField
public void storeStringField(int fieldNumber, java.lang.String value)Description copied from interface:FieldManagerMethod to store a string field value in the object at the specified field position.- Specified by:
storeStringFieldin interfaceFieldManager- Overrides:
storeStringFieldin classAbstractFieldManager- Parameters:
fieldNumber- Number of the fieldvalue- value to store
-
-