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

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