javax.jdo.spi.StateInterrogation - JDO interface
javax.jdo.spi
Interface StateInterrogation
A call to JDOHelper to get the status of an instance is handled internally if the parameter instance implements PersistenceCapable. For non-binary-compatible implementations, there is no requirement that persistent instances implement PersistenceCapable. Therefore, if the parameter does not implement PersistenceCapable, JDOHelper delegates to all registered instances of StateInterrogation until an instance can handle the request.
For JDOHelper isXXX methods, which return boolean, the corresponding method in StateInterrogation returns Boolean. If the return value is null
then the StateInterrogation does not recognize the parameter as being handled by it. A non-null return value indicates that the implementation has determined the answer.
For JDOHelper getXXX methods, which return an Object, each registered StateInterrogation is given the parameter until one of them returns a non-null value, which is passed to the caller.
For JDOHelper makeDirty, each registered StateInterrogation is given the parameter until one of them returns true, indicating that it has handled the call. An instance that implements this interface must be registered with the JDOImplHelper.
- Since:
- JDO 2.0
Persistent instances of PersistenceCapable
classes have a JDO identity managed by the PersistenceManager
. This method returns a copy of the ObjectId that represents the JDO identity.
Instances unknown by the implementation return null
.
The ObjectId may be serialized and later restored, and used with a PersistenceManager
from the same JDO implementation to locate a persistent instance with the same data store identity.
If the JDO identity is managed by the application, then the ObjectId may be used with a PersistenceManager
from any JDO implementation that supports the PersistenceCapable
class.
If the JDO identity is not managed by the application or the data store, then the ObjectId returned is only valid within the current transaction.
- Parameters:
-
pc
- the instance.
- Returns:
- a copy of the ObjectId of the parameter instance as of the beginning of the transaction.
- Since:
- JDO 2.0
PersistenceManager
if there is one. Transactional and persistent instances return the associated PersistenceManager
. Transient non-transactional instances return null
.
Instances unknown by the implementation return null
.
- Parameters:
-
pc
- the instance.
- Returns:
- the
PersistenceManager
associated with the parameter instance.
- Since:
- JDO 2.0
Instances unknown by the implementation return null
.
- Parameters:
-
pc
- the instance.
- Returns:
- a copy of the ObjectId of the parameter instance as modified in this transaction.
- Since:
- JDO 2.0
Instances unknown by the implementation return null
.
- Parameters:
-
pc
- the instance.
- Returns:
- a copy of the ObjectId of the parameter instance as modified in this transaction.
- Since:
- JDO 2.0
- See Also:
- PersistenceCapable.jdoGetVersion()
Boolean.TRUE
. Instances known by the implementation to be non-deleted return Boolean.FALSE
.
Instances not recognized by the implementation return null
.
- Parameters:
-
pc
- the instance.
- Returns:
-
Boolean.TRUE
if the parameter instance was deleted in the current transaction.
- Since:
- JDO 2.0
Boolean.TRUE
. Instances known by the implementation to be non-detached return Boolean.FALSE
.
Instances not recognized by the implementation return null
.
- Parameters:
-
pc
- the instance.
- Returns:
-
Boolean.TRUE
if the parameter instance is detached.
- Since:
- JDO 2.0
Boolean.TRUE
. Instances known by the implementation to be non-dirty return Boolean.FALSE
.
Instances not recognized by the implementation return null
.
- Parameters:
-
pc
- the instance.
- Returns:
-
Boolean.TRUE
if the parameter instance has been modified in the current transaction, or while detached.
- Since:
- JDO 2.0
Boolean.TRUE
. Instances known by the implementation to be non-new return Boolean.FALSE
.
Instances not recognized by the implementation return null
.
- Parameters:
-
pc
- the instance.
- Returns:
-
Boolean.TRUE
if the parameter instance was made persistent in the current transaction.
- Since:
- JDO 2.0
Boolean.TRUE
. Instances known by the implementation to be non-persistent return Boolean.FALSE
.
Instances not recognized by the implementation return null
.
- Parameters:
-
pc
- the instance.
- Returns:
-
Boolean.TRUE
if the parameter instance is persistent.
- Since:
- JDO 2.0
Boolean.TRUE
. Instances known by the implementation to be non-transactional return Boolean.FALSE
.
Instances not recognized by the implementation return null
.
- Parameters:
-
pc
- the instance.
- Returns:
-
Boolean.TRUE
if the parameter instance is transactional.
- Since:
- JDO 2.0
- See Also:
- PersistenceCapable.jdoIsTransactional()
PersistenceCapable
classes are able to detect changes made to their fields. However, if a reference to an array is given to a method outside the class, and the array is modified, then the persistent instance is not aware of the change. This API allows the application to notify the instance that a change was made to a field. Instances unknown by the implementation are unaffected.
- Parameters:
-
pc
- the instance.fieldName
- the name of the field to be marked dirty.
- Since:
- JDO 2.0