Class ReachabilityFieldManager

java.lang.Object
org.datanucleus.store.fieldmanager.AbstractFieldManager
org.datanucleus.store.fieldmanager.ReachabilityFieldManager
All Implemented Interfaces:
FieldManager

public class ReachabilityFieldManager extends AbstractFieldManager
Field manager that runs reachability on all PC objects referenced from the source object. Whenever a PC object is encountered it recurses to that object, and so on. Provides the basis for the JDO feature "persistence-by-reachability-at-commit".
  • Field Details

    • sm

      private final DNStateManager sm
      StateManager for the owning object.
    • reachables

      private Set reachables
      Set of reachables up to this point.
  • Constructor Details

    • ReachabilityFieldManager

      public ReachabilityFieldManager(DNStateManager sm, Set reachables)
      Constructor.
      Parameters:
      sm - StateManager for the object.
      reachables - Reachables up to this point
  • Method Details

    • processPersistable

      protected void processPersistable(Object obj, AbstractMemberMetaData mmd)
      Utility method to process the passed persistable object.
      Parameters:
      obj - The persistable object
      mmd - MetaData for the member storing this object
    • processContainer

      private void processContainer(int fieldNumber, Object container, AbstractMemberMetaData mmd)
    • 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
    • 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