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 Details

    • 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 Details

    • 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 Details

    • processPersistable

      protected Object processPersistable(Object pc, int ownerFieldNum, PersistableObjectType objectType)
      Utility method to process the passed persistable object.
      Parameters:
      pc - The PC object
      ownerFieldNum - Field number of owner where this is embedded
      objectType - Type of object
      Returns:
      The processed persistable object
    • storeObjectField

      public void storeObjectField(int fieldNumber, Object value)
      Method to store an object field.
      Specified by:
      storeObjectField in interface FieldManager
      Overrides:
      storeObjectField in class AbstractFieldManager
      Parameters:
      fieldNumber - Number of the field (absolute)
      value - Value of the field
    • processContainer

      private void processContainer(Object container, AbstractMemberMetaData mmd)
    • processMapContainer

      private void processMapContainer(AbstractMemberMetaData mmd, Object container)
    • processElementContainer

      private void processElementContainer(AbstractMemberMetaData mmd, 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 interface FieldManager
      Overrides:
      storeBooleanField in class AbstractFieldManager
      Parameters:
      fieldNumber - Number of the field
      value - 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 interface FieldManager
      Overrides:
      storeByteField in class AbstractFieldManager
      Parameters:
      fieldNumber - Number of the field
      value - 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 interface FieldManager
      Overrides:
      storeCharField in class AbstractFieldManager
      Parameters:
      fieldNumber - Number of the field
      value - 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 interface FieldManager
      Overrides:
      storeDoubleField in class AbstractFieldManager
      Parameters:
      fieldNumber - Number of the field
      value - 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 interface FieldManager
      Overrides:
      storeFloatField in class AbstractFieldManager
      Parameters:
      fieldNumber - Number of the field
      value - 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 interface FieldManager
      Overrides:
      storeIntField in class AbstractFieldManager
      Parameters:
      fieldNumber - Number of the field
      value - 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 interface FieldManager
      Overrides:
      storeLongField in class AbstractFieldManager
      Parameters:
      fieldNumber - Number of the field
      value - 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 interface FieldManager
      Overrides:
      storeShortField in class AbstractFieldManager
      Parameters:
      fieldNumber - Number of the field
      value - value to store
    • storeStringField

      public void storeStringField(int fieldNumber, 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 interface FieldManager
      Overrides:
      storeStringField in class AbstractFieldManager
      Parameters:
      fieldNumber - Number of the field
      value - value to store