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:
1.0
Author:
Craig Russell

Method Summary
 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.
 java.lang.Object getObjectField(PersistenceCapable pc, int field, java.lang.Object currentValue)
          Return the value for the field.
 java.lang.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.
 java.lang.String getStringField(PersistenceCapable pc, int field, java.lang.String currentValue)
          Return the value for the field.
 java.lang.Object getTransactionalObjectId(PersistenceCapable pc)
          Return the object representing the JDO identity 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, java.lang.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, java.lang.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, java.lang.String currentValue)
          The value of the field requested to be provided to the StateManager
 boolean replacingBooleanField(PersistenceCapable pc, int field)
          The replacing value of the field in the calling instance
 byte replacingByteField(PersistenceCapable pc, int field)
          The replacing value of the field in the calling instance
 char replacingCharField(PersistenceCapable pc, int field)
          The replacing value of the field in the calling instance
 double replacingDoubleField(PersistenceCapable pc, int field)
          The replacing 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 replacing value of the field in the calling instance
 int replacingIntField(PersistenceCapable pc, int field)
          The replacing value of the field in the calling instance
 long replacingLongField(PersistenceCapable pc, int field)
          The replacing value of the field in the calling instance
 java.lang.Object replacingObjectField(PersistenceCapable pc, int field)
          The replacing value of the field in the calling instance
 short replacingShortField(PersistenceCapable pc, int field)
          The replacing value of the field in the calling instance
 StateManager replacingStateManager(PersistenceCapable pc, StateManager sm)
          Replace the current value of jdoStateManager.
 java.lang.String replacingStringField(PersistenceCapable pc, int field)
          The replacing 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, java.lang.Object currentValue, java.lang.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, java.lang.String currentValue, java.lang.String newValue)
          Mark the field as modified by the user.
 

Method Detail

replacingFlags

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public void makeDirty(PersistenceCapable pc,
                      java.lang.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

public java.lang.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

public java.lang.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

isLoaded

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public java.lang.String getStringField(PersistenceCapable pc,
                                       int field,
                                       java.lang.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

public java.lang.Object getObjectField(PersistenceCapable pc,
                                       int field,
                                       java.lang.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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public void setStringField(PersistenceCapable pc,
                           int field,
                           java.lang.String currentValue,
                           java.lang.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

public void setObjectField(PersistenceCapable pc,
                           int field,
                           java.lang.Object currentValue,
                           java.lang.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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public void providedStringField(PersistenceCapable pc,
                                int field,
                                java.lang.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

public void providedObjectField(PersistenceCapable pc,
                                int field,
                                java.lang.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

public boolean replacingBooleanField(PersistenceCapable pc,
                                     int field)
The replacing 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

public char replacingCharField(PersistenceCapable pc,
                               int field)
The replacing 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

public byte replacingByteField(PersistenceCapable pc,
                               int field)
The replacing 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

public short replacingShortField(PersistenceCapable pc,
                                 int field)
The replacing 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

public int replacingIntField(PersistenceCapable pc,
                             int field)
The replacing 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

public long replacingLongField(PersistenceCapable pc,
                               int field)
The replacing 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

public float replacingFloatField(PersistenceCapable pc,
                                 int field)
The replacing 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

public double replacingDoubleField(PersistenceCapable pc,
                                   int field)
The replacing 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

public java.lang.String replacingStringField(PersistenceCapable pc,
                                             int field)
The replacing 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

public java.lang.Object replacingObjectField(PersistenceCapable pc,
                                             int field)
The replacing 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