Class StateManagerImpl
- All Implemented Interfaces:
Serializable,FieldConsumer,FieldManager,FieldSupplier,StateManager,OpenJPAStateManager
OpenJPAStateManager interface for use
with this runtime. Each state manager manages the state of a single
persistence capable instance. The state manager is also responsible for
all communications about the instance to the StoreManager.
The state manager uses the State pattern in both its interaction with
the governed instance and its interaction with the broker.
In its interactions with the persistence capable instance, it uses the
FieldManager interface. Similarly, when interacting with the
broker, it uses the PCState singleton that represents
the current lifecycle state of the instance.- Author:
- Abe White
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Object[]protected BitSetprotected Objectprotected ClassMetaDataprotected PCStateprotected Objectstatic final intstatic final intstatic final intFields inherited from interface org.apache.openjpa.kernel.OpenJPAStateManager
SET_ATTACH, SET_REMOTE, SET_USER -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedStateManagerImpl(Object id, ClassMetaData meta, BrokerImpl broker) Constructor; supply id, type metadata, and owning persistence manager.Create a new StateManager instance based on the StateManager provided.StateManagerImpl(StateManagerImpl sm, PCState newState) Create a new StateManager instance, optionally overriding the state (FLUSHED, DELETED, etc) of the underlying PersistenceCapable instance). -
Method Summary
Modifier and TypeMethodDescriptionvoidaccessingField(int field) Field access callback.booleanassignObjectId(boolean flush) Ask the store manager to assign a permanent oid to this new instance.protected voidbeforeAccessField(int field) Load the given field before access.booleanbeforeRefresh(boolean refreshAll) Prepare the instance for refreshvoiddirty(int field) Mark the given field as dirty.voidMake named field dirty.voidChecks whether or not_pcis dirty.fetch(int field) Return the externalized value of the field with the given index as an object.booleanfetchBoolean(int field) Return the external value of the given field.booleanfetchBooleanField(int field) Return the value of the given field.bytefetchByte(int field) Return the external value of the given field.bytefetchByteField(int field) Return the value of the given field.charfetchChar(int field) Return the external value of the given field.charfetchCharField(int field) Return the value of the given field.doublefetchDouble(int field) Return the external value of the given field.doublefetchDoubleField(int field) Return the value of the given field.fetchField(int field, boolean transitions) Return the value of the field with the given index as an object.floatfetchFloat(int field) Return the external value of the given field.floatfetchFloatField(int field) Return the value of the given field.fetchInitialField(int field) Return the value of the field at the specified index as of the beginning of the transaction.intfetchInt(int field) Return the external value of the given field.intfetchIntField(int field) Return the value of the given field.longfetchLong(int field) Return the external value of the given field.longfetchLongField(int field) Return the value of the given field.fetchObject(int field) Return the external value of the given field.fetchObjectField(int field) Fetch an object field by index.Return the object id, assigning it if necessary.shortfetchShort(int field) Return the external value of the given field.shortfetchShortField(int field) Return the value of the given field.fetchString(int field) Return the external value of the given field.fetchStringField(int field) Return the value of the given field.Return the managing context.booleangetDirty()Return a read-only mask of the indexes of all dirty fields.protected ObjectgetExtraFieldData(int field, boolean isLoaded) Return the data from the proper index of the extra field data array.Return a read-only mask of the indexes of all fields that have been flushed since they were last changed.Persistence context.getId()Return the identifier for this state manager.An object that concrete back ends can associate with each instance.getImplData(int field) Field-level impl data.getIntermediate(int field) Use intermediate field data to store intermediate information that might be available before the field is fully loaded.Return a read-only mask of the indexes of all loaded fields.getLock()The lock object set for this instance.Return the managed instance.Get the metadata for this instance.Return the instance's object id.getOwner()Return the owning state if this is an embedded instance.intReturn the owning value's field indexgetPCPrimaryKey(Object oid, int field) Return the persistence-capable primary key object by extracting the identity value of the related instance stored in the given field from the given object id.Return the state that this object is in.Return thePersistenceCapableinstance that provides access to the instance managed by this state manager.getUnloaded(FetchConfiguration fetch) Return a mutable mask of the unloaded fields that need loading based on the given fetch configuration.Return the current version indicator for this instance.voidinitialize(Class cls, PCState state) Initialize the state manager with a new instance of the given persistence capable type and the proper lifecycle state.protected voidinitialize(PersistenceCapable pc, PCState state) Initialize with the given instance and state.booleanisDefaultValue(int field) Return true if the given field has a default value.booleanisDelayed(int field) Some field types (collection proxies) support delayed loading.booleanWhether the instance is deleted in this transaction.booleanWhether the instance is detached (i.e. this manager is a detached state manager)booleanisDirty()Whether the instance has been modified in this transaction.booleanReturn true if this instance has an owner, meaning it is an embedded value.booleanReturn whether this object has been flushed to the datastore in this transaction.booleanReturn whether this object has been flushed, then dirtied again.booleanWhether the instance-level impl data can be shared among instances in different contexts if L2 caching is enabled.booleanisImplDataCacheable(int field) Whether the field's impl data is loaded and can be shared among instances in different contexts if L2 caching is enabled.booleanWhether or not data access in this instance is intercepted.booleanisNew()Whether the instance is newly-persisted in this transaction.booleanbooleanWhether the instance is persistent.booleanReturn whether this object is provisionally persistent.booleanWhether the instance is transactional.booleanReturns whether this instance needs a version check.booleanReturns whether this instance needs a version update.voidload(FetchConfiguration fetch) Load fetch group fields.protected booleanload(FetchConfiguration fetch, int loadMode, BitSet exclude, Object sdata, boolean forWrite) Load the state of this instance based on the given fetch configuration and load mode.voidloadDelayedField(int field) Loads a delayed access field.protected voidloadField(int field, int lockLevel, boolean forWrite, boolean fgs) Load the given field's fetch group; the field itself may already be loaded if it is being set by the user.protected voidlock()Lock the state manager if the multithreaded option is set.newFieldProxy(int field) Create a new hollow proxy instance for the given field.newProxy(int field) Create a new hollow proxy instance for the given field.voidprovidedBooleanField(PersistenceCapable pc, int field, boolean curVal) Provide state callback.voidprovidedByteField(PersistenceCapable pc, int field, byte curVal) Provide state callback.voidprovidedCharField(PersistenceCapable pc, int field, char curVal) Provide state callback.voidprovidedDoubleField(PersistenceCapable pc, int field, double curVal) Provide state callback.voidprovidedFloatField(PersistenceCapable pc, int field, float curVal) Provide state callback.voidprovidedIntField(PersistenceCapable pc, int field, int curVal) Provide state callback.voidprovidedLongField(PersistenceCapable pc, int field, long curVal) Provide state callback.voidprovidedObjectField(PersistenceCapable pc, int field, Object curVal) Provide state callback.voidprovidedShortField(PersistenceCapable pc, int field, short curVal) Provide state callback.voidprovidedStringField(PersistenceCapable pc, int field, String curVal) Provide state callback.voidproxyDetachedDeserialized(int idx) Proxy the given detached field after deserialization.voidNotification that an element has been removed from the given field.booleanreplaceBooleanField(PersistenceCapable pc, int field) Replace state callback.bytereplaceByteField(PersistenceCapable pc, int field) Replace state callback.charreplaceCharField(PersistenceCapable pc, int field) Replace state callback.doublereplaceDoubleField(PersistenceCapable pc, int field) Replace state callback.bytefloatreplaceFloatField(PersistenceCapable pc, int field) Replace state callback.intreplaceIntField(PersistenceCapable pc, int field) Replace state callback.longreplaceLongField(PersistenceCapable pc, int field) Replace state callback.replaceObjectField(PersistenceCapable pc, int field) Replace state callback.shortreplaceShortField(PersistenceCapable pc, int field) Replace state callback.Change state manager.replaceStringField(PersistenceCapable pc, int field) Replace state callback.booleanstatic TimestamproundTimestamp(Timestamp val, int datePrecision) booleanCallback to prepare instance for serialization.voidsetBroker(BrokerImpl ctx) voidsetDelayed(int field, boolean delay) Some field types (collection proxies) support delayed loading.setImplData(int field, Object data) Field-level impl data.setImplData(Object data, boolean cacheable) An object that concrete back ends can associate with each instance.voidsetIntermediate(int field, Object data) Use intermediate field data to store intermediate information that might be available before the field is fully loaded.voidThe lock object set for this instance.voidsetNextVersion(Object version) Set the next version indicator in the datastore pending a successful flush.voidsetObjectId(Object oid) Set the object id for the managed instance.voidvoidvoidsetPostLoadCallback(boolean enabled) Set tofalseto prevent the postLoad method from sending lifecycle callback events.voidSet the given field to the given value.voidsettingBooleanField(PersistenceCapable pc, int field, boolean curVal, boolean newVal, int set) Setting state callback.voidsettingByteField(PersistenceCapable pc, int field, byte curVal, byte newVal, int set) Setting state callback.voidsettingCharField(PersistenceCapable pc, int field, char curVal, char newVal, int set) Setting state callback.voidsettingDoubleField(PersistenceCapable pc, int field, double curVal, double newVal, int set) Setting state callback.voidsettingFloatField(PersistenceCapable pc, int field, float curVal, float newVal, int set) Setting state callback.voidsettingIntField(PersistenceCapable pc, int field, int curVal, int newVal, int set) Setting state callback.voidsettingLongField(PersistenceCapable pc, int field, long curVal, long newVal, int set) Setting state callback.voidsettingObjectField(PersistenceCapable pc, int field, Object curVal, Object newVal, int set) Setting state callback.voidsettingShortField(PersistenceCapable pc, int field, short curVal, short newVal, int set) Setting state callback.voidsettingStringField(PersistenceCapable pc, int field, String curVal, String newVal, int set) Setting state callback.voidsetVersion(Object version) Set the version indicator for this instance, as loaded from the data store.voidSet the value of the field with the given index as from the external object value.voidstoreBoolean(int field, boolean externalVal) Set the given external value back into the given field.voidstoreBooleanField(int field, boolean curVal) Set the value of the given field.voidstoreByte(int field, byte externalVal) Set the given external value back into the given field.voidstoreByteField(int field, byte curVal) Set the value of the given field.voidstoreChar(int field, char externalVal) Set the given external value back into the given field.voidstoreCharField(int field, char curVal) Set the value of the given field.voidstoreDouble(int field, double externalVal) Set the given external value back into the given field.voidstoreDoubleField(int field, double curVal) Set the value of the given field.voidstoreField(int field, Object val) Set the value of the field with the given index as an object.voidstoreFloat(int field, float externalVal) Set the given external value back into the given field.voidstoreFloatField(int field, float curVal) Set the value of the given field.voidstoreInt(int field, int externalVal) Set the given external value back into the given field.voidstoreIntField(int field, int curVal) Set the value of the given field.voidstoreLong(int field, long externalVal) Set the given external value back into the given field.voidstoreLongField(int field, long curVal) Set the value of the given field.voidstoreObject(int field, Object externalVal) Set the given external value back into the given field.voidstoreObjectField(int field, Object curVal) Set the value of the given field.voidstoreShort(int field, short externalVal) Set the given external value back into the given field.voidstoreShortField(int field, short curVal) Set the value of the given field.voidstoreString(int field, String externalVal) Set the given external value back into the given field.voidstoreStringField(int field, String curVal) Set the value of the given field.toString()protected RuntimeExceptionTranslate the given exception based on the broker's implicit behavior.protected voidunlock()Unlock the state manager.booleanWrite detached state object and detached state manager to the given stream.
-
Field Details
-
LOAD_FGS
public static final int LOAD_FGS- See Also:
-
LOAD_ALL
public static final int LOAD_ALL- See Also:
-
LOAD_SERIALIZE
public static final int LOAD_SERIALIZE- See Also:
-
_meta
-
_loaded
-
_state
-
_version
-
_loadVersion
-
_fieldImpl
-
-
Constructor Details
-
StateManagerImpl
Constructor; supply id, type metadata, and owning persistence manager. -
StateManagerImpl
Create a new StateManager instance based on the StateManager provided. A new PersistenceCapable instance will be created and associated with the new StateManager. All fields will be copied into the ne PC instance as well as the dirty, loaded, and flushed bitsets.- Parameters:
sm- A statemanager instance which will effectively be cloned.
-
StateManagerImpl
Create a new StateManager instance, optionally overriding the state (FLUSHED, DELETED, etc) of the underlying PersistenceCapable instance).- Parameters:
sm- A statemanager instance which will effectively be cloned.newState- The new state of the underlying persistence capable object.
-
-
Method Details
-
initialize
Description copied from interface:OpenJPAStateManagerInitialize the state manager with a new instance of the given persistence capable type and the proper lifecycle state. Invoking this method may change the object id and metadata for the state manager, as the concrete type specified in the parameter may be a subclass of the expected type.- Specified by:
initializein interfaceOpenJPAStateManager- Parameters:
cls- the type for which to create a new instancestate- the initial state to which to set the instance
-
initialize
Initialize with the given instance and state. -
isIntercepting
public boolean isIntercepting()Whether or not data access in this instance is intercepted. This differs fromClassMetaData.isIntercepting()in that it checks for property access + subclassing in addition to the redefinition / enhancement checks.- Since:
- 1.0.0
-
load
Description copied from interface:OpenJPAStateManagerLoad fetch group fields.- Specified by:
loadin interfaceOpenJPAStateManager
-
load
protected boolean load(FetchConfiguration fetch, int loadMode, BitSet exclude, Object sdata, boolean forWrite) Load the state of this instance based on the given fetch configuration and load mode. Return true if any data was loaded, false otherwise. -
getManagedInstance
Description copied from interface:OpenJPAStateManagerReturn the managed instance.- Specified by:
getManagedInstancein interfaceOpenJPAStateManager
-
getPersistenceCapable
Description copied from interface:OpenJPAStateManagerReturn thePersistenceCapableinstance that provides access to the instance managed by this state manager. May be a proxy around the actual managed instance.- Specified by:
getPersistenceCapablein interfaceOpenJPAStateManager
-
getMetaData
Description copied from interface:OpenJPAStateManagerGet the metadata for this instance.- Specified by:
getMetaDatain interfaceOpenJPAStateManager
-
getOwner
Description copied from interface:OpenJPAStateManagerReturn the owning state if this is an embedded instance.- Specified by:
getOwnerin interfaceOpenJPAStateManager
-
getOwnerIndex
public int getOwnerIndex()Description copied from interface:OpenJPAStateManagerReturn the owning value's field index- Specified by:
getOwnerIndexin interfaceOpenJPAStateManager
-
setOwner
-
isEmbedded
public boolean isEmbedded()Description copied from interface:OpenJPAStateManagerReturn true if this instance has an owner, meaning it is an embedded value.- Specified by:
isEmbeddedin interfaceOpenJPAStateManager
-
isFlushed
public boolean isFlushed()Description copied from interface:OpenJPAStateManagerReturn whether this object has been flushed to the datastore in this transaction.- Specified by:
isFlushedin interfaceOpenJPAStateManager
-
isFlushedDirty
public boolean isFlushedDirty()Description copied from interface:OpenJPAStateManagerReturn whether this object has been flushed, then dirtied again.- Specified by:
isFlushedDirtyin interfaceOpenJPAStateManager
-
getLoaded
Description copied from interface:OpenJPAStateManagerReturn a read-only mask of the indexes of all loaded fields.- Specified by:
getLoadedin interfaceOpenJPAStateManager
-
getUnloaded
Description copied from interface:OpenJPAStateManagerReturn a mutable mask of the unloaded fields that need loading based on the given fetch configuration. Pass in null to retrieve all unloaded fields.- Specified by:
getUnloadedin interfaceOpenJPAStateManager
-
getContext
Description copied from interface:OpenJPAStateManagerReturn the managing context.- Specified by:
getContextin interfaceOpenJPAStateManager
-
getId
Description copied from interface:OpenJPAStateManagerReturn the identifier for this state manager. This may return a temporary identifier for new unflushed instances that have not been assigned an object id, or for non-persistent or embedded instances. For all other instances this method is the same asOpenJPAStateManager.getObjectId().- Specified by:
getIdin interfaceOpenJPAStateManager
-
getObjectId
Description copied from interface:OpenJPAStateManagerReturn the instance's object id. This method will return null if no oid has been assigned. Oids are assigned to newly-persisted instances when the user first asks for it, or on flush.- Specified by:
getObjectIdin interfaceOpenJPAStateManager
-
setObjectId
Description copied from interface:OpenJPAStateManagerSet the object id for the managed instance. Some back ends may not be able to assign a permanent oid until flush. Do not call this method on application identity instances; changing the primary key fields of application identity objects through thestoreXXXFieldmethods will automatically change the oid.- Specified by:
setObjectIdin interfaceOpenJPAStateManager
-
getObjectIdOwner
-
assignObjectId
public boolean assignObjectId(boolean flush) Description copied from interface:OpenJPAStateManagerAsk the store manager to assign a permanent oid to this new instance.- Specified by:
assignObjectIdin interfaceOpenJPAStateManager- Parameters:
flush- if true, flush if necessary to get a permanent oid; if false, the oid may be left unassigned- Returns:
- true if an oid assigned, false otherwise
-
getLock
Description copied from interface:OpenJPAStateManagerThe lock object set for this instance. This object is generally managed by the system lock manager.- Specified by:
getLockin interfaceOpenJPAStateManager
-
setLock
Description copied from interface:OpenJPAStateManagerThe lock object set for this instance. This object is generally managed by the system lock manager.- Specified by:
setLockin interfaceOpenJPAStateManager
-
getVersion
Description copied from interface:OpenJPAStateManagerReturn the current version indicator for this instance.- Specified by:
getVersionin interfaceOpenJPAStateManager- Specified by:
getVersionin interfaceStateManager
-
setVersion
Description copied from interface:OpenJPAStateManagerSet the version indicator for this instance, as loaded from the data store. This method is used by theStoreManagerwhen loading instance data. On rollback, the version will be rolled back to this value. Version objects should be serializable and should not require vendor-specific classes, because they are transferred to detached objects.- Specified by:
setVersionin interfaceOpenJPAStateManager
-
setNextVersion
Description copied from interface:OpenJPAStateManagerSet the next version indicator in the datastore pending a successful flush. TheStoreManageruses this method during flush.- Specified by:
setNextVersionin interfaceOpenJPAStateManager
-
roundTimestamp
-
getPCState
Description copied from interface:OpenJPAStateManagerReturn the state that this object is in.- Specified by:
getPCStatein interfaceOpenJPAStateManager
-
getImplData
Description copied from interface:OpenJPAStateManagerAn object that concrete back ends can associate with each instance. This object is not used or modified in any way by the generic persistence layer.- Specified by:
getImplDatain interfaceOpenJPAStateManager
-
setImplData
Description copied from interface:OpenJPAStateManagerAn object that concrete back ends can associate with each instance. This object is not used or modified in any way by the generic persistence layer.- Specified by:
setImplDatain interfaceOpenJPAStateManagercacheable- whether the impl data can be shared among instances in different contexts if L2 caching is enabled- Returns:
- the previous impl data value, if any
-
isImplDataCacheable
public boolean isImplDataCacheable()Description copied from interface:OpenJPAStateManagerWhether the instance-level impl data can be shared among instances in different contexts if L2 caching is enabled.- Specified by:
isImplDataCacheablein interfaceOpenJPAStateManager
-
getImplData
Description copied from interface:OpenJPAStateManagerField-level impl data. Field-level data only applies to loaded fields, and is cleared when the field is cleared.- Specified by:
getImplDatain interfaceOpenJPAStateManager
-
setImplData
Description copied from interface:OpenJPAStateManagerField-level impl data. Field-level data only applies to loaded fields, and is cleared when the field is cleared. Whether the data is cached across instances depends on the corresponding field metadata's response toFieldMetaData.usesImplData().- Specified by:
setImplDatain interfaceOpenJPAStateManager- Returns:
- the previous impl data value, if any
-
isImplDataCacheable
public boolean isImplDataCacheable(int field) Description copied from interface:OpenJPAStateManagerWhether the field's impl data is loaded and can be shared among instances in different contexts if L2 caching is enabled.- Specified by:
isImplDataCacheablein interfaceOpenJPAStateManager
-
getIntermediate
Description copied from interface:OpenJPAStateManagerUse intermediate field data to store intermediate information that might be available before the field is fully loaded. The system will automatically clear this data when the field gets loaded. This data should be cacheable; the datastore cache will attempt to cache it if the field value is not available.- Specified by:
getIntermediatein interfaceOpenJPAStateManager
-
setIntermediate
Description copied from interface:OpenJPAStateManagerUse intermediate field data to store intermediate information that might be available before the field is fully loaded. The system will automatically clear this data when the field gets loaded. This data should be cacheable; the datastore cache will attempt to cache it if the field value is not available.- Specified by:
setIntermediatein interfaceOpenJPAStateManager
-
getExtraFieldData
Return the data from the proper index of the extra field data array. -
fetch
Description copied from interface:OpenJPAStateManagerReturn the externalized value of the field with the given index as an object. If there is no externalizer, this is equivalent toOpenJPAStateManager.fetchField(int, boolean).- Specified by:
fetchin interfaceOpenJPAStateManager
-
fetchField
Description copied from interface:OpenJPAStateManagerReturn the value of the field with the given index as an object.- Specified by:
fetchFieldin interfaceOpenJPAStateManagertransitions- if true, this method will cause state transitions to occur as if the field were accessed normally
-
store
Description copied from interface:OpenJPAStateManagerSet the value of the field with the given index as from the external object value. If there is no externalizer, this is equivalent toOpenJPAStateManager.storeField(int, java.lang.Object).- Specified by:
storein interfaceOpenJPAStateManager
-
storeField
Description copied from interface:OpenJPAStateManagerSet the value of the field with the given index as an object.- Specified by:
storeFieldin interfaceOpenJPAStateManager
-
dirtyCheck
public void dirtyCheck()Checks whether or not
_pcis dirty. In the cases where field tracking is not happening (see below), this method will do a state comparison to find whether_pcis dirty, and will update this instance with this information. In the cases where field tracking is happening, this method is a no-op.Fields are tracked for all classes that are run through the OpenJPA enhancer prior to or during deployment, and all classes (enhanced or unenhanced) in a Java 6 environment or newer.
In a Java 5 VM or older:
- instances of unenhanced classes that use property access and obey the property access limitations are tracked when the instances are loaded from the database by OpenJPA, and are not tracked when the instances are created by application code.
- instances of unenhanced classes that use field access are never tracked.- Since:
- 1.0.0
-
fetchInitialField
Description copied from interface:OpenJPAStateManagerReturn the value of the field at the specified index as of the beginning of the transaction.- Specified by:
fetchInitialFieldin interfaceOpenJPAStateManager
-
setRemote
Description copied from interface:OpenJPAStateManagerSet the given field to the given value. Make the field dirty as if user code set it. Do not delete dependent objects in the field's current value. This method is invoked by the remote package to synch a server-side state manager with remote changes. We do not need to delete dependent instances because they will have been deleted when the field changed on the client side, and those client-side deletes will be transmitted independently.- Specified by:
setRemotein interfaceOpenJPAStateManager
-
beforeRefresh
public boolean beforeRefresh(boolean refreshAll) Description copied from interface:OpenJPAStateManagerPrepare the instance for refresh- Specified by:
beforeRefreshin interfaceOpenJPAStateManager- Parameters:
refreshAll- true if this instance is one of a collection of objects being refreshed- Returns:
- true if the object needs a refresh, false otherwise
- See Also:
-
getDereferencedEmbedDependent
public boolean getDereferencedEmbedDependent() -
serializing
public boolean serializing()Description copied from interface:StateManagerCallback to prepare instance for serialization.- Specified by:
serializingin interfaceStateManager- Returns:
- whether or not unloaded fields should be closed.
-
writeDetached
Description copied from interface:StateManagerWrite detached state object and detached state manager to the given stream.- Specified by:
writeDetachedin interfaceStateManager- Returns:
- true if managed fields also written to stream
- Throws:
IOException
-
proxyDetachedDeserialized
public void proxyDetachedDeserialized(int idx) Description copied from interface:StateManagerProxy the given detached field after deserialization.- Specified by:
proxyDetachedDeserializedin interfaceStateManager
-
isTransactional
public boolean isTransactional()Description copied from interface:StateManagerWhether the instance is transactional.- Specified by:
isTransactionalin interfaceStateManager
-
isPendingTransactional
public boolean isPendingTransactional() -
isProvisional
public boolean isProvisional()Description copied from interface:OpenJPAStateManagerReturn whether this object is provisionally persistent.- Specified by:
isProvisionalin interfaceOpenJPAStateManager
-
isPersistent
public boolean isPersistent()Description copied from interface:StateManagerWhether the instance is persistent.- Specified by:
isPersistentin interfaceStateManager
-
isNew
public boolean isNew()Description copied from interface:StateManagerWhether the instance is newly-persisted in this transaction.- Specified by:
isNewin interfaceStateManager
-
isDeleted
public boolean isDeleted()Description copied from interface:StateManagerWhether the instance is deleted in this transaction.- Specified by:
isDeletedin interfaceStateManager
-
isDirty
public boolean isDirty()Description copied from interface:StateManagerWhether the instance has been modified in this transaction.- Specified by:
isDirtyin interfaceStateManager
-
isDetached
public boolean isDetached()Description copied from interface:StateManagerWhether the instance is detached (i.e. this manager is a detached state manager)- Specified by:
isDetachedin interfaceStateManager
-
getGenericContext
Description copied from interface:StateManagerPersistence context.- Specified by:
getGenericContextin interfaceStateManager
-
fetchObjectId
Description copied from interface:StateManagerReturn the object id, assigning it if necessary.- Specified by:
fetchObjectIdin interfaceStateManager
-
getPCPrimaryKey
Description copied from interface:StateManagerReturn the persistence-capable primary key object by extracting the identity value of the related instance stored in the given field from the given object id.- Specified by:
getPCPrimaryKeyin interfaceStateManager
-
replaceFlags
public byte replaceFlags() -
replaceStateManager
Description copied from interface:StateManagerChange state manager.- Specified by:
replaceStateManagerin interfaceStateManager
-
accessingField
public void accessingField(int field) Description copied from interface:StateManagerField access callback.- Specified by:
accessingFieldin interfaceStateManager
-
isDelayed
public boolean isDelayed(int field) Description copied from interface:OpenJPAStateManagerSome field types (collection proxies) support delayed loading. Delayed loading is a step beyond lazy loading. Delayed load allows an instance of a field to be returned without actually loading it.- Specified by:
isDelayedin interfaceOpenJPAStateManager- Returns:
- true if the field is setup for delayed access
-
setDelayed
public void setDelayed(int field, boolean delay) Description copied from interface:OpenJPAStateManagerSome field types (collection proxies) support delayed loading. Delayed loading is a step beyond lazy loading. Delayed load allows an instance of a field to be returned without actually loading it.- Specified by:
setDelayedin interfaceOpenJPAStateManager
-
loadDelayedField
public void loadDelayedField(int field) Loads a delayed access field.- Specified by:
loadDelayedFieldin interfaceOpenJPAStateManager
-
beforeAccessField
protected void beforeAccessField(int field) Load the given field before access. -
dirty
Description copied from interface:StateManagerMake named field dirty.- Specified by:
dirtyin interfaceStateManager
-
dirty
public void dirty(int field) Description copied from interface:OpenJPAStateManagerMark the given field as dirty.- Specified by:
dirtyin interfaceOpenJPAStateManager
-
removed
Description copied from interface:OpenJPAStateManagerNotification that an element has been removed from the given field.- Specified by:
removedin interfaceOpenJPAStateManager
-
newProxy
Description copied from interface:OpenJPAStateManagerCreate a new hollow proxy instance for the given field. In cases where the field externalizes to an SCO but is declared something else, the returned object may not implementProxy. In all other cases, this method delegates to the systemProxyManagerwith the correct field information. The returned proxy's owner is unset so that modifications to the proxy will not be tracked while its state is initialized. CallingOpenJPAStateManager.storeField(int, java.lang.Object)orOpenJPAStateManager.store(int, java.lang.Object)will set the proxy's owner automatically.- Specified by:
newProxyin interfaceOpenJPAStateManager
-
newFieldProxy
Description copied from interface:OpenJPAStateManagerCreate a new hollow proxy instance for the given field. This method differs fromOpenJPAStateManager.newProxy(int)in that it returns a proxy for the field's declared type, not its externalized type.- Specified by:
newFieldProxyin interfaceOpenJPAStateManager- See Also:
-
isDefaultValue
public boolean isDefaultValue(int field) Description copied from interface:OpenJPAStateManagerReturn true if the given field has a default value.- Specified by:
isDefaultValuein interfaceOpenJPAStateManager
-
settingBooleanField
public void settingBooleanField(PersistenceCapable pc, int field, boolean curVal, boolean newVal, int set) Description copied from interface:StateManagerSetting state callback.- Specified by:
settingBooleanFieldin interfaceStateManager
-
settingByteField
Description copied from interface:StateManagerSetting state callback.- Specified by:
settingByteFieldin interfaceStateManager
-
settingCharField
Description copied from interface:StateManagerSetting state callback.- Specified by:
settingCharFieldin interfaceStateManager
-
settingDoubleField
public void settingDoubleField(PersistenceCapable pc, int field, double curVal, double newVal, int set) Description copied from interface:StateManagerSetting state callback.- Specified by:
settingDoubleFieldin interfaceStateManager
-
settingFloatField
public void settingFloatField(PersistenceCapable pc, int field, float curVal, float newVal, int set) Description copied from interface:StateManagerSetting state callback.- Specified by:
settingFloatFieldin interfaceStateManager
-
settingIntField
Description copied from interface:StateManagerSetting state callback.- Specified by:
settingIntFieldin interfaceStateManager
-
settingLongField
Description copied from interface:StateManagerSetting state callback.- Specified by:
settingLongFieldin interfaceStateManager
-
settingObjectField
public void settingObjectField(PersistenceCapable pc, int field, Object curVal, Object newVal, int set) Description copied from interface:StateManagerSetting state callback.- Specified by:
settingObjectFieldin interfaceStateManager
-
settingShortField
public void settingShortField(PersistenceCapable pc, int field, short curVal, short newVal, int set) Description copied from interface:StateManagerSetting state callback.- Specified by:
settingShortFieldin interfaceStateManager
-
settingStringField
public void settingStringField(PersistenceCapable pc, int field, String curVal, String newVal, int set) Description copied from interface:StateManagerSetting state callback.- Specified by:
settingStringFieldin interfaceStateManager
-
providedBooleanField
Description copied from interface:StateManagerProvide state callback.- Specified by:
providedBooleanFieldin interfaceStateManager
-
providedByteField
Description copied from interface:StateManagerProvide state callback.- Specified by:
providedByteFieldin interfaceStateManager
-
providedCharField
Description copied from interface:StateManagerProvide state callback.- Specified by:
providedCharFieldin interfaceStateManager
-
providedDoubleField
Description copied from interface:StateManagerProvide state callback.- Specified by:
providedDoubleFieldin interfaceStateManager
-
providedFloatField
Description copied from interface:StateManagerProvide state callback.- Specified by:
providedFloatFieldin interfaceStateManager
-
providedIntField
Description copied from interface:StateManagerProvide state callback.- Specified by:
providedIntFieldin interfaceStateManager
-
providedLongField
Description copied from interface:StateManagerProvide state callback.- Specified by:
providedLongFieldin interfaceStateManager
-
providedObjectField
Description copied from interface:StateManagerProvide state callback.- Specified by:
providedObjectFieldin interfaceStateManager
-
providedShortField
Description copied from interface:StateManagerProvide state callback.- Specified by:
providedShortFieldin interfaceStateManager
-
providedStringField
Description copied from interface:StateManagerProvide state callback.- Specified by:
providedStringFieldin interfaceStateManager
-
replaceBooleanField
Description copied from interface:StateManagerReplace state callback.- Specified by:
replaceBooleanFieldin interfaceStateManager
-
replaceByteField
Description copied from interface:StateManagerReplace state callback.- Specified by:
replaceByteFieldin interfaceStateManager
-
replaceCharField
Description copied from interface:StateManagerReplace state callback.- Specified by:
replaceCharFieldin interfaceStateManager
-
replaceDoubleField
Description copied from interface:StateManagerReplace state callback.- Specified by:
replaceDoubleFieldin interfaceStateManager
-
replaceFloatField
Description copied from interface:StateManagerReplace state callback.- Specified by:
replaceFloatFieldin interfaceStateManager
-
replaceIntField
Description copied from interface:StateManagerReplace state callback.- Specified by:
replaceIntFieldin interfaceStateManager
-
replaceLongField
Description copied from interface:StateManagerReplace state callback.- Specified by:
replaceLongFieldin interfaceStateManager
-
replaceObjectField
Description copied from interface:StateManagerReplace state callback.- Specified by:
replaceObjectFieldin interfaceStateManager
-
replaceShortField
Description copied from interface:StateManagerReplace state callback.- Specified by:
replaceShortFieldin interfaceStateManager
-
replaceStringField
Description copied from interface:StateManagerReplace state callback.- Specified by:
replaceStringFieldin interfaceStateManager
-
fetchBoolean
public boolean fetchBoolean(int field) Description copied from interface:OpenJPAStateManagerReturn the external value of the given field.- Specified by:
fetchBooleanin interfaceOpenJPAStateManager
-
fetchBooleanField
public boolean fetchBooleanField(int field) Description copied from interface:FieldSupplierReturn the value of the given field.- Specified by:
fetchBooleanFieldin interfaceFieldSupplier
-
fetchByte
public byte fetchByte(int field) Description copied from interface:OpenJPAStateManagerReturn the external value of the given field.- Specified by:
fetchBytein interfaceOpenJPAStateManager
-
fetchByteField
public byte fetchByteField(int field) Description copied from interface:FieldSupplierReturn the value of the given field.- Specified by:
fetchByteFieldin interfaceFieldSupplier
-
fetchChar
public char fetchChar(int field) Description copied from interface:OpenJPAStateManagerReturn the external value of the given field.- Specified by:
fetchCharin interfaceOpenJPAStateManager
-
fetchCharField
public char fetchCharField(int field) Description copied from interface:FieldSupplierReturn the value of the given field.- Specified by:
fetchCharFieldin interfaceFieldSupplier
-
fetchDouble
public double fetchDouble(int field) Description copied from interface:OpenJPAStateManagerReturn the external value of the given field.- Specified by:
fetchDoublein interfaceOpenJPAStateManager
-
fetchDoubleField
public double fetchDoubleField(int field) Description copied from interface:FieldSupplierReturn the value of the given field.- Specified by:
fetchDoubleFieldin interfaceFieldSupplier
-
fetchFloat
public float fetchFloat(int field) Description copied from interface:OpenJPAStateManagerReturn the external value of the given field.- Specified by:
fetchFloatin interfaceOpenJPAStateManager
-
fetchFloatField
public float fetchFloatField(int field) Description copied from interface:FieldSupplierReturn the value of the given field.- Specified by:
fetchFloatFieldin interfaceFieldSupplier
-
fetchInt
public int fetchInt(int field) Description copied from interface:OpenJPAStateManagerReturn the external value of the given field.- Specified by:
fetchIntin interfaceOpenJPAStateManager
-
fetchIntField
public int fetchIntField(int field) Description copied from interface:FieldSupplierReturn the value of the given field.- Specified by:
fetchIntFieldin interfaceFieldSupplier
-
fetchLong
public long fetchLong(int field) Description copied from interface:OpenJPAStateManagerReturn the external value of the given field.- Specified by:
fetchLongin interfaceOpenJPAStateManager
-
fetchLongField
public long fetchLongField(int field) Description copied from interface:FieldSupplierReturn the value of the given field.- Specified by:
fetchLongFieldin interfaceFieldSupplier
-
fetchObject
Description copied from interface:OpenJPAStateManagerReturn the external value of the given field.- Specified by:
fetchObjectin interfaceOpenJPAStateManager
-
fetchObjectField
Description copied from interface:OpenJPAStateManagerFetch an object field by index.- Specified by:
fetchObjectFieldin interfaceFieldSupplier- Specified by:
fetchObjectFieldin interfaceOpenJPAStateManager
-
fetchShort
public short fetchShort(int field) Description copied from interface:OpenJPAStateManagerReturn the external value of the given field.- Specified by:
fetchShortin interfaceOpenJPAStateManager
-
fetchShortField
public short fetchShortField(int field) Description copied from interface:FieldSupplierReturn the value of the given field.- Specified by:
fetchShortFieldin interfaceFieldSupplier
-
fetchString
Description copied from interface:OpenJPAStateManagerReturn the external value of the given field.- Specified by:
fetchStringin interfaceOpenJPAStateManager
-
fetchStringField
Description copied from interface:FieldSupplierReturn the value of the given field.- Specified by:
fetchStringFieldin interfaceFieldSupplier
-
storeBoolean
public void storeBoolean(int field, boolean externalVal) Description copied from interface:OpenJPAStateManagerSet the given external value back into the given field.- Specified by:
storeBooleanin interfaceOpenJPAStateManager
-
storeBooleanField
public void storeBooleanField(int field, boolean curVal) Description copied from interface:FieldConsumerSet the value of the given field.- Specified by:
storeBooleanFieldin interfaceFieldConsumer
-
storeByte
public void storeByte(int field, byte externalVal) Description copied from interface:OpenJPAStateManagerSet the given external value back into the given field.- Specified by:
storeBytein interfaceOpenJPAStateManager
-
storeByteField
public void storeByteField(int field, byte curVal) Description copied from interface:FieldConsumerSet the value of the given field.- Specified by:
storeByteFieldin interfaceFieldConsumer
-
storeChar
public void storeChar(int field, char externalVal) Description copied from interface:OpenJPAStateManagerSet the given external value back into the given field.- Specified by:
storeCharin interfaceOpenJPAStateManager
-
storeCharField
public void storeCharField(int field, char curVal) Description copied from interface:FieldConsumerSet the value of the given field.- Specified by:
storeCharFieldin interfaceFieldConsumer
-
storeDouble
public void storeDouble(int field, double externalVal) Description copied from interface:OpenJPAStateManagerSet the given external value back into the given field.- Specified by:
storeDoublein interfaceOpenJPAStateManager
-
storeDoubleField
public void storeDoubleField(int field, double curVal) Description copied from interface:FieldConsumerSet the value of the given field.- Specified by:
storeDoubleFieldin interfaceFieldConsumer
-
storeFloat
public void storeFloat(int field, float externalVal) Description copied from interface:OpenJPAStateManagerSet the given external value back into the given field.- Specified by:
storeFloatin interfaceOpenJPAStateManager
-
storeFloatField
public void storeFloatField(int field, float curVal) Description copied from interface:FieldConsumerSet the value of the given field.- Specified by:
storeFloatFieldin interfaceFieldConsumer
-
storeInt
public void storeInt(int field, int externalVal) Description copied from interface:OpenJPAStateManagerSet the given external value back into the given field.- Specified by:
storeIntin interfaceOpenJPAStateManager
-
storeIntField
public void storeIntField(int field, int curVal) Description copied from interface:FieldConsumerSet the value of the given field.- Specified by:
storeIntFieldin interfaceFieldConsumer
-
storeLong
public void storeLong(int field, long externalVal) Description copied from interface:OpenJPAStateManagerSet the given external value back into the given field.- Specified by:
storeLongin interfaceOpenJPAStateManager
-
storeLongField
public void storeLongField(int field, long curVal) Description copied from interface:FieldConsumerSet the value of the given field.- Specified by:
storeLongFieldin interfaceFieldConsumer
-
storeObject
Description copied from interface:OpenJPAStateManagerSet the given external value back into the given field.- Specified by:
storeObjectin interfaceOpenJPAStateManager
-
storeObjectField
Description copied from interface:FieldConsumerSet the value of the given field.- Specified by:
storeObjectFieldin interfaceFieldConsumer
-
storeShort
public void storeShort(int field, short externalVal) Description copied from interface:OpenJPAStateManagerSet the given external value back into the given field.- Specified by:
storeShortin interfaceOpenJPAStateManager
-
storeShortField
public void storeShortField(int field, short curVal) Description copied from interface:FieldConsumerSet the value of the given field.- Specified by:
storeShortFieldin interfaceFieldConsumer
-
storeString
Description copied from interface:OpenJPAStateManagerSet the given external value back into the given field.- Specified by:
storeStringin interfaceOpenJPAStateManager
-
storeStringField
Description copied from interface:FieldConsumerSet the value of the given field.- Specified by:
storeStringFieldin interfaceFieldConsumer
-
getSaveFieldManager
-
loadField
protected void loadField(int field, int lockLevel, boolean forWrite, boolean fgs) Load the given field's fetch group; the field itself may already be loaded if it is being set by the user. -
setPostLoadCallback
public void setPostLoadCallback(boolean enabled) Set tofalseto prevent the postLoad method from sending lifecycle callback events. -
isVersionCheckRequired
public boolean isVersionCheckRequired()Returns whether this instance needs a version check.- Specified by:
isVersionCheckRequiredin interfaceOpenJPAStateManager
-
isVersionUpdateRequired
public boolean isVersionUpdateRequired()Returns whether this instance needs a version update.- Specified by:
isVersionUpdateRequiredin interfaceOpenJPAStateManager
-
translate
Translate the given exception based on the broker's implicit behavior. Translation only occurs if the exception is initiated by a user action on an instance, and therefore will not be caught and translated by the broker. -
lock
protected void lock()Lock the state manager if the multithreaded option is set. -
unlock
protected void unlock()Unlock the state manager. -
getMappedByIdFields
-
requiresFetch
-
setPc
-
setBroker
-
getFlushed
Description copied from interface:OpenJPAStateManagerReturn a read-only mask of the indexes of all fields that have been flushed since they were last changed.- Specified by:
getFlushedin interfaceOpenJPAStateManager
-
getDirty
Description copied from interface:OpenJPAStateManagerReturn a read-only mask of the indexes of all dirty fields.- Specified by:
getDirtyin interfaceOpenJPAStateManager
-
toString
-