public class StateManagerImpl extends Object implements OpenJPAStateManager, Serializable
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.| Modifier and Type | Field and Description |
|---|---|
protected Object[] |
_fieldImpl |
protected BitSet |
_loaded |
protected Object |
_loadVersion |
protected ClassMetaData |
_meta |
protected PCState |
_state |
protected Object |
_version |
static int |
LOAD_ALL |
static int |
LOAD_FGS |
static int |
LOAD_SERIALIZE |
SET_ATTACH, SET_REMOTE, SET_USER| Modifier | Constructor and Description |
|---|---|
protected |
StateManagerImpl(Object id,
ClassMetaData meta,
BrokerImpl broker)
Constructor; supply id, type metadata, and owning persistence manager.
|
|
StateManagerImpl(StateManagerImpl sm)
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).
|
| Modifier and Type | Method and Description |
|---|---|
void |
accessingField(int field)
Field access callback.
|
(package private) void |
afterFlush(int reason)
Delegates to the current state.
|
(package private) void |
afterRefresh()
Perform state transitions after refresh.
|
(package private) void |
assertNotManagedObjectId(Object val)
Disallows setting an object id field to a managed instance.
|
boolean |
assignObjectId(boolean flush)
Ask the store manager to assign a permanent oid to this new instance.
|
(package private) boolean |
assignObjectId(boolean flush,
boolean preFlushing)
Ask store manager to assign our oid, optionally flushing and
optionally recaching on the new oid.
|
protected void |
beforeAccessField(int field)
Load the given field before access.
|
(package private) void |
beforeFlush(int reason,
OpCallbacks call)
Delegates to the current state.
|
(package private) void |
beforeRead(int field)
Notification that the object is about to be accessed.
|
boolean |
beforeRefresh(boolean refreshAll)
Prepare the instance for refresh
|
(package private) void |
cascadeDelete(OpCallbacks call)
Cascade deletes and dereference dependent fields.
|
(package private) void |
cascadePersist(OpCallbacks call)
Called after an instance is persisted by a user through the broker.
|
(package private) void |
clearFields()
Executes pre-clear callbacks, clears all managed fields, and calls the
setLoaded(boolean) method with a value of false. |
(package private) void |
clearSavedFields()
Notification that the state will not need to be rolled back
to that of the last call to
saveFields(boolean). |
(package private) void |
commit()
Delegates to the current state after checking the value
of the RetainState flag.
|
(package private) void |
delete()
Delegates to the current state.
|
void |
dirty(int field)
Mark the given field as dirty.
|
void |
dirty(String field)
Make named field dirty.
|
void |
dirtyCheck()
Checks whether or not
_pc is dirty. |
(package private) void |
eraseFlush()
Erase the fact that this instance has been flushed.
|
(package private) void |
evict()
Delegates to the current state.
|
Object |
fetch(int field)
Return the externalized value of the field with the given index as an
object.
|
boolean |
fetchBoolean(int field)
Return the external value of the given field.
|
boolean |
fetchBooleanField(int field)
Return the value of the given field.
|
byte |
fetchByte(int field)
Return the external value of the given field.
|
byte |
fetchByteField(int field)
Return the value of the given field.
|
char |
fetchChar(int field)
Return the external value of the given field.
|
char |
fetchCharField(int field)
Return the value of the given field.
|
double |
fetchDouble(int field)
Return the external value of the given field.
|
double |
fetchDoubleField(int field)
Return the value of the given field.
|
Object |
fetchField(int field,
boolean transitions)
Return the value of the field with the given index as an object.
|
float |
fetchFloat(int field)
Return the external value of the given field.
|
float |
fetchFloatField(int field)
Return the value of the given field.
|
Object |
fetchInitialField(int field)
Return the value of the field at the specified index as of the
beginning of the transaction.
|
int |
fetchInt(int field)
Return the external value of the given field.
|
int |
fetchIntField(int field)
Return the value of the given field.
|
long |
fetchLong(int field)
Return the external value of the given field.
|
long |
fetchLongField(int field)
Return the value of the given field.
|
Object |
fetchObject(int field)
Return the external value of the given field.
|
Object |
fetchObjectField(int field)
Fetch an object field by index.
|
Object |
fetchObjectId()
Return the object id, assigning it if necessary.
|
short |
fetchShort(int field)
Return the external value of the given field.
|
short |
fetchShortField(int field)
Return the value of the given field.
|
String |
fetchString(int field)
Return the external value of the given field.
|
String |
fetchStringField(int field)
Return the value of the given field.
|
(package private) void |
gatherCascadeRefresh(OpCallbacks call)
Gather relations reachable from values using
ValueMetaData.CASCADE_IMMEDIATE. |
(package private) BrokerImpl |
getBroker()
Managing broker.
|
StoreContext |
getContext()
Return the managing context.
|
boolean |
getDereferencedEmbedDependent() |
BitSet |
getDirty()
Return a read-only mask of the indexes of all dirty fields.
|
protected Object |
getExtraFieldData(int field,
boolean isLoaded)
Return the data from the proper index of the extra field data array.
|
BitSet |
getFlushed()
Return a read-only mask of the indexes of all fields that have been
flushed since they were last changed.
|
Object |
getGenericContext()
Persistence context.
|
Object |
getId()
Return the identifier for this state manager.
|
Object |
getImplData()
An object that concrete back ends can associate with each instance.
|
Object |
getImplData(int field)
Field-level impl data.
|
Object |
getIntermediate(int field)
Use intermediate field data to store intermediate information that
might be available before the field is fully loaded.
|
BitSet |
getLoaded()
Return a read-only mask of the indexes of all loaded fields.
|
(package private) Object |
getLoadVersion() |
Object |
getLock()
The lock object set for this instance.
|
Object |
getManagedInstance()
Return the managed instance.
|
List<FieldMetaData> |
getMappedByIdFields() |
ClassMetaData |
getMetaData()
Get the metadata for this instance.
|
Object |
getObjectId()
Return the instance's object id.
|
StateManagerImpl |
getObjectIdOwner() |
OpenJPAStateManager |
getOwner()
Return the owning state if this is an embedded instance.
|
int |
getOwnerIndex()
Return the owning value's field index
|
Object |
getPCPrimaryKey(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.
|
PCState |
getPCState()
Return the state that this object is in.
|
PersistenceCapable |
getPersistenceCapable()
Return the
PersistenceCapable instance that provides access to
the instance managed by this state manager. |
SaveFieldManager |
getSaveFieldManager() |
BitSet |
getUnloaded(FetchConfiguration fetch)
Return a mutable mask of the unloaded fields that need loading based
on the given fetch configuration.
|
Object |
getVersion()
Return the current version indicator for this instance.
|
void |
initialize(Class cls,
PCState state)
Initialize the state manager with a new instance of the given
persistence capable type and the proper lifecycle state.
|
protected void |
initialize(PersistenceCapable pc,
PCState state)
Initialize with the given instance and state.
|
boolean |
isDefaultValue(int field)
Return true if the given field has a default value.
|
boolean |
isDelayed(int field)
Some field types (collection proxies) support delayed loading.
|
boolean |
isDeleted()
Whether the instance is deleted in this transaction.
|
boolean |
isDetached()
Whether the instance is detached (i.e.
|
boolean |
isDirty()
Whether the instance has been modified in this transaction.
|
boolean |
isEmbedded()
Return true if this instance has an owner, meaning it is an embedded
value.
|
boolean |
isFlushed()
Return whether this object has been flushed to the datastore in this
transaction.
|
boolean |
isFlushedDirty()
Return whether this object has been flushed, then dirtied again.
|
boolean |
isImplDataCacheable()
Whether the instance-level impl data can be shared among instances
in different contexts if L2 caching is enabled.
|
boolean |
isImplDataCacheable(int field)
Whether the field's impl data is loaded and can be shared among
instances in different contexts if L2 caching is enabled.
|
boolean |
isIntercepting()
Whether or not data access in this instance is intercepted.
|
(package private) boolean |
isLoading()
Whether this state manager is in the middle of a load.
|
boolean |
isNew()
Whether the instance is newly-persisted in this transaction.
|
boolean |
isPendingTransactional() |
boolean |
isPersistent()
Whether the instance is persistent.
|
boolean |
isProvisional()
Return whether this object is provisionally persistent.
|
boolean |
isTransactional()
Whether the instance is transactional.
|
boolean |
isVersionCheckRequired()
Returns whether this instance needs a version check.
|
boolean |
isVersionUpdateRequired()
Returns whether this instance needs a version update.
|
void |
load(FetchConfiguration fetch)
Load fetch group fields.
|
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.
|
void |
loadDelayedField(int field)
Loads a delayed access field.
|
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.
|
(package private) boolean |
loadFields(BitSet fields,
FetchConfiguration fetch,
int lockLevel,
Object sdata)
Load the given field set from the data store into the instance.
|
protected void |
lock()
Lock the state manager if the multithreaded option is set.
|
Object |
newFieldProxy(int field)
Create a new hollow proxy instance for the given field.
|
Object |
newProxy(int field)
Create a new hollow proxy instance for the given field.
|
(package private) void |
nonprovisional(boolean logical,
OpCallbacks call)
Delegates to the current state.
|
(package private) void |
nontransactional()
Delegates to the current state.
|
(package private) void |
persist()
Delegates to the current state.
|
(package private) void |
preDelete()
Make callbacks for deletion.
|
(package private) void |
preFlush(boolean logical,
OpCallbacks call)
Get ready for a flush.
|
void |
providedBooleanField(PersistenceCapable pc,
int field,
boolean curVal)
Provide state callback.
|
void |
providedByteField(PersistenceCapable pc,
int field,
byte curVal)
Provide state callback.
|
void |
providedCharField(PersistenceCapable pc,
int field,
char curVal)
Provide state callback.
|
void |
providedDoubleField(PersistenceCapable pc,
int field,
double curVal)
Provide state callback.
|
void |
providedFloatField(PersistenceCapable pc,
int field,
float curVal)
Provide state callback.
|
void |
providedIntField(PersistenceCapable pc,
int field,
int curVal)
Provide state callback.
|
void |
providedLongField(PersistenceCapable pc,
int field,
long curVal)
Provide state callback.
|
void |
providedObjectField(PersistenceCapable pc,
int field,
Object curVal)
Provide state callback.
|
void |
providedShortField(PersistenceCapable pc,
int field,
short curVal)
Provide state callback.
|
void |
providedStringField(PersistenceCapable pc,
int field,
String curVal)
Provide state callback.
|
(package private) void |
provideField(PersistenceCapable pc,
FieldManager store,
int field)
Helper method to provide the given field number to the given
field manager.
|
void |
proxyDetachedDeserialized(int idx)
Proxy the given detached field after deserialization.
|
(package private) void |
proxyFields(boolean reset,
boolean replaceNull)
Replaces all second class object fields with fresh proxied instances
containing the same information as the originals.
|
(package private) void |
readLocked(int readLockLevel,
int writeLockLevel)
Notification that we've been read-locked.
|
(package private) PersistenceCapable |
readPC(ObjectInputStream in)
|
(package private) void |
release(boolean unproxy)
Delegates to the current state.
|
(package private) void |
release(boolean unproxy,
boolean force) |
void |
removed(int field,
Object removed,
boolean key)
Notification that an element has been removed from the given field.
|
boolean |
replaceBooleanField(PersistenceCapable pc,
int field)
Replace state callback.
|
byte |
replaceByteField(PersistenceCapable pc,
int field)
Replace state callback.
|
char |
replaceCharField(PersistenceCapable pc,
int field)
Replace state callback.
|
double |
replaceDoubleField(PersistenceCapable pc,
int field)
Replace state callback.
|
(package private) void |
replaceField(PersistenceCapable pc,
FieldManager load,
int field)
Helper method to replace the given field number to the given
field manager.
|
byte |
replaceFlags() |
float |
replaceFloatField(PersistenceCapable pc,
int field)
Replace state callback.
|
int |
replaceIntField(PersistenceCapable pc,
int field)
Replace state callback.
|
long |
replaceLongField(PersistenceCapable pc,
int field)
Replace state callback.
|
Object |
replaceObjectField(PersistenceCapable pc,
int field)
Replace state callback.
|
short |
replaceShortField(PersistenceCapable pc,
int field)
Replace state callback.
|
StateManager |
replaceStateManager(StateManager sm)
Change state manager.
|
String |
replaceStringField(PersistenceCapable pc,
int field)
Replace state callback.
|
boolean |
requiresFetch(FieldMetaData fmd) |
(package private) void |
restoreFields()
Rollback the state of the instance to the saved state from the
last call to
saveFields(boolean), or to default values if never saved. |
(package private) void |
rollback()
Delegates to the current state after checking the value
of the RetainState flag.
|
(package private) void |
rollbackToSavepoint(SavepointFieldManager savepoint)
Rollback state of the managed instance to the given savepoint.
|
static Timestamp |
roundTimestamp(Timestamp val,
int datePrecision) |
(package private) void |
saveFields(boolean immediate)
Record that we should save any fields that change from this point
forward.
|
boolean |
serializing()
Callback to prepare instance for serialization.
|
void |
setBroker(BrokerImpl ctx) |
(package private) void |
setCheckVersion(boolean versionCheck)
Set whether this instance requires a version check on the next flush.
|
void |
setDelayed(int field,
boolean delay)
Some field types (collection proxies) support delayed loading.
|
(package private) void |
setDereferencedDependent(boolean deref,
boolean notify)
Mark this object as a dereferenced dependent object.
|
(package private) void |
setDereferencedEmbedDependent(boolean deref) |
(package private) void |
setDirty(boolean val)
Records that all instance fields are/are not dirty,
and changes the flags of the instance accordingly.
|
Object |
setImplData(int field,
Object data)
Field-level impl data.
|
Object |
setImplData(Object data,
boolean cacheable)
An object that concrete back ends can associate with each instance.
|
void |
setIntermediate(int field,
Object data)
Use intermediate field data to store intermediate information that
might be available before the field is fully loaded.
|
(package private) void |
setLoaded(boolean val)
Records that all instance fields are/are not loaded.
|
(package private) void |
setLoading(boolean loading)
Whether this state manager is in the middle of a load initiated
by outside code; for any internal methods that cause loading, the
loading flag is set automatically.
|
void |
setLock(Object lock)
The lock object set for this instance.
|
void |
setNextVersion(Object version)
Set the next version indicator in the datastore pending a successful
flush.
|
void |
setObjectId(Object oid)
Set the object id for the managed instance.
|
void |
setOwner(Object oid) |
(package private) void |
setOwner(StateManagerImpl owner,
ValueMetaData ownerMeta)
Set the owning state and field if this is an embedded instance.
|
void |
setPc(PersistenceCapable pc) |
void |
setPostLoadCallback(boolean enabled)
Set to
false to prevent the postLoad method from
sending lifecycle callback events. |
void |
setRemote(int field,
Object value)
Set the given field to the given value.
|
void |
settingBooleanField(PersistenceCapable pc,
int field,
boolean curVal,
boolean newVal,
int set)
Setting state callback.
|
void |
settingByteField(PersistenceCapable pc,
int field,
byte curVal,
byte newVal,
int set)
Setting state callback.
|
void |
settingCharField(PersistenceCapable pc,
int field,
char curVal,
char newVal,
int set)
Setting state callback.
|
void |
settingDoubleField(PersistenceCapable pc,
int field,
double curVal,
double newVal,
int set)
Setting state callback.
|
void |
settingFloatField(PersistenceCapable pc,
int field,
float curVal,
float newVal,
int set)
Setting state callback.
|
void |
settingIntField(PersistenceCapable pc,
int field,
int curVal,
int newVal,
int set)
Setting state callback.
|
void |
settingLongField(PersistenceCapable pc,
int field,
long curVal,
long newVal,
int set)
Setting state callback.
|
void |
settingObjectField(PersistenceCapable pc,
int field,
Object curVal,
Object newVal,
int set)
Setting state callback.
|
void |
settingShortField(PersistenceCapable pc,
int field,
short curVal,
short newVal,
int set)
Setting state callback.
|
void |
settingStringField(PersistenceCapable pc,
int field,
String curVal,
String newVal,
int set)
Setting state callback.
|
(package private) void |
setUpdateVersion(boolean versionUpdate)
Set whether this instance requires a version update on the next flush.
|
void |
setVersion(Object version)
Set the version indicator for this instance, as loaded from the
data store.
|
void |
store(int field,
Object val)
Set the value of the field with the given index as from the external
object value.
|
void |
storeBoolean(int field,
boolean externalVal)
Set the given external value back into the given field.
|
void |
storeBooleanField(int field,
boolean curVal)
Set the value of the given field.
|
void |
storeByte(int field,
byte externalVal)
Set the given external value back into the given field.
|
void |
storeByteField(int field,
byte curVal)
Set the value of the given field.
|
void |
storeChar(int field,
char externalVal)
Set the given external value back into the given field.
|
void |
storeCharField(int field,
char curVal)
Set the value of the given field.
|
void |
storeDouble(int field,
double externalVal)
Set the given external value back into the given field.
|
void |
storeDoubleField(int field,
double curVal)
Set the value of the given field.
|
void |
storeField(int field,
Object val)
Set the value of the field with the given index as an object.
|
void |
storeFloat(int field,
float externalVal)
Set the given external value back into the given field.
|
void |
storeFloatField(int field,
float curVal)
Set the value of the given field.
|
void |
storeInt(int field,
int externalVal)
Set the given external value back into the given field.
|
void |
storeIntField(int field,
int curVal)
Set the value of the given field.
|
void |
storeLong(int field,
long externalVal)
Set the given external value back into the given field.
|
void |
storeLongField(int field,
long curVal)
Set the value of the given field.
|
void |
storeObject(int field,
Object externalVal)
Set the given external value back into the given field.
|
void |
storeObjectField(int field,
Object curVal)
Set the value of the given field.
|
void |
storeShort(int field,
short externalVal)
Set the given external value back into the given field.
|
void |
storeShortField(int field,
short curVal)
Set the value of the given field.
|
void |
storeString(int field,
String externalVal)
Set the given external value back into the given field.
|
void |
storeStringField(int field,
String curVal)
Set the value of the given field.
|
String |
toString() |
(package private) void |
transactional()
Delegates to the current state.
|
protected RuntimeException |
translate(RuntimeException re)
Translate the given exception based on the broker's implicit behavior.
|
protected void |
unlock()
Unlock the state manager.
|
(package private) void |
unproxyFields()
Unproxy all fields.
|
boolean |
writeDetached(ObjectOutput out)
Write detached state object and detached state manager to the
given stream.
|
(package private) void |
writePC(ObjectOutputStream oos,
PersistenceCapable pc)
Write
pc to oos, handling internal-form
serialization. |
public static final int LOAD_FGS
public static final int LOAD_ALL
public static final int LOAD_SERIALIZE
protected transient ClassMetaData _meta
protected BitSet _loaded
protected PCState _state
protected Object _version
protected Object _loadVersion
protected Object[] _fieldImpl
protected StateManagerImpl(Object id, ClassMetaData meta, BrokerImpl broker)
public StateManagerImpl(StateManagerImpl sm)
sm - A statemanager instance which will effectively be cloned.public StateManagerImpl(StateManagerImpl sm, PCState newState)
sm - A statemanager instance which will effectively be cloned.newState - The new state of the underlying persistence capable object.void setOwner(StateManagerImpl owner, ValueMetaData ownerMeta)
boolean isLoading()
void setLoading(boolean loading)
public void initialize(Class cls, PCState state)
OpenJPAStateManagerinitialize in interface OpenJPAStateManagercls - the type for which to create a new instancestate - the initial state to which to set the instanceprotected void initialize(PersistenceCapable pc, PCState state)
public boolean isIntercepting()
ClassMetaData.isIntercepting() in that it checks for
property access + subclassing in addition to the redefinition /
enhancement checks.public void load(FetchConfiguration fetch)
OpenJPAStateManagerload in interface OpenJPAStateManagerprotected boolean load(FetchConfiguration fetch, int loadMode, BitSet exclude, Object sdata, boolean forWrite)
public Object getManagedInstance()
OpenJPAStateManagergetManagedInstance in interface OpenJPAStateManagerpublic PersistenceCapable getPersistenceCapable()
OpenJPAStateManagerPersistenceCapable instance that provides access to
the instance managed by this state manager. May be a proxy around
the actual managed instance.getPersistenceCapable in interface OpenJPAStateManagerpublic ClassMetaData getMetaData()
OpenJPAStateManagergetMetaData in interface OpenJPAStateManagerpublic OpenJPAStateManager getOwner()
OpenJPAStateManagergetOwner in interface OpenJPAStateManagerpublic int getOwnerIndex()
OpenJPAStateManagergetOwnerIndex in interface OpenJPAStateManagerpublic void setOwner(Object oid)
public boolean isEmbedded()
OpenJPAStateManagerisEmbedded in interface OpenJPAStateManagerpublic boolean isFlushed()
OpenJPAStateManagerisFlushed in interface OpenJPAStateManagerpublic boolean isFlushedDirty()
OpenJPAStateManagerisFlushedDirty in interface OpenJPAStateManagerpublic BitSet getLoaded()
OpenJPAStateManagergetLoaded in interface OpenJPAStateManagerpublic BitSet getUnloaded(FetchConfiguration fetch)
OpenJPAStateManagergetUnloaded in interface OpenJPAStateManagerpublic StoreContext getContext()
OpenJPAStateManagergetContext in interface OpenJPAStateManagerBrokerImpl getBroker()
public Object getId()
OpenJPAStateManagerOpenJPAStateManager.getObjectId().getId in interface OpenJPAStateManagerpublic Object getObjectId()
OpenJPAStateManagergetObjectId in interface OpenJPAStateManagerpublic void setObjectId(Object oid)
OpenJPAStateManagerstoreXXXField
methods will automatically change the oid.setObjectId in interface OpenJPAStateManagerpublic StateManagerImpl getObjectIdOwner()
public boolean assignObjectId(boolean flush)
OpenJPAStateManagerassignObjectId in interface OpenJPAStateManagerflush - if true, flush if necessary to get a permanent oid; if
false, the oid may be left unassignedboolean assignObjectId(boolean flush,
boolean preFlushing)
public Object getLock()
OpenJPAStateManagergetLock in interface OpenJPAStateManagerpublic void setLock(Object lock)
OpenJPAStateManagersetLock in interface OpenJPAStateManagerpublic Object getVersion()
OpenJPAStateManagergetVersion in interface StateManagergetVersion in interface OpenJPAStateManagerpublic void setVersion(Object version)
OpenJPAStateManagerStoreManager when
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.setVersion in interface OpenJPAStateManagerObject getLoadVersion()
public void setNextVersion(Object version)
OpenJPAStateManagerStoreManager uses this method during flush.setNextVersion in interface OpenJPAStateManagerpublic PCState getPCState()
OpenJPAStateManagergetPCState in interface OpenJPAStateManagerpublic Object getImplData()
OpenJPAStateManagergetImplData in interface OpenJPAStateManagerpublic Object setImplData(Object data, boolean cacheable)
OpenJPAStateManagersetImplData in interface OpenJPAStateManagercacheable - whether the impl data can be shared among instances
in different contexts if L2 caching is enabledpublic boolean isImplDataCacheable()
OpenJPAStateManagerisImplDataCacheable in interface OpenJPAStateManagerpublic Object getImplData(int field)
OpenJPAStateManagergetImplData in interface OpenJPAStateManagerpublic Object setImplData(int field, Object data)
OpenJPAStateManagerFieldMetaData.usesImplData().setImplData in interface OpenJPAStateManagerpublic boolean isImplDataCacheable(int field)
OpenJPAStateManagerisImplDataCacheable in interface OpenJPAStateManagerpublic Object getIntermediate(int field)
OpenJPAStateManagergetIntermediate in interface OpenJPAStateManagerpublic void setIntermediate(int field,
Object data)
OpenJPAStateManagersetIntermediate in interface OpenJPAStateManagerprotected Object getExtraFieldData(int field, boolean isLoaded)
public Object fetch(int field)
OpenJPAStateManagerOpenJPAStateManager.fetchField(int, boolean).fetch in interface OpenJPAStateManagerpublic Object fetchField(int field, boolean transitions)
OpenJPAStateManagerfetchField in interface OpenJPAStateManagertransitions - if true, this method will cause state transitions
to occur as if the field were accessed normallypublic void store(int field,
Object val)
OpenJPAStateManagerOpenJPAStateManager.storeField(int, java.lang.Object).store in interface OpenJPAStateManagerpublic void storeField(int field,
Object val)
OpenJPAStateManagerstoreField in interface OpenJPAStateManagerpublic void dirtyCheck()
Checks whether or not _pc is dirty. In the cases where
field tracking is not happening (see below), this method will do a
state comparison to find whether _pc is 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.
public Object fetchInitialField(int field)
OpenJPAStateManagerfetchInitialField in interface OpenJPAStateManagerpublic void setRemote(int field,
Object value)
OpenJPAStateManagersetRemote in interface OpenJPAStateManagervoid beforeRead(int field)
field - the field number being read, or -1 if not a single
field readvoid beforeFlush(int reason,
OpCallbacks call)
void afterFlush(int reason)
void commit()
void rollback()
void rollbackToSavepoint(SavepointFieldManager savepoint)
void persist()
void delete()
void nontransactional()
void transactional()
void nonprovisional(boolean logical,
OpCallbacks call)
void release(boolean unproxy)
void release(boolean unproxy,
boolean force)
void evict()
void gatherCascadeRefresh(OpCallbacks call)
ValueMetaData.CASCADE_IMMEDIATE.public boolean beforeRefresh(boolean refreshAll)
OpenJPAStateManagerbeforeRefresh in interface OpenJPAStateManagerrefreshAll - true if this instance is one of a collection of
objects being refreshedBroker.refresh(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)void afterRefresh()
beforeRefresh(boolean) returns true.void setDereferencedDependent(boolean deref,
boolean notify)
void setDereferencedEmbedDependent(boolean deref)
public boolean getDereferencedEmbedDependent()
void readLocked(int readLockLevel,
int writeLockLevel)
public boolean serializing()
StateManagerserializing in interface StateManagerpublic boolean writeDetached(ObjectOutput out) throws IOException
StateManagerwriteDetached in interface StateManagerIOExceptionpublic void proxyDetachedDeserialized(int idx)
StateManagerproxyDetachedDeserialized in interface StateManagerpublic boolean isTransactional()
StateManagerisTransactional in interface StateManagerpublic boolean isPendingTransactional()
public boolean isProvisional()
OpenJPAStateManagerisProvisional in interface OpenJPAStateManagerpublic boolean isPersistent()
StateManagerisPersistent in interface StateManagerpublic boolean isNew()
StateManagerisNew in interface StateManagerpublic boolean isDeleted()
StateManagerisDeleted in interface StateManagerpublic boolean isDirty()
StateManagerisDirty in interface StateManagerpublic boolean isDetached()
StateManagerisDetached in interface StateManagerpublic Object getGenericContext()
StateManagergetGenericContext in interface StateManagerpublic Object fetchObjectId()
StateManagerfetchObjectId in interface StateManagerpublic Object getPCPrimaryKey(Object oid, int field)
StateManagergetPCPrimaryKey in interface StateManagerpublic byte replaceFlags()
public StateManager replaceStateManager(StateManager sm)
StateManagerreplaceStateManager in interface StateManagerpublic void accessingField(int field)
StateManageraccessingField in interface StateManagerpublic boolean isDelayed(int field)
OpenJPAStateManagerisDelayed in interface OpenJPAStateManagerpublic void setDelayed(int field,
boolean delay)
OpenJPAStateManagersetDelayed in interface OpenJPAStateManagerpublic void loadDelayedField(int field)
loadDelayedField in interface OpenJPAStateManagerprotected void beforeAccessField(int field)
public void dirty(String field)
StateManagerdirty in interface StateManagerpublic void dirty(int field)
OpenJPAStateManagerdirty in interface OpenJPAStateManagerpublic void removed(int field,
Object removed,
boolean key)
OpenJPAStateManagerremoved in interface OpenJPAStateManagerpublic Object newProxy(int field)
OpenJPAStateManagerProxy. In all other cases,
this method delegates to the system
ProxyManager
with 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. Calling OpenJPAStateManager.storeField(int, java.lang.Object) or OpenJPAStateManager.store(int, java.lang.Object)
will set the proxy's owner automatically.newProxy in interface OpenJPAStateManagerpublic Object newFieldProxy(int field)
OpenJPAStateManagerOpenJPAStateManager.newProxy(int) in that it returns a proxy for the
field's declared type, not its externalized type.newFieldProxy in interface OpenJPAStateManagerOpenJPAStateManager.newProxy(int)public boolean isDefaultValue(int field)
OpenJPAStateManagerisDefaultValue in interface OpenJPAStateManagerpublic void settingBooleanField(PersistenceCapable pc, int field, boolean curVal, boolean newVal, int set)
StateManagersettingBooleanField in interface StateManagerpublic void settingByteField(PersistenceCapable pc, int field, byte curVal, byte newVal, int set)
StateManagersettingByteField in interface StateManagerpublic void settingCharField(PersistenceCapable pc, int field, char curVal, char newVal, int set)
StateManagersettingCharField in interface StateManagerpublic void settingDoubleField(PersistenceCapable pc, int field, double curVal, double newVal, int set)
StateManagersettingDoubleField in interface StateManagerpublic void settingFloatField(PersistenceCapable pc, int field, float curVal, float newVal, int set)
StateManagersettingFloatField in interface StateManagerpublic void settingIntField(PersistenceCapable pc, int field, int curVal, int newVal, int set)
StateManagersettingIntField in interface StateManagerpublic void settingLongField(PersistenceCapable pc, int field, long curVal, long newVal, int set)
StateManagersettingLongField in interface StateManagerpublic void settingObjectField(PersistenceCapable pc, int field, Object curVal, Object newVal, int set)
StateManagersettingObjectField in interface StateManagerpublic void settingShortField(PersistenceCapable pc, int field, short curVal, short newVal, int set)
StateManagersettingShortField in interface StateManagerpublic void settingStringField(PersistenceCapable pc, int field, String curVal, String newVal, int set)
StateManagersettingStringField in interface StateManagervoid assertNotManagedObjectId(Object val)
public void providedBooleanField(PersistenceCapable pc, int field, boolean curVal)
StateManagerprovidedBooleanField in interface StateManagerpublic void providedByteField(PersistenceCapable pc, int field, byte curVal)
StateManagerprovidedByteField in interface StateManagerpublic void providedCharField(PersistenceCapable pc, int field, char curVal)
StateManagerprovidedCharField in interface StateManagerpublic void providedDoubleField(PersistenceCapable pc, int field, double curVal)
StateManagerprovidedDoubleField in interface StateManagerpublic void providedFloatField(PersistenceCapable pc, int field, float curVal)
StateManagerprovidedFloatField in interface StateManagerpublic void providedIntField(PersistenceCapable pc, int field, int curVal)
StateManagerprovidedIntField in interface StateManagerpublic void providedLongField(PersistenceCapable pc, int field, long curVal)
StateManagerprovidedLongField in interface StateManagerpublic void providedObjectField(PersistenceCapable pc, int field, Object curVal)
StateManagerprovidedObjectField in interface StateManagerpublic void providedShortField(PersistenceCapable pc, int field, short curVal)
StateManagerprovidedShortField in interface StateManagerpublic void providedStringField(PersistenceCapable pc, int field, String curVal)
StateManagerprovidedStringField in interface StateManagerpublic boolean replaceBooleanField(PersistenceCapable pc, int field)
StateManagerreplaceBooleanField in interface StateManagerpublic byte replaceByteField(PersistenceCapable pc, int field)
StateManagerreplaceByteField in interface StateManagerpublic char replaceCharField(PersistenceCapable pc, int field)
StateManagerreplaceCharField in interface StateManagerpublic double replaceDoubleField(PersistenceCapable pc, int field)
StateManagerreplaceDoubleField in interface StateManagerpublic float replaceFloatField(PersistenceCapable pc, int field)
StateManagerreplaceFloatField in interface StateManagerpublic int replaceIntField(PersistenceCapable pc, int field)
StateManagerreplaceIntField in interface StateManagerpublic long replaceLongField(PersistenceCapable pc, int field)
StateManagerreplaceLongField in interface StateManagerpublic Object replaceObjectField(PersistenceCapable pc, int field)
StateManagerreplaceObjectField in interface StateManagerpublic short replaceShortField(PersistenceCapable pc, int field)
StateManagerreplaceShortField in interface StateManagerpublic String replaceStringField(PersistenceCapable pc, int field)
StateManagerreplaceStringField in interface StateManagerpublic boolean fetchBoolean(int field)
OpenJPAStateManagerfetchBoolean in interface OpenJPAStateManagerpublic boolean fetchBooleanField(int field)
FieldSupplierfetchBooleanField in interface FieldSupplierpublic byte fetchByte(int field)
OpenJPAStateManagerfetchByte in interface OpenJPAStateManagerpublic byte fetchByteField(int field)
FieldSupplierfetchByteField in interface FieldSupplierpublic char fetchChar(int field)
OpenJPAStateManagerfetchChar in interface OpenJPAStateManagerpublic char fetchCharField(int field)
FieldSupplierfetchCharField in interface FieldSupplierpublic double fetchDouble(int field)
OpenJPAStateManagerfetchDouble in interface OpenJPAStateManagerpublic double fetchDoubleField(int field)
FieldSupplierfetchDoubleField in interface FieldSupplierpublic float fetchFloat(int field)
OpenJPAStateManagerfetchFloat in interface OpenJPAStateManagerpublic float fetchFloatField(int field)
FieldSupplierfetchFloatField in interface FieldSupplierpublic int fetchInt(int field)
OpenJPAStateManagerfetchInt in interface OpenJPAStateManagerpublic int fetchIntField(int field)
FieldSupplierfetchIntField in interface FieldSupplierpublic long fetchLong(int field)
OpenJPAStateManagerfetchLong in interface OpenJPAStateManagerpublic long fetchLongField(int field)
FieldSupplierfetchLongField in interface FieldSupplierpublic Object fetchObject(int field)
OpenJPAStateManagerfetchObject in interface OpenJPAStateManagerpublic Object fetchObjectField(int field)
OpenJPAStateManagerfetchObjectField in interface FieldSupplierfetchObjectField in interface OpenJPAStateManagerpublic short fetchShort(int field)
OpenJPAStateManagerfetchShort in interface OpenJPAStateManagerpublic short fetchShortField(int field)
FieldSupplierfetchShortField in interface FieldSupplierpublic String fetchString(int field)
OpenJPAStateManagerfetchString in interface OpenJPAStateManagerpublic String fetchStringField(int field)
FieldSupplierfetchStringField in interface FieldSupplierpublic void storeBoolean(int field,
boolean externalVal)
OpenJPAStateManagerstoreBoolean in interface OpenJPAStateManagerpublic void storeBooleanField(int field,
boolean curVal)
FieldConsumerstoreBooleanField in interface FieldConsumerpublic void storeByte(int field,
byte externalVal)
OpenJPAStateManagerstoreByte in interface OpenJPAStateManagerpublic void storeByteField(int field,
byte curVal)
FieldConsumerstoreByteField in interface FieldConsumerpublic void storeChar(int field,
char externalVal)
OpenJPAStateManagerstoreChar in interface OpenJPAStateManagerpublic void storeCharField(int field,
char curVal)
FieldConsumerstoreCharField in interface FieldConsumerpublic void storeDouble(int field,
double externalVal)
OpenJPAStateManagerstoreDouble in interface OpenJPAStateManagerpublic void storeDoubleField(int field,
double curVal)
FieldConsumerstoreDoubleField in interface FieldConsumerpublic void storeFloat(int field,
float externalVal)
OpenJPAStateManagerstoreFloat in interface OpenJPAStateManagerpublic void storeFloatField(int field,
float curVal)
FieldConsumerstoreFloatField in interface FieldConsumerpublic void storeInt(int field,
int externalVal)
OpenJPAStateManagerstoreInt in interface OpenJPAStateManagerpublic void storeIntField(int field,
int curVal)
FieldConsumerstoreIntField in interface FieldConsumerpublic void storeLong(int field,
long externalVal)
OpenJPAStateManagerstoreLong in interface OpenJPAStateManagerpublic void storeLongField(int field,
long curVal)
FieldConsumerstoreLongField in interface FieldConsumerpublic void storeObject(int field,
Object externalVal)
OpenJPAStateManagerstoreObject in interface OpenJPAStateManagerpublic void storeObjectField(int field,
Object curVal)
FieldConsumerstoreObjectField in interface FieldConsumerpublic void storeShort(int field,
short externalVal)
OpenJPAStateManagerstoreShort in interface OpenJPAStateManagerpublic void storeShortField(int field,
short curVal)
FieldConsumerstoreShortField in interface FieldConsumerpublic void storeString(int field,
String externalVal)
OpenJPAStateManagerstoreString in interface OpenJPAStateManagerpublic void storeStringField(int field,
String curVal)
FieldConsumerstoreStringField in interface FieldConsumervoid eraseFlush()
void setLoaded(boolean val)
void setDirty(boolean val)
void clearFields()
setLoaded(boolean) method with a value of false. Primary key fields
are not cleared.void saveFields(boolean immediate)
void clearSavedFields()
saveFields(boolean).public SaveFieldManager getSaveFieldManager()
void restoreFields()
saveFields(boolean), or to default values if never saved.void proxyFields(boolean reset,
boolean replaceNull)
AutoDetach.DETACH_NONE option is set.void unproxyFields()
void preFlush(boolean logical,
OpCallbacks call)
void preDelete()
void cascadeDelete(OpCallbacks call)
void cascadePersist(OpCallbacks call)
ValueMetaData.CASCADE_IMMEDIATE.boolean loadFields(BitSet fields, FetchConfiguration fetch, int lockLevel, Object sdata)
protected void loadField(int field,
int lockLevel,
boolean forWrite,
boolean fgs)
void provideField(PersistenceCapable pc, FieldManager store, int field)
void replaceField(PersistenceCapable pc, FieldManager load, int field)
public void setPostLoadCallback(boolean enabled)
false to prevent the postLoad method from
sending lifecycle callback events.public boolean isVersionCheckRequired()
isVersionCheckRequired in interface OpenJPAStateManagervoid setCheckVersion(boolean versionCheck)
public boolean isVersionUpdateRequired()
isVersionUpdateRequired in interface OpenJPAStateManagervoid setUpdateVersion(boolean versionUpdate)
protected RuntimeException translate(RuntimeException re)
protected void lock()
protected void unlock()
void writePC(ObjectOutputStream oos, PersistenceCapable pc) throws IOException
pc to oos, handling internal-form
serialization. pc must be of the same type that this
state manager manages.IOExceptionPersistenceCapable readPC(ObjectInputStream in) throws ClassNotFoundException, IOException
ClassNotFoundExceptionIOExceptionpublic List<FieldMetaData> getMappedByIdFields()
public boolean requiresFetch(FieldMetaData fmd)
public void setPc(PersistenceCapable pc)
public void setBroker(BrokerImpl ctx)
public BitSet getFlushed()
OpenJPAStateManagergetFlushed in interface OpenJPAStateManagerpublic BitSet getDirty()
OpenJPAStateManagergetDirty in interface OpenJPAStateManagerCopyright © 2006–2015 Apache Software Foundation. All rights reserved.