Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.openjpa.kernel
Class StateManagerImpl

    java.lang.Object
      org.apache.openjpa.kernel.StateManagerImpl

All Implemented Interfaces:
  Serializable, FieldConsumer, FieldManager, FieldSupplier, StateManager, OpenJPAStateManager

    public class StateManagerImpl

extends Object
implements OpenJPAStateManager, Serializable

Implementation of the `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:
  Serialized Form

Field Summary
`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`

Fields inherited from interface org.apache.openjpa.kernel.OpenJPAStateManager
`SET_ATTACH, SET_REMOTE, SET_USER`

Constructor Summary
`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).

Method Summary
`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)` Converts the deserialized `o` to a `PersistenceCapable` instance appropriate for storing in `_pc`.
`(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.
`(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.
`(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.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### LOAD_FGS

    public static final int LOAD_FGS

See Also:
  Constant Field Values

### LOAD_ALL

    public static final int LOAD_ALL

See Also:
  Constant Field Values

### LOAD_SERIALIZE

    public static final int LOAD_SERIALIZE

See Also:
  Constant Field Values

### _meta

    protected transient ClassMetaData _meta

### _loaded

    protected BitSet _loaded

### _state

    protected PCState _state

### _version

    protected Object _version

### _loadVersion

    protected Object _loadVersion

### _fieldImpl

    protected Object[] _fieldImpl

Constructor Detail

### StateManagerImpl

    protected StateManagerImpl(Object id,
                               ClassMetaData meta,
                               BrokerImpl broker)

  Constructor; supply id, type metadata, and owning persistence manager.

### StateManagerImpl

    public StateManagerImpl(StateManagerImpl sm)

  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

    public StateManagerImpl(StateManagerImpl sm,
                            PCState newState)

  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 Detail

### setOwner

    void setOwner(StateManagerImpl owner,
                  ValueMetaData ownerMeta)

  Set the owning state and field if this is an embedded instance.

### isLoading

    boolean isLoading()

  Whether this state manager is in the middle of a load.

### setLoading

    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.

### initialize

    public void initialize(Class cls,
                           PCState state)

  Description copied from interface: `OpenJPAStateManager`
  Initialize 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:
    `initialize` in interface `OpenJPAStateManager`
  Parameters:
    `cls` - the type for which to create a new instance
    `state` - the initial state to which to set the instance

### initialize

    protected void initialize(PersistenceCapable pc,
                              PCState state)

  Initialize with the given instance and state.

### isIntercepting

    public boolean isIntercepting()

  Whether or not data access in this instance is intercepted. This differs from `ClassMetaData.isIntercepting()` in that it checks for property access + subclassing in addition to the redefinition / enhancement checks.

  Since:
    1.0.0

### load

    public void load(FetchConfiguration fetch)

  Description copied from interface: `OpenJPAStateManager`
  Load fetch group fields.

  Specified by:
    `load` in interface `OpenJPAStateManager`

### 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

    public Object getManagedInstance()

  Description copied from interface: `OpenJPAStateManager`
  Return the managed instance.

  Specified by:
    `getManagedInstance` in interface `OpenJPAStateManager`

### getPersistenceCapable

    public PersistenceCapable getPersistenceCapable()

  Description copied from interface: `OpenJPAStateManager`
  Return the `PersistenceCapable` instance that provides access to the instance managed by this state manager. May be a proxy around the actual managed instance.

  Specified by:
    `getPersistenceCapable` in interface `OpenJPAStateManager`

### getMetaData

    public ClassMetaData getMetaData()

  Description copied from interface: `OpenJPAStateManager`
  Get the metadata for this instance.

  Specified by:
    `getMetaData` in interface `OpenJPAStateManager`

### getOwner

    public OpenJPAStateManager getOwner()

  Description copied from interface: `OpenJPAStateManager`
  Return the owning state if this is an embedded instance.

  Specified by:
    `getOwner` in interface `OpenJPAStateManager`

### getOwnerIndex

    public int getOwnerIndex()

  Description copied from interface: `OpenJPAStateManager`
  Return the owning value's field index

  Specified by:
    `getOwnerIndex` in interface `OpenJPAStateManager`

### setOwner

    public void setOwner(Object oid)

### isEmbedded

    public boolean isEmbedded()

  Description copied from interface: `OpenJPAStateManager`
  Return true if this instance has an owner, meaning it is an embedded value.

  Specified by:
    `isEmbedded` in interface `OpenJPAStateManager`

### isFlushed

    public boolean isFlushed()

  Description copied from interface: `OpenJPAStateManager`
  Return whether this object has been flushed to the datastore in this transaction.

  Specified by:
    `isFlushed` in interface `OpenJPAStateManager`

### isFlushedDirty

    public boolean isFlushedDirty()

  Description copied from interface: `OpenJPAStateManager`
  Return whether this object has been flushed, then dirtied again.

  Specified by:
    `isFlushedDirty` in interface `OpenJPAStateManager`

### getLoaded

    public BitSet getLoaded()

  Description copied from interface: `OpenJPAStateManager`
  Return a read-only mask of the indexes of all loaded fields.

  Specified by:
    `getLoaded` in interface `OpenJPAStateManager`

### getUnloaded

    public BitSet getUnloaded(FetchConfiguration fetch)

  Description copied from interface: `OpenJPAStateManager`
  Return 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:
    `getUnloaded` in interface `OpenJPAStateManager`

### getContext

    public StoreContext getContext()

  Description copied from interface: `OpenJPAStateManager`
  Return the managing context.

  Specified by:
    `getContext` in interface `OpenJPAStateManager`

### getBroker

    BrokerImpl getBroker()

  Managing broker.

### getId

    public Object getId()

  Description copied from interface: `OpenJPAStateManager`
  Return 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 as `OpenJPAStateManager.getObjectId()`.

  Specified by:
    `getId` in interface `OpenJPAStateManager`

### getObjectId

    public Object getObjectId()

  Description copied from interface: `OpenJPAStateManager`
  Return 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:
    `getObjectId` in interface `OpenJPAStateManager`

### setObjectId

    public void setObjectId(Object oid)

  Description copied from interface: `OpenJPAStateManager`
  Set 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 the `storeXXXField` methods will automatically change the oid.

  Specified by:
    `setObjectId` in interface `OpenJPAStateManager`

### getObjectIdOwner

    public StateManagerImpl getObjectIdOwner()

### assignObjectId

    public boolean assignObjectId(boolean flush)

  Description copied from interface: `OpenJPAStateManager`
  Ask the store manager to assign a permanent oid to this new instance.

  Specified by:
    `assignObjectId` in interface `OpenJPAStateManager`
  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

### assignObjectId

    boolean assignObjectId(boolean flush,
                           boolean preFlushing)

  Ask store manager to assign our oid, optionally flushing and optionally recaching on the new oid.

### getLock

    public Object getLock()

  Description copied from interface: `OpenJPAStateManager`
  The lock object set for this instance. This object is generally managed by the system lock manager.

  Specified by:
    `getLock` in interface `OpenJPAStateManager`

### setLock

    public void setLock(Object lock)

  Description copied from interface: `OpenJPAStateManager`
  The lock object set for this instance. This object is generally managed by the system lock manager.

  Specified by:
    `setLock` in interface `OpenJPAStateManager`

### getVersion

    public Object getVersion()

  Description copied from interface: `OpenJPAStateManager`
  Return the current version indicator for this instance.

  Specified by:
    `getVersion` in interface `StateManager`
  Specified by:
    `getVersion` in interface `OpenJPAStateManager`

### setVersion

    public void setVersion(Object version)

  Description copied from interface: `OpenJPAStateManager`
  Set the version indicator for this instance, as loaded from the data store. This method is used by the `StoreManager` 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.

  Specified by:
    `setVersion` in interface `OpenJPAStateManager`

### getLoadVersion

    Object getLoadVersion()

### setNextVersion

    public void setNextVersion(Object version)

  Description copied from interface: `OpenJPAStateManager`
  Set the next version indicator in the datastore pending a successful flush. The `StoreManager` uses this method during flush.

  Specified by:
    `setNextVersion` in interface `OpenJPAStateManager`

### getPCState

    public PCState getPCState()

  Description copied from interface: `OpenJPAStateManager`
  Return the state that this object is in.

  Specified by:
    `getPCState` in interface `OpenJPAStateManager`

### getImplData

    public Object getImplData()

  Description copied from interface: `OpenJPAStateManager`
  An 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:
    `getImplData` in interface `OpenJPAStateManager`

### setImplData

    public Object setImplData(Object data,
                              boolean cacheable)

  Description copied from interface: `OpenJPAStateManager`
  An 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:
    `setImplData` in interface `OpenJPAStateManager`
    `cacheable` - 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: `OpenJPAStateManager`
  Whether the instance-level impl data can be shared among instances in different contexts if L2 caching is enabled.

  Specified by:
    `isImplDataCacheable` in interface `OpenJPAStateManager`

### getImplData

    public Object getImplData(int field)

  Description copied from interface: `OpenJPAStateManager`
  Field-level impl data. Field-level data only applies to loaded fields, and is cleared when the field is cleared.

  Specified by:
    `getImplData` in interface `OpenJPAStateManager`

### setImplData

    public Object setImplData(int field,
                              Object data)

  Description copied from interface: `OpenJPAStateManager`
  Field-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 to `FieldMetaData.usesImplData()`.

  Specified by:
    `setImplData` in interface `OpenJPAStateManager`
  Returns:
    the previous impl data value, if any

### isImplDataCacheable

    public boolean isImplDataCacheable(int field)

  Description copied from interface: `OpenJPAStateManager`
  Whether the field's impl data is loaded and can be shared among instances in different contexts if L2 caching is enabled.

  Specified by:
    `isImplDataCacheable` in interface `OpenJPAStateManager`

### getIntermediate

    public Object getIntermediate(int field)

  Description copied from interface: `OpenJPAStateManager`
  Use 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:
    `getIntermediate` in interface `OpenJPAStateManager`

### setIntermediate

    public void setIntermediate(int field,
                                Object data)

  Description copied from interface: `OpenJPAStateManager`
  Use 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:
    `setIntermediate` in interface `OpenJPAStateManager`

### getExtraFieldData

    protected Object getExtraFieldData(int field,
                                       boolean isLoaded)

  Return the data from the proper index of the extra field data array.

### fetch

    public Object fetch(int field)

  Description copied from interface: `OpenJPAStateManager`
  Return the externalized value of the field with the given index as an object. If there is no externalizer, this is equivalent to `OpenJPAStateManager.fetchField(int, boolean)`.

  Specified by:
    `fetch` in interface `OpenJPAStateManager`

### fetchField

    public Object fetchField(int field,
                             boolean transitions)

  Description copied from interface: `OpenJPAStateManager`
  Return the value of the field with the given index as an object.

  Specified by:
    `fetchField` in interface `OpenJPAStateManager`
    `transitions` - if true, this method will cause state transitions to occur as if the field were accessed normally

### store

    public void store(int field,
                      Object val)

  Description copied from interface: `OpenJPAStateManager`
  Set the value of the field with the given index as from the external object value. If there is no externalizer, this is equivalent to `OpenJPAStateManager.storeField(int, java.lang.Object)`.

  Specified by:
    `store` in interface `OpenJPAStateManager`

### storeField

    public void storeField(int field,
                           Object val)

  Description copied from interface: `OpenJPAStateManager`
  Set the value of the field with the given index as an object.

  Specified by:
    `storeField` in interface `OpenJPAStateManager`

### dirtyCheck

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

  Since:
    1.0.0

### fetchInitialField

    public Object fetchInitialField(int field)

  Description copied from interface: `OpenJPAStateManager`
  Return the value of the field at the specified index as of the beginning of the transaction.

  Specified by:
    `fetchInitialField` in interface `OpenJPAStateManager`

### setRemote

    public void setRemote(int field,
                          Object value)

  Description copied from interface: `OpenJPAStateManager`
  Set 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:
    `setRemote` in interface `OpenJPAStateManager`

### beforeRead

    void beforeRead(int field)

  Notification that the object is about to be accessed.

  Parameters:
    `field` - the field number being read, or -1 if not a single field read

### beforeFlush

    void beforeFlush(int reason,
                     OpCallbacks call)

  Delegates to the current state.

  See Also:
    `PCState.beforeFlush(org.apache.openjpa.kernel.StateManagerImpl, boolean, org.apache.openjpa.kernel.OpCallbacks)`

### afterFlush

    void afterFlush(int reason)

  Delegates to the current state.

  See Also:
    `PCState.flush(org.apache.openjpa.kernel.StateManagerImpl)`

### commit

    void commit()

  Delegates to the current state after checking the value of the RetainState flag.

  See Also:
    `PCState.commit(org.apache.openjpa.kernel.StateManagerImpl)`, `PCState.commitRetain(org.apache.openjpa.kernel.StateManagerImpl)`

### rollback

    void rollback()

  Delegates to the current state after checking the value of the RetainState flag.

  See Also:
    `PCState.rollback(org.apache.openjpa.kernel.StateManagerImpl)`, `PCState.rollbackRestore(org.apache.openjpa.kernel.StateManagerImpl)`

### rollbackToSavepoint

    void rollbackToSavepoint(SavepointFieldManager savepoint)

  Rollback state of the managed instance to the given savepoint.

### persist

    void persist()

  Delegates to the current state.

  See Also:
    `PCState.persist(org.apache.openjpa.kernel.StateManagerImpl)`, `Broker.persist(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)`

### delete

    void delete()

  Delegates to the current state.

  See Also:
    `PCState.delete(org.apache.openjpa.kernel.StateManagerImpl)`, `Broker.delete(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)`

### nontransactional

    void nontransactional()

  Delegates to the current state.

  See Also:
    `PCState.nontransactional(org.apache.openjpa.kernel.StateManagerImpl)`, `StoreContext.nontransactional(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)`

### transactional

    void transactional()

  Delegates to the current state.

  See Also:
    `PCState.transactional(org.apache.openjpa.kernel.StateManagerImpl)`, `StoreContext.transactional(java.lang.Object, boolean, org.apache.openjpa.kernel.OpCallbacks)`

### nonprovisional

    void nonprovisional(boolean logical,
                        OpCallbacks call)

  Delegates to the current state.

  See Also:
    `PCState.nonprovisional(org.apache.openjpa.kernel.StateManagerImpl, boolean, org.apache.openjpa.kernel.OpCallbacks)`

### release

    void release(boolean unproxy)

  Delegates to the current state.

  See Also:
    `PCState.release(org.apache.openjpa.kernel.StateManagerImpl)`, `Broker.release(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)`

### release

    void release(boolean unproxy,
                 boolean force)

### evict

    void evict()

  Delegates to the current state.

  See Also:
    `PCState.evict(org.apache.openjpa.kernel.StateManagerImpl)`, `Broker.evict(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)`

### gatherCascadeRefresh

    void gatherCascadeRefresh(OpCallbacks call)

  Gather relations reachable from values using `ValueMetaData.CASCADE_IMMEDIATE`.

### beforeRefresh

    public boolean beforeRefresh(boolean refreshAll)

  Description copied from interface: `OpenJPAStateManager`
  Prepare the instance for refresh

  Specified by:
    `beforeRefresh` in interface `OpenJPAStateManager`
  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:
    `Broker.refresh(java.lang.Object, org.apache.openjpa.kernel.OpCallbacks)`

### afterRefresh

    void afterRefresh()

  Perform state transitions after refresh. This method is only called if `beforeRefresh(boolean)` returns true.

### setDereferencedDependent

    void setDereferencedDependent(boolean deref,
                                  boolean notify)

  Mark this object as a dereferenced dependent object.

### setDereferencedEmbedDependent

    void setDereferencedEmbedDependent(boolean deref)

### getDereferencedEmbedDependent

    public boolean getDereferencedEmbedDependent()

### readLocked

    void readLocked(int readLockLevel,
                    int writeLockLevel)

  Notification that we've been read-locked. Pass in the level at which we were locked and the level at which we should write lock ourselves on dirty.

### serializing

    public boolean serializing()

  Description copied from interface: `StateManager`
  Callback to prepare instance for serialization.

  Specified by:
    `serializing` in interface `StateManager`
  Returns:
    whether or not unloaded fields should be closed.

### writeDetached

    public boolean writeDetached(ObjectOutput out)
                          throws IOException

  Description copied from interface: `StateManager`
  Write detached state object and detached state manager to the given stream.

  Specified by:
    `writeDetached` in interface `StateManager`
  Returns:
    true if managed fields also written to stream
  Throws:
    `IOException`

### proxyDetachedDeserialized

    public void proxyDetachedDeserialized(int idx)

  Description copied from interface: `StateManager`
  Proxy the given detached field after deserialization.

  Specified by:
    `proxyDetachedDeserialized` in interface `StateManager`

### isTransactional

    public boolean isTransactional()

  Description copied from interface: `StateManager`
  Whether the instance is transactional.

  Specified by:
    `isTransactional` in interface `StateManager`

### isPendingTransactional

    public boolean isPendingTransactional()

### isProvisional

    public boolean isProvisional()

  Description copied from interface: `OpenJPAStateManager`
  Return whether this object is provisionally persistent.

  Specified by:
    `isProvisional` in interface `OpenJPAStateManager`

### isPersistent

    public boolean isPersistent()

  Description copied from interface: `StateManager`
  Whether the instance is persistent.

  Specified by:
    `isPersistent` in interface `StateManager`

### isNew

    public boolean isNew()

  Description copied from interface: `StateManager`
  Whether the instance is newly-persisted in this transaction.

  Specified by:
    `isNew` in interface `StateManager`

### isDeleted

    public boolean isDeleted()

  Description copied from interface: `StateManager`
  Whether the instance is deleted in this transaction.

  Specified by:
    `isDeleted` in interface `StateManager`

### isDirty

    public boolean isDirty()

  Description copied from interface: `StateManager`
  Whether the instance has been modified in this transaction.

  Specified by:
    `isDirty` in interface `StateManager`

### isDetached

    public boolean isDetached()

  Description copied from interface: `StateManager`
  Whether the instance is detached (i.e. this manager is a detached state manager)

  Specified by:
    `isDetached` in interface `StateManager`

### getGenericContext

    public Object getGenericContext()

  Description copied from interface: `StateManager`
  Persistence context.

  Specified by:
    `getGenericContext` in interface `StateManager`

### fetchObjectId

    public Object fetchObjectId()

  Description copied from interface: `StateManager`
  Return the object id, assigning it if necessary.

  Specified by:
    `fetchObjectId` in interface `StateManager`

### getPCPrimaryKey

    public Object getPCPrimaryKey(Object oid,
                                  int field)

  Description copied from interface: `StateManager`
  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.

  Specified by:
    `getPCPrimaryKey` in interface `StateManager`

### replaceFlags

    public byte replaceFlags()

### replaceStateManager

    public StateManager replaceStateManager(StateManager sm)

  Description copied from interface: `StateManager`
  Change state manager.

  Specified by:
    `replaceStateManager` in interface `StateManager`

### accessingField

    public void accessingField(int field)

  Description copied from interface: `StateManager`
  Field access callback.

  Specified by:
    `accessingField` in interface `StateManager`

### isDelayed

    public boolean isDelayed(int field)

  Description copied from interface: `OpenJPAStateManager`
  Some 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:
    `isDelayed` in interface `OpenJPAStateManager`
  Returns:
    true if the field is setup for delayed access

### setDelayed

    public void setDelayed(int field,
                           boolean delay)

  Description copied from interface: `OpenJPAStateManager`
  Some 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:
    `setDelayed` in interface `OpenJPAStateManager`

### loadDelayedField

    public void loadDelayedField(int field)

  Loads a delayed access field.

  Specified by:
    `loadDelayedField` in interface `OpenJPAStateManager`
  Parameters:
    `field` -

### beforeAccessField

    protected void beforeAccessField(int field)

  Load the given field before access.

### dirty

    public void dirty(String field)

  Description copied from interface: `StateManager`
  Make named field dirty.

  Specified by:
    `dirty` in interface `StateManager`

### dirty

    public void dirty(int field)

  Description copied from interface: `OpenJPAStateManager`
  Mark the given field as dirty.

  Specified by:
    `dirty` in interface `OpenJPAStateManager`

### removed

    public void removed(int field,
                        Object removed,
                        boolean key)

  Description copied from interface: `OpenJPAStateManager`
  Notification that an element has been removed from the given field.

  Specified by:
    `removed` in interface `OpenJPAStateManager`

### newProxy

    public Object newProxy(int field)

  Description copied from interface: `OpenJPAStateManager`
  Create 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 implement `Proxy`. 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.

  Specified by:
    `newProxy` in interface `OpenJPAStateManager`

### newFieldProxy

    public Object newFieldProxy(int field)

  Description copied from interface: `OpenJPAStateManager`
  Create a new hollow proxy instance for the given field. This method differs from `OpenJPAStateManager.newProxy(int)` in that it returns a proxy for the field's declared type, not its externalized type.

  Specified by:
    `newFieldProxy` in interface `OpenJPAStateManager`
  See Also:
    `OpenJPAStateManager.newProxy(int)`

### isDefaultValue

    public boolean isDefaultValue(int field)

  Description copied from interface: `OpenJPAStateManager`
  Return true if the given field has a default value.

  Specified by:
    `isDefaultValue` in interface `OpenJPAStateManager`

### settingBooleanField

    public void settingBooleanField(PersistenceCapable pc,
                                    int field,
                                    boolean curVal,
                                    boolean newVal,
                                    int set)

  Description copied from interface: `StateManager`
  Setting state callback.

  Specified by:
    `settingBooleanField` in interface `StateManager`

### settingByteField

    public void settingByteField(PersistenceCapable pc,
                                 int field,
                                 byte curVal,
                                 byte newVal,
                                 int set)

  Description copied from interface: `StateManager`
  Setting state callback.

  Specified by:
    `settingByteField` in interface `StateManager`

### settingCharField

    public void settingCharField(PersistenceCapable pc,
                                 int field,
                                 char curVal,
                                 char newVal,
                                 int set)

  Description copied from interface: `StateManager`
  Setting state callback.

  Specified by:
    `settingCharField` in interface `StateManager`

### settingDoubleField

    public void settingDoubleField(PersistenceCapable pc,
                                   int field,
                                   double curVal,
                                   double newVal,
                                   int set)

  Description copied from interface: `StateManager`
  Setting state callback.

  Specified by:
    `settingDoubleField` in interface `StateManager`

### settingFloatField

    public void settingFloatField(PersistenceCapable pc,
                                  int field,
                                  float curVal,
                                  float newVal,
                                  int set)

  Description copied from interface: `StateManager`
  Setting state callback.

  Specified by:
    `settingFloatField` in interface `StateManager`

### settingIntField

    public void settingIntField(PersistenceCapable pc,
                                int field,
                                int curVal,
                                int newVal,
                                int set)

  Description copied from interface: `StateManager`
  Setting state callback.

  Specified by:
    `settingIntField` in interface `StateManager`

### settingLongField

    public void settingLongField(PersistenceCapable pc,
                                 int field,
                                 long curVal,
                                 long newVal,
                                 int set)

  Description copied from interface: `StateManager`
  Setting state callback.

  Specified by:
    `settingLongField` in interface `StateManager`

### settingObjectField

    public void settingObjectField(PersistenceCapable pc,
                                   int field,
                                   Object curVal,
                                   Object newVal,
                                   int set)

  Description copied from interface: `StateManager`
  Setting state callback.

  Specified by:
    `settingObjectField` in interface `StateManager`

### settingShortField

    public void settingShortField(PersistenceCapable pc,
                                  int field,
                                  short curVal,
                                  short newVal,
                                  int set)

  Description copied from interface: `StateManager`
  Setting state callback.

  Specified by:
    `settingShortField` in interface `StateManager`

### settingStringField

    public void settingStringField(PersistenceCapable pc,
                                   int field,
                                   String curVal,
                                   String newVal,
                                   int set)

  Description copied from interface: `StateManager`
  Setting state callback.

  Specified by:
    `settingStringField` in interface `StateManager`

### assertNotManagedObjectId

    void assertNotManagedObjectId(Object val)

  Disallows setting an object id field to a managed instance.

### providedBooleanField

    public void providedBooleanField(PersistenceCapable pc,
                                     int field,
                                     boolean curVal)

  Description copied from interface: `StateManager`
  Provide state callback.

  Specified by:
    `providedBooleanField` in interface `StateManager`

### providedByteField

    public void providedByteField(PersistenceCapable pc,
                                  int field,
                                  byte curVal)

  Description copied from interface: `StateManager`
  Provide state callback.

  Specified by:
    `providedByteField` in interface `StateManager`

### providedCharField

    public void providedCharField(PersistenceCapable pc,
                                  int field,
                                  char curVal)

  Description copied from interface: `StateManager`
  Provide state callback.

  Specified by:
    `providedCharField` in interface `StateManager`

### providedDoubleField

    public void providedDoubleField(PersistenceCapable pc,
                                    int field,
                                    double curVal)

  Description copied from interface: `StateManager`
  Provide state callback.

  Specified by:
    `providedDoubleField` in interface `StateManager`

### providedFloatField

    public void providedFloatField(PersistenceCapable pc,
                                   int field,
                                   float curVal)

  Description copied from interface: `StateManager`
  Provide state callback.

  Specified by:
    `providedFloatField` in interface `StateManager`

### providedIntField

    public void providedIntField(PersistenceCapable pc,
                                 int field,
                                 int curVal)

  Description copied from interface: `StateManager`
  Provide state callback.

  Specified by:
    `providedIntField` in interface `StateManager`

### providedLongField

    public void providedLongField(PersistenceCapable pc,
                                  int field,
                                  long curVal)

  Description copied from interface: `StateManager`
  Provide state callback.

  Specified by:
    `providedLongField` in interface `StateManager`

### providedObjectField

    public void providedObjectField(PersistenceCapable pc,
                                    int field,
                                    Object curVal)

  Description copied from interface: `StateManager`
  Provide state callback.

  Specified by:
    `providedObjectField` in interface `StateManager`

### providedShortField

    public void providedShortField(PersistenceCapable pc,
                                   int field,
                                   short curVal)

  Description copied from interface: `StateManager`
  Provide state callback.

  Specified by:
    `providedShortField` in interface `StateManager`

### providedStringField

    public void providedStringField(PersistenceCapable pc,
                                    int field,
                                    String curVal)

  Description copied from interface: `StateManager`
  Provide state callback.

  Specified by:
    `providedStringField` in interface `StateManager`

### replaceBooleanField

    public boolean replaceBooleanField(PersistenceCapable pc,
                                       int field)

  Description copied from interface: `StateManager`
  Replace state callback.

  Specified by:
    `replaceBooleanField` in interface `StateManager`

### replaceByteField

    public byte replaceByteField(PersistenceCapable pc,
                                 int field)

  Description copied from interface: `StateManager`
  Replace state callback.

  Specified by:
    `replaceByteField` in interface `StateManager`

### replaceCharField

    public char replaceCharField(PersistenceCapable pc,
                                 int field)

  Description copied from interface: `StateManager`
  Replace state callback.

  Specified by:
    `replaceCharField` in interface `StateManager`

### replaceDoubleField

    public double replaceDoubleField(PersistenceCapable pc,
                                     int field)

  Description copied from interface: `StateManager`
  Replace state callback.

  Specified by:
    `replaceDoubleField` in interface `StateManager`

### replaceFloatField

    public float replaceFloatField(PersistenceCapable pc,
                                   int field)

  Description copied from interface: `StateManager`
  Replace state callback.

  Specified by:
    `replaceFloatField` in interface `StateManager`

### replaceIntField

    public int replaceIntField(PersistenceCapable pc,
                               int field)

  Description copied from interface: `StateManager`
  Replace state callback.

  Specified by:
    `replaceIntField` in interface `StateManager`

### replaceLongField

    public long replaceLongField(PersistenceCapable pc,
                                 int field)

  Description copied from interface: `StateManager`
  Replace state callback.

  Specified by:
    `replaceLongField` in interface `StateManager`

### replaceObjectField

    public Object replaceObjectField(PersistenceCapable pc,
                                     int field)

  Description copied from interface: `StateManager`
  Replace state callback.

  Specified by:
    `replaceObjectField` in interface `StateManager`

### replaceShortField

    public short replaceShortField(PersistenceCapable pc,
                                   int field)

  Description copied from interface: `StateManager`
  Replace state callback.

  Specified by:
    `replaceShortField` in interface `StateManager`

### replaceStringField

    public String replaceStringField(PersistenceCapable pc,
                                     int field)

  Description copied from interface: `StateManager`
  Replace state callback.

  Specified by:
    `replaceStringField` in interface `StateManager`

### fetchBoolean

    public boolean fetchBoolean(int field)

  Description copied from interface: `OpenJPAStateManager`
  Return the external value of the given field.

  Specified by:
    `fetchBoolean` in interface `OpenJPAStateManager`

### fetchBooleanField

    public boolean fetchBooleanField(int field)

  Description copied from interface: `FieldSupplier`
  Return the value of the given field.

  Specified by:
    `fetchBooleanField` in interface `FieldSupplier`

### fetchByte

    public byte fetchByte(int field)

  Description copied from interface: `OpenJPAStateManager`
  Return the external value of the given field.

  Specified by:
    `fetchByte` in interface `OpenJPAStateManager`

### fetchByteField

    public byte fetchByteField(int field)

  Description copied from interface: `FieldSupplier`
  Return the value of the given field.

  Specified by:
    `fetchByteField` in interface `FieldSupplier`

### fetchChar

    public char fetchChar(int field)

  Description copied from interface: `OpenJPAStateManager`
  Return the external value of the given field.

  Specified by:
    `fetchChar` in interface `OpenJPAStateManager`

### fetchCharField

    public char fetchCharField(int field)

  Description copied from interface: `FieldSupplier`
  Return the value of the given field.

  Specified by:
    `fetchCharField` in interface `FieldSupplier`

### fetchDouble

    public double fetchDouble(int field)

  Description copied from interface: `OpenJPAStateManager`
  Return the external value of the given field.

  Specified by:
    `fetchDouble` in interface `OpenJPAStateManager`

### fetchDoubleField

    public double fetchDoubleField(int field)

  Description copied from interface: `FieldSupplier`
  Return the value of the given field.

  Specified by:
    `fetchDoubleField` in interface `FieldSupplier`

### fetchFloat

    public float fetchFloat(int field)

  Description copied from interface: `OpenJPAStateManager`
  Return the external value of the given field.

  Specified by:
    `fetchFloat` in interface `OpenJPAStateManager`

### fetchFloatField

    public float fetchFloatField(int field)

  Description copied from interface: `FieldSupplier`
  Return the value of the given field.

  Specified by:
    `fetchFloatField` in interface `FieldSupplier`

### fetchInt

    public int fetchInt(int field)

  Description copied from interface: `OpenJPAStateManager`
  Return the external value of the given field.

  Specified by:
    `fetchInt` in interface `OpenJPAStateManager`

### fetchIntField

    public int fetchIntField(int field)

  Description copied from interface: `FieldSupplier`
  Return the value of the given field.

  Specified by:
    `fetchIntField` in interface `FieldSupplier`

### fetchLong

    public long fetchLong(int field)

  Description copied from interface: `OpenJPAStateManager`
  Return the external value of the given field.

  Specified by:
    `fetchLong` in interface `OpenJPAStateManager`

### fetchLongField

    public long fetchLongField(int field)

  Description copied from interface: `FieldSupplier`
  Return the value of the given field.

  Specified by:
    `fetchLongField` in interface `FieldSupplier`

### fetchObject

    public Object fetchObject(int field)

  Description copied from interface: `OpenJPAStateManager`
  Return the external value of the given field.

  Specified by:
    `fetchObject` in interface `OpenJPAStateManager`

### fetchObjectField

    public Object fetchObjectField(int field)

  Description copied from interface: `OpenJPAStateManager`
  Fetch an object field by index.

  Specified by:
    `fetchObjectField` in interface `FieldSupplier`
  Specified by:
    `fetchObjectField` in interface `OpenJPAStateManager`

### fetchShort

    public short fetchShort(int field)

  Description copied from interface: `OpenJPAStateManager`
  Return the external value of the given field.

  Specified by:
    `fetchShort` in interface `OpenJPAStateManager`

### fetchShortField

    public short fetchShortField(int field)

  Description copied from interface: `FieldSupplier`
  Return the value of the given field.

  Specified by:
    `fetchShortField` in interface `FieldSupplier`

### fetchString

    public String fetchString(int field)

  Description copied from interface: `OpenJPAStateManager`
  Return the external value of the given field.

  Specified by:
    `fetchString` in interface `OpenJPAStateManager`

### fetchStringField

    public String fetchStringField(int field)

  Description copied from interface: `FieldSupplier`
  Return the value of the given field.

  Specified by:
    `fetchStringField` in interface `FieldSupplier`

### storeBoolean

    public void storeBoolean(int field,
                             boolean externalVal)

  Description copied from interface: `OpenJPAStateManager`
  Set the given external value back into the given field.

  Specified by:
    `storeBoolean` in interface `OpenJPAStateManager`

### storeBooleanField

    public void storeBooleanField(int field,
                                  boolean curVal)

  Description copied from interface: `FieldConsumer`
  Set the value of the given field.

  Specified by:
    `storeBooleanField` in interface `FieldConsumer`

### storeByte

    public void storeByte(int field,
                          byte externalVal)

  Description copied from interface: `OpenJPAStateManager`
  Set the given external value back into the given field.

  Specified by:
    `storeByte` in interface `OpenJPAStateManager`

### storeByteField

    public void storeByteField(int field,
                               byte curVal)

  Description copied from interface: `FieldConsumer`
  Set the value of the given field.

  Specified by:
    `storeByteField` in interface `FieldConsumer`

### storeChar

    public void storeChar(int field,
                          char externalVal)

  Description copied from interface: `OpenJPAStateManager`
  Set the given external value back into the given field.

  Specified by:
    `storeChar` in interface `OpenJPAStateManager`

### storeCharField

    public void storeCharField(int field,
                               char curVal)

  Description copied from interface: `FieldConsumer`
  Set the value of the given field.

  Specified by:
    `storeCharField` in interface `FieldConsumer`

### storeDouble

    public void storeDouble(int field,
                            double externalVal)

  Description copied from interface: `OpenJPAStateManager`
  Set the given external value back into the given field.

  Specified by:
    `storeDouble` in interface `OpenJPAStateManager`

### storeDoubleField

    public void storeDoubleField(int field,
                                 double curVal)

  Description copied from interface: `FieldConsumer`
  Set the value of the given field.

  Specified by:
    `storeDoubleField` in interface `FieldConsumer`

### storeFloat

    public void storeFloat(int field,
                           float externalVal)

  Description copied from interface: `OpenJPAStateManager`
  Set the given external value back into the given field.

  Specified by:
    `storeFloat` in interface `OpenJPAStateManager`

### storeFloatField

    public void storeFloatField(int field,
                                float curVal)

  Description copied from interface: `FieldConsumer`
  Set the value of the given field.

  Specified by:
    `storeFloatField` in interface `FieldConsumer`

### storeInt

    public void storeInt(int field,
                         int externalVal)

  Description copied from interface: `OpenJPAStateManager`
  Set the given external value back into the given field.

  Specified by:
    `storeInt` in interface `OpenJPAStateManager`

### storeIntField

    public void storeIntField(int field,
                              int curVal)

  Description copied from interface: `FieldConsumer`
  Set the value of the given field.

  Specified by:
    `storeIntField` in interface `FieldConsumer`

### storeLong

    public void storeLong(int field,
                          long externalVal)

  Description copied from interface: `OpenJPAStateManager`
  Set the given external value back into the given field.

  Specified by:
    `storeLong` in interface `OpenJPAStateManager`

### storeLongField

    public void storeLongField(int field,
                               long curVal)

  Description copied from interface: `FieldConsumer`
  Set the value of the given field.

  Specified by:
    `storeLongField` in interface `FieldConsumer`

### storeObject

    public void storeObject(int field,
                            Object externalVal)

  Description copied from interface: `OpenJPAStateManager`
  Set the given external value back into the given field.

  Specified by:
    `storeObject` in interface `OpenJPAStateManager`

### storeObjectField

    public void storeObjectField(int field,
                                 Object curVal)

  Description copied from interface: `FieldConsumer`
  Set the value of the given field.

  Specified by:
    `storeObjectField` in interface `FieldConsumer`

### storeShort

    public void storeShort(int field,
                           short externalVal)

  Description copied from interface: `OpenJPAStateManager`
  Set the given external value back into the given field.

  Specified by:
    `storeShort` in interface `OpenJPAStateManager`

### storeShortField

    public void storeShortField(int field,
                                short curVal)

  Description copied from interface: `FieldConsumer`
  Set the value of the given field.

  Specified by:
    `storeShortField` in interface `FieldConsumer`

### storeString

    public void storeString(int field,
                            String externalVal)

  Description copied from interface: `OpenJPAStateManager`
  Set the given external value back into the given field.

  Specified by:
    `storeString` in interface `OpenJPAStateManager`

### storeStringField

    public void storeStringField(int field,
                                 String curVal)

  Description copied from interface: `FieldConsumer`
  Set the value of the given field.

  Specified by:
    `storeStringField` in interface `FieldConsumer`

### eraseFlush

    void eraseFlush()

  Erase the fact that this instance has been flushed.

### setLoaded

    void setLoaded(boolean val)

  Records that all instance fields are/are not loaded. Primary key and non-persistent fields are not affected.

### setDirty

    void setDirty(boolean val)

  Records that all instance fields are/are not dirty, and changes the flags of the instance accordingly.

### clearFields

    void clearFields()

  Executes pre-clear callbacks, clears all managed fields, and calls the `setLoaded(boolean)` method with a value of false. Primary key fields are not cleared.

### saveFields

    void saveFields(boolean immediate)

  Record that we should save any fields that change from this point forward.

### clearSavedFields

    void clearSavedFields()

  Notification that the state will not need to be rolled back to that of the last call to `saveFields(boolean)`.

### getSaveFieldManager

    public SaveFieldManager getSaveFieldManager()

### restoreFields

    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.

### proxyFields

    void proxyFields(boolean reset,
                     boolean replaceNull)

  Replaces all second class object fields with fresh proxied instances containing the same information as the originals.
  Note: Proxying is bypassed if `AutoDetach.DETACH_NONE` option is set.

### unproxyFields

    void unproxyFields()

  Unproxy all fields.

### preFlush

    void preFlush(boolean logical,
                  OpCallbacks call)

  Get ready for a flush. Persists all persistence-capable object fields, and checks for illegal null values. Also assigns oids and field values for all strategies that don't require flushing.

### preDelete

    void preDelete()

  Make callbacks for deletion.

### cascadeDelete

    void cascadeDelete(OpCallbacks call)

  Cascade deletes and dereference dependent fields.

### cascadePersist

    void cascadePersist(OpCallbacks call)

  Called after an instance is persisted by a user through the broker. Cascades the persist operation to fields marked `ValueMetaData.CASCADE_IMMEDIATE`.

### loadFields

    boolean loadFields(BitSet fields,
                       FetchConfiguration fetch,
                       int lockLevel,
                       Object sdata)

  Load the given field set from the data store into the instance. Return true if any data is loaded, false otherwise.

### 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.

### provideField

    void provideField(PersistenceCapable pc,
                      FieldManager store,
                      int field)

  Helper method to provide the given field number to the given field manager.

### replaceField

    void replaceField(PersistenceCapable pc,
                      FieldManager load,
                      int field)

  Helper method to replace the given field number to the given field manager.

### setPostLoadCallback

    public void setPostLoadCallback(boolean enabled)

  Set to `false` to prevent the postLoad method from sending lifecycle callback events.

### isVersionCheckRequired

    public boolean isVersionCheckRequired()

  Returns whether this instance needs a version check.

  Specified by:
    `isVersionCheckRequired` in interface `OpenJPAStateManager`

### setCheckVersion

    void setCheckVersion(boolean versionCheck)

  Set whether this instance requires a version check on the next flush.

### isVersionUpdateRequired

    public boolean isVersionUpdateRequired()

  Returns whether this instance needs a version update.

  Specified by:
    `isVersionUpdateRequired` in interface `OpenJPAStateManager`

### setUpdateVersion

    void setUpdateVersion(boolean versionUpdate)

  Set whether this instance requires a version update on the next flush.

### translate

    protected RuntimeException translate(RuntimeException re)

  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.

### writePC

    void writePC(ObjectOutputStream oos,
                 PersistenceCapable pc)
           throws IOException

  Write `pc` to `oos`, handling internal-form serialization. `pc` must be of the same type that this state manager manages.

  Throws:
    `IOException`
  Since:
    1.1.0

### readPC

    PersistenceCapable readPC(ObjectInputStream in)
                        throws ClassNotFoundException,
                               IOException

  Converts the deserialized `o` to a `PersistenceCapable` instance appropriate for storing in `_pc`.

  Throws:
    `ClassNotFoundException`
    `IOException`
  Since:
    1.1.0

### getMappedByIdFields

    public List<FieldMetaData> getMappedByIdFields()

### requiresFetch

    public boolean requiresFetch(FieldMetaData fmd)

### setPc

    public void setPc(PersistenceCapable pc)

### setBroker

    public void setBroker(BrokerImpl ctx)

### getFlushed

    public BitSet getFlushed()

  Description copied from interface: `OpenJPAStateManager`
  Return a read-only mask of the indexes of all fields that have been flushed since they were last changed.

  Specified by:
    `getFlushed` in interface `OpenJPAStateManager`

### getDirty

    public BitSet getDirty()

  Description copied from interface: `OpenJPAStateManager`
  Return a read-only mask of the indexes of all dirty fields.

  Specified by:
    `getDirty` in interface `OpenJPAStateManager`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2006-2013 Apache Software Foundation. All Rights Reserved.