javax.jdo.spi

## Interface StateManager

-     public interface StateManager

  This interface is the point of contact between managed instances of `PersistenceCapable` classes and the JDO implementation. It contains the methods used by `PersistenceCapable` instances to delegate behavior to the JDO implementation.

  Each managed `PersistenceCapable` instance contains a reference to a `StateManager`. A `StateManager` might manage one or multiple instances of `PersistenceCapable` instances, at the choice of the implementation.

  Version:
    2.0

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `getBooleanField(PersistenceCapable pc, int field, boolean currentValue)` Return the value for the field.
    `byte` | `getByteField(PersistenceCapable pc, int field, byte currentValue)` Return the value for the field.
    `char` | `getCharField(PersistenceCapable pc, int field, char currentValue)` Return the value for the field.
    `double` | `getDoubleField(PersistenceCapable pc, int field, double currentValue)` Return the value for the field.
    `float` | `getFloatField(PersistenceCapable pc, int field, float currentValue)` Return the value for the field.
    `int` | `getIntField(PersistenceCapable pc, int field, int currentValue)` Return the value for the field.
    `long` | `getLongField(PersistenceCapable pc, int field, long currentValue)` Return the value for the field.
    `Object` | `getObjectField(PersistenceCapable pc, int field, Object currentValue)` Return the value for the field.
    `Object` | `getObjectId(PersistenceCapable pc)` Return the object representing the JDO identity of the calling instance.
    `PersistenceManager` | `getPersistenceManager(PersistenceCapable pc)` Return the `PersistenceManager` that owns this instance.
    `short` | `getShortField(PersistenceCapable pc, int field, short currentValue)` Return the value for the field.
    `String` | `getStringField(PersistenceCapable pc, int field, String currentValue)` Return the value for the field.
    `Object` | `getTransactionalObjectId(PersistenceCapable pc)` Return the object representing the JDO identity of the calling instance.
    `Object` | `getVersion(PersistenceCapable pc)` Return the object representing the version of the calling instance.
    `boolean` | `isDeleted(PersistenceCapable pc)` Tests whether this object has been deleted.
    `boolean` | `isDirty(PersistenceCapable pc)` Tests whether this object is dirty.
    `boolean` | `isLoaded(PersistenceCapable pc, int field)` Return `true` if the field is cached in the calling instance.
    `boolean` | `isNew(PersistenceCapable pc)` Tests whether this object has been newly made persistent.
    `boolean` | `isPersistent(PersistenceCapable pc)` Tests whether this object is persistent.
    `boolean` | `isTransactional(PersistenceCapable pc)` Tests whether this object is transactional.
    `void` | `makeDirty(PersistenceCapable pc, String fieldName)` Mark the associated `PersistenceCapable` field dirty.
    `void` | `preSerialize(PersistenceCapable pc)` Guarantee that the serializable transactional and persistent fields are loaded into the instance.
    `void` | `providedBooleanField(PersistenceCapable pc, int field, boolean currentValue)` The value of the field requested to be provided to the `StateManager`.
    `void` | `providedByteField(PersistenceCapable pc, int field, byte currentValue)` The value of the field requested to be provided to the `StateManager`.
    `void` | `providedCharField(PersistenceCapable pc, int field, char currentValue)` The value of the field requested to be provided to the `StateManager`.
    `void` | `providedDoubleField(PersistenceCapable pc, int field, double currentValue)` The value of the field requested to be provided to the `StateManager`.
    `void` | `providedFloatField(PersistenceCapable pc, int field, float currentValue)` The value of the field requested to be provided to the `StateManager`.
    `void` | `providedIntField(PersistenceCapable pc, int field, int currentValue)` The value of the field requested to be provided to the `StateManager`.
    `void` | `providedLongField(PersistenceCapable pc, int field, long currentValue)` The value of the field requested to be provided to the `StateManager`.
    `void` | `providedObjectField(PersistenceCapable pc, int field, Object currentValue)` The value of the field requested to be provided to the `StateManager`.
    `void` | `providedShortField(PersistenceCapable pc, int field, short currentValue)` The value of the field requested to be provided to the `StateManager`.
    `void` | `providedStringField(PersistenceCapable pc, int field, String currentValue)` The value of the field requested to be provided to the `StateManager`.
    `boolean` | `replacingBooleanField(PersistenceCapable pc, int field)` The replacement value of the field in the calling instance.
    `byte` | `replacingByteField(PersistenceCapable pc, int field)` The replacement value of the field in the calling instance.
    `char` | `replacingCharField(PersistenceCapable pc, int field)` The replacement value of the field in the calling instance.
    `Object[]` | `replacingDetachedState(Detachable pc, Object[] state)` The replacement value of the detached state in the calling instance.
    `double` | `replacingDoubleField(PersistenceCapable pc, int field)` The replacement value of the field in the calling instance.
    `byte` | `replacingFlags(PersistenceCapable pc)` The owning `StateManager` uses this method to supply the value of the flags to the `PersistenceCapable` instance.
    `float` | `replacingFloatField(PersistenceCapable pc, int field)` The replacement value of the field in the calling instance.
    `int` | `replacingIntField(PersistenceCapable pc, int field)` The replacement value of the field in the calling instance.
    `long` | `replacingLongField(PersistenceCapable pc, int field)` The replacement value of the field in the calling instance.
    `Object` | `replacingObjectField(PersistenceCapable pc, int field)` The replacement value of the field in the calling instance.
    `short` | `replacingShortField(PersistenceCapable pc, int field)` The replacement value of the field in the calling instance.
    `StateManager` | `replacingStateManager(PersistenceCapable pc, StateManager sm)` Replace the current value of `jdoStateManager`.
    `String` | `replacingStringField(PersistenceCapable pc, int field)` The replacement value of the field in the calling instance.
    `void` | `setBooleanField(PersistenceCapable pc, int field, boolean currentValue, boolean newValue)` Mark the field as modified by the user.
    `void` | `setByteField(PersistenceCapable pc, int field, byte currentValue, byte newValue)` Mark the field as modified by the user.
    `void` | `setCharField(PersistenceCapable pc, int field, char currentValue, char newValue)` Mark the field as modified by the user.
    `void` | `setDoubleField(PersistenceCapable pc, int field, double currentValue, double newValue)` Mark the field as modified by the user.
    `void` | `setFloatField(PersistenceCapable pc, int field, float currentValue, float newValue)` Mark the field as modified by the user.
    `void` | `setIntField(PersistenceCapable pc, int field, int currentValue, int newValue)` Mark the field as modified by the user.
    `void` | `setLongField(PersistenceCapable pc, int field, long currentValue, long newValue)` Mark the field as modified by the user.
    `void` | `setObjectField(PersistenceCapable pc, int field, Object currentValue, Object newValue)` Mark the field as modified by the user.
    `void` | `setShortField(PersistenceCapable pc, int field, short currentValue, short newValue)` Mark the field as modified by the user.
    `void` | `setStringField(PersistenceCapable pc, int field, String currentValue, String newValue)` Mark the field as modified by the user.

- - ### Method Detail

    - #### replacingFlags

          byte replacingFlags(PersistenceCapable pc)

      The owning `StateManager` uses this method to supply the value of the flags to the `PersistenceCapable` instance.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
      Returns:
        the value of `jdoFlags` to be stored in the `PersistenceCapable` instance

    - #### replacingStateManager

          StateManager replacingStateManager(PersistenceCapable pc,
                                             StateManager sm)

      Replace the current value of `jdoStateManager`.

      This method is called by the `PersistenceCapable` whenever `jdoReplaceStateManager` is called and there is already an owning `StateManager`. This is a security precaution to ensure that the owning `StateManager` is the only source of any change to its reference in the `PersistenceCapable`.

      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `sm` - the proposed new value for the `jdoStateManager`
      Returns:
        the new value for the `jdoStateManager`

    - #### isDirty

          boolean isDirty(PersistenceCapable pc)

      Tests whether this object is dirty. Instances that have been modified, deleted, or newly made persistent in the current transaction return `true`.

      Transient nontransactional instances return `false`.

      Parameters:
        `pc` - the calling `PersistenceCapable` instance
      Returns:
        `true` if this instance has been modified in the current transaction.
      See Also:
        `PersistenceCapable.jdoMakeDirty(String fieldName)`

    - #### isTransactional

          boolean isTransactional(PersistenceCapable pc)

      Tests whether this object is transactional. Instances that respect transaction boundaries return `true`. These instances include transient instances made transactional as a result of being the target of a `makeTransactional` method call; newly made persistent or deleted persistent instances; persistent instances read in data store transactions; and persistent instances modified in optimistic transactions.

      Transient nontransactional instances return `false`.

      Parameters:
        `pc` - the calling `PersistenceCapable` instance
      Returns:
        `true` if this instance is transactional.

    - #### isPersistent

          boolean isPersistent(PersistenceCapable pc)

      Tests whether this object is persistent. Instances whose state is stored in the data store return `true`.

      Transient instances return `false`.

      Parameters:
        `pc` - the calling `PersistenceCapable` instance
      Returns:
        `true` if this instance is persistent.
      See Also:
        `PersistenceManager.makePersistent(Object pc)`

    - #### isNew

          boolean isNew(PersistenceCapable pc)

      Tests whether this object has been newly made persistent. Instances that have been made persistent in the current transaction return `true`.

      Transient instances return `false`.

      Parameters:
        `pc` - the calling `PersistenceCapable` instance
      Returns:
        `true` if this instance was made persistent in the current transaction.
      See Also:
        `PersistenceManager.makePersistent(Object pc)`

    - #### isDeleted

          boolean isDeleted(PersistenceCapable pc)

      Tests whether this object has been deleted. Instances that have been deleted in the current transaction return `true`.

      Transient instances return `false`.

      Parameters:
        `pc` - the calling `PersistenceCapable` instance
      Returns:
        `true` if this instance was deleted in the current transaction.
      See Also:
        `PersistenceManager.deletePersistent(Object pc)`

    - #### getPersistenceManager

          PersistenceManager getPersistenceManager(PersistenceCapable pc)

      Return the `PersistenceManager` that owns this instance.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
      Returns:
        the `PersistenceManager` that owns this instance

    - #### makeDirty

          void makeDirty(PersistenceCapable pc,
                         String fieldName)

      Mark the associated `PersistenceCapable` field dirty.

      The `StateManager` will make a copy of the field so it can be restored if needed later, and then mark the field as modified in the current transaction.

      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `fieldName` - the name of the field

    - #### getObjectId

          Object getObjectId(PersistenceCapable pc)

      Return the object representing the JDO identity of the calling instance. If the JDO identity is being changed in the current transaction, this method returns the identity as of the beginning of the transaction.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
      Returns:
        the object representing the JDO identity of the calling instance

    - #### getTransactionalObjectId

          Object getTransactionalObjectId(PersistenceCapable pc)

      Return the object representing the JDO identity of the calling instance. If the JDO identity is being changed in the current transaction, this method returns the current identity as changed in the transaction.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
      Returns:
        the object representing the JDO identity of the calling instance

    - #### getVersion

          Object getVersion(PersistenceCapable pc)

      Return the object representing the version of the calling instance.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
      Returns:
        the object representing the version of the calling instance
      Since:
        2.0

    - #### isLoaded

          boolean isLoaded(PersistenceCapable pc,
                           int field)

      Return `true` if the field is cached in the calling instance.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
      Returns:
        whether the field is cached in the calling instance

    - #### preSerialize

          void preSerialize(PersistenceCapable pc)

      Guarantee that the serializable transactional and persistent fields are loaded into the instance. This method is called by the generated `jdoPreSerialize` method prior to serialization of the instance.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance

    - #### getBooleanField

          boolean getBooleanField(PersistenceCapable pc,
                                  int field,
                                  boolean currentValue)

      Return the value for the field.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
      Returns:
        the new value for the field

    - #### getCharField

          char getCharField(PersistenceCapable pc,
                            int field,
                            char currentValue)

      Return the value for the field.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
      Returns:
        the new value for the field

    - #### getByteField

          byte getByteField(PersistenceCapable pc,
                            int field,
                            byte currentValue)

      Return the value for the field.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
      Returns:
        the new value for the field

    - #### getShortField

          short getShortField(PersistenceCapable pc,
                              int field,
                              short currentValue)

      Return the value for the field.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
      Returns:
        the new value for the field

    - #### getIntField

          int getIntField(PersistenceCapable pc,
                          int field,
                          int currentValue)

      Return the value for the field.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
      Returns:
        the new value for the field

    - #### getLongField

          long getLongField(PersistenceCapable pc,
                            int field,
                            long currentValue)

      Return the value for the field.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
      Returns:
        the new value for the field

    - #### getFloatField

          float getFloatField(PersistenceCapable pc,
                              int field,
                              float currentValue)

      Return the value for the field.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
      Returns:
        the new value for the field

    - #### getDoubleField

          double getDoubleField(PersistenceCapable pc,
                                int field,
                                double currentValue)

      Return the value for the field.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
      Returns:
        the new value for the field

    - #### getStringField

          String getStringField(PersistenceCapable pc,
                                int field,
                                String currentValue)

      Return the value for the field.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
      Returns:
        the new value for the field

    - #### getObjectField

          Object getObjectField(PersistenceCapable pc,
                                int field,
                                Object currentValue)

      Return the value for the field.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
      Returns:
        the new value for the field

    - #### setBooleanField

          void setBooleanField(PersistenceCapable pc,
                               int field,
                               boolean currentValue,
                               boolean newValue)

      Mark the field as modified by the user.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
        `newValue` - the proposed new value of the field

    - #### setCharField

          void setCharField(PersistenceCapable pc,
                            int field,
                            char currentValue,
                            char newValue)

      Mark the field as modified by the user.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
        `newValue` - the proposed new value of the field

    - #### setByteField

          void setByteField(PersistenceCapable pc,
                            int field,
                            byte currentValue,
                            byte newValue)

      Mark the field as modified by the user.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
        `newValue` - the proposed new value of the field

    - #### setShortField

          void setShortField(PersistenceCapable pc,
                             int field,
                             short currentValue,
                             short newValue)

      Mark the field as modified by the user.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
        `newValue` - the proposed new value of the field

    - #### setIntField

          void setIntField(PersistenceCapable pc,
                           int field,
                           int currentValue,
                           int newValue)

      Mark the field as modified by the user.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
        `newValue` - the proposed new value of the field

    - #### setLongField

          void setLongField(PersistenceCapable pc,
                            int field,
                            long currentValue,
                            long newValue)

      Mark the field as modified by the user.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
        `newValue` - the proposed new value of the field

    - #### setFloatField

          void setFloatField(PersistenceCapable pc,
                             int field,
                             float currentValue,
                             float newValue)

      Mark the field as modified by the user.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
        `newValue` - the proposed new value of the field

    - #### setDoubleField

          void setDoubleField(PersistenceCapable pc,
                              int field,
                              double currentValue,
                              double newValue)

      Mark the field as modified by the user.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
        `newValue` - the proposed new value of the field

    - #### setStringField

          void setStringField(PersistenceCapable pc,
                              int field,
                              String currentValue,
                              String newValue)

      Mark the field as modified by the user.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
        `newValue` - the proposed new value of the field

    - #### setObjectField

          void setObjectField(PersistenceCapable pc,
                              int field,
                              Object currentValue,
                              Object newValue)

      Mark the field as modified by the user.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field
        `newValue` - the proposed new value of the field

    - #### providedBooleanField

          void providedBooleanField(PersistenceCapable pc,
                                    int field,
                                    boolean currentValue)

      The value of the field requested to be provided to the `StateManager`.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field

    - #### providedCharField

          void providedCharField(PersistenceCapable pc,
                                 int field,
                                 char currentValue)

      The value of the field requested to be provided to the `StateManager`.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field

    - #### providedByteField

          void providedByteField(PersistenceCapable pc,
                                 int field,
                                 byte currentValue)

      The value of the field requested to be provided to the `StateManager`.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field

    - #### providedShortField

          void providedShortField(PersistenceCapable pc,
                                  int field,
                                  short currentValue)

      The value of the field requested to be provided to the `StateManager`.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field

    - #### providedIntField

          void providedIntField(PersistenceCapable pc,
                                int field,
                                int currentValue)

      The value of the field requested to be provided to the `StateManager`.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field

    - #### providedLongField

          void providedLongField(PersistenceCapable pc,
                                 int field,
                                 long currentValue)

      The value of the field requested to be provided to the `StateManager`.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field

    - #### providedFloatField

          void providedFloatField(PersistenceCapable pc,
                                  int field,
                                  float currentValue)

      The value of the field requested to be provided to the `StateManager`.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field

    - #### providedDoubleField

          void providedDoubleField(PersistenceCapable pc,
                                   int field,
                                   double currentValue)

      The value of the field requested to be provided to the `StateManager`.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field

    - #### providedStringField

          void providedStringField(PersistenceCapable pc,
                                   int field,
                                   String currentValue)

      The value of the field requested to be provided to the `StateManager`.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field

    - #### providedObjectField

          void providedObjectField(PersistenceCapable pc,
                                   int field,
                                   Object currentValue)

      The value of the field requested to be provided to the `StateManager`.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
        `currentValue` - the current value of the field

    - #### replacingBooleanField

          boolean replacingBooleanField(PersistenceCapable pc,
                                        int field)

      The replacement value of the field in the calling instance.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
      Returns:
        the new value for the field

    - #### replacingCharField

          char replacingCharField(PersistenceCapable pc,
                                  int field)

      The replacement value of the field in the calling instance.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
      Returns:
        the new value for the field

    - #### replacingByteField

          byte replacingByteField(PersistenceCapable pc,
                                  int field)

      The replacement value of the field in the calling instance.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
      Returns:
        the new value for the field

    - #### replacingShortField

          short replacingShortField(PersistenceCapable pc,
                                    int field)

      The replacement value of the field in the calling instance.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
      Returns:
        the new value for the field

    - #### replacingIntField

          int replacingIntField(PersistenceCapable pc,
                                int field)

      The replacement value of the field in the calling instance.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
      Returns:
        the new value for the field

    - #### replacingLongField

          long replacingLongField(PersistenceCapable pc,
                                  int field)

      The replacement value of the field in the calling instance.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
      Returns:
        the new value for the field

    - #### replacingFloatField

          float replacingFloatField(PersistenceCapable pc,
                                    int field)

      The replacement value of the field in the calling instance.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
      Returns:
        the new value for the field

    - #### replacingDoubleField

          double replacingDoubleField(PersistenceCapable pc,
                                      int field)

      The replacement value of the field in the calling instance.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
      Returns:
        the new value for the field

    - #### replacingStringField

          String replacingStringField(PersistenceCapable pc,
                                      int field)

      The replacement value of the field in the calling instance.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
      Returns:
        the new value for the field

    - #### replacingObjectField

          Object replacingObjectField(PersistenceCapable pc,
                                      int field)

      The replacement value of the field in the calling instance.
      Parameters:
        `pc` - the calling `PersistenceCapable` instance
        `field` - the field number
      Returns:
        the new value for the field

    - #### replacingDetachedState

          Object[] replacingDetachedState(Detachable pc,
                                          Object[] state)

      The replacement value of the detached state in the calling instance.
      Parameters:
        `pc` - the calling `Detachable` instance
        `state` - the current value of the detached state
      Returns:
        the replacement value for the detached state
      Since:
        2.0

Copyright © 2005–2022 The Apache Software Foundation. All rights reserved.