|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.openjpa.kernel.DelegatingStoreManager
public abstract class DelegatingStoreManager
Base class for store manager decorators that delegate to another store manager for some operations.
| Field Summary |
|---|
| Fields inherited from interface org.apache.openjpa.kernel.StoreManager |
|---|
FORCE_LOAD_ALL, FORCE_LOAD_DFG, FORCE_LOAD_NONE, FORCE_LOAD_REFRESH, VERSION_DIFFERENT, VERSION_EARLIER, VERSION_LATER, VERSION_SAME |
| Constructor Summary | |
|---|---|
DelegatingStoreManager(StoreManager store)
Constructor. |
|
| Method Summary | |
|---|---|
boolean |
assignField(OpenJPAStateManager sm,
int field,
boolean preFlush)
Assign a value to the given field. |
boolean |
assignObjectId(OpenJPAStateManager sm,
boolean preFlush)
Assign an object id to the given new instance. |
void |
beforeStateChange(OpenJPAStateManager sm,
PCState fromState,
PCState toState)
Notification that the given state manager is about to change its lifecycle state. |
void |
begin()
Begin a data store transaction. |
void |
beginOptimistic()
Notification that an optimistic transaction has started. |
boolean |
cancelAll()
Cancel all pending data store statements. |
void |
close()
Free any resources this store manager is using. |
void |
commit()
Commit the current data store transaction. |
int |
compareVersion(OpenJPAStateManager state,
Object v1,
Object v2)
Compare the two version objects. |
Object |
copyDataStoreId(Object oid,
ClassMetaData meta)
Copy the given object id value. |
boolean |
equals(Object other)
|
ResultObjectProvider |
executeExtent(ClassMetaData meta,
boolean subclasses,
FetchConfiguration fetch)
Return a provider for all instances of the given candidate class, optionally including subclasses. |
boolean |
exists(OpenJPAStateManager sm,
Object context)
Verify that the given instance exists in the data store; return false if it does not. |
Collection |
flush(Collection sms)
Flush the given state manager collection to the datastore, returning a collection of exceptions encountered during flushing. |
Object |
getClientConnection()
Return a connection to the data store suitable for client use. |
Seq |
getDataStoreIdSequence(ClassMetaData forClass)
Return a sequence that generates datastore identity values for the given class. |
Class |
getDataStoreIdType(ClassMetaData meta)
Return the class used by this StoreManager for datastore identity values. |
StoreManager |
getDelegate()
Return the wrapped store manager. |
StoreManager |
getInnermostDelegate()
Return the base underlying native store manager. |
Class |
getManagedType(Object oid)
Return the persistent class for the given data store identity value. |
Seq |
getValueSequence(FieldMetaData fmd)
Return a sequence that generates values for the given field. |
int |
hashCode()
|
boolean |
initialize(OpenJPAStateManager sm,
PCState state,
FetchConfiguration fetch,
Object context)
Initialize the given state manager. |
boolean |
load(OpenJPAStateManager sm,
BitSet fields,
FetchConfiguration fetch,
int lockLevel,
Object context)
Load the given state manager. |
Collection |
loadAll(Collection sms,
PCState state,
int load,
FetchConfiguration fetch,
Object context)
Initialize, load, or validate the existance of all of the given objects. |
Object |
newDataStoreId(Object oidVal,
ClassMetaData meta)
Create a new unique datastore identity for the given type from the given oid value (presumably pk, stringified oid, or oid instance). |
FetchConfiguration |
newFetchConfiguration()
Return a fetch configuration suitable for this runtime. |
StoreQuery |
newQuery(String language)
Return a query implementation suitable for this store. |
void |
releaseConnection()
Instruct the store to release a retained connection. |
void |
retainConnection()
Instruct the store to retain a connection for continued use. |
void |
rollback()
Rollback the current data store transaction. |
void |
rollbackOptimistic()
Notification that an optimistic transaction was rolled back before a data store transaction ever began. |
void |
setContext(StoreContext ctx)
Set a reference to the corresponding context. |
boolean |
syncVersion(OpenJPAStateManager sm,
Object context)
Update the version information in the given state manager to the version stored in the data store. |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public DelegatingStoreManager(StoreManager store)
| Method Detail |
|---|
public StoreManager getDelegate()
public StoreManager getInnermostDelegate()
public int hashCode()
hashCode in class Objectpublic boolean equals(Object other)
equals in class Objectpublic void setContext(StoreContext ctx)
StoreManager
setContext in interface StoreManagerpublic void beginOptimistic()
StoreManagerStoreManager.begin() method, which will still be called
when a true data store transaction should begin.
beginOptimistic in interface StoreManagerpublic void rollbackOptimistic()
StoreManager
rollbackOptimistic in interface StoreManagerpublic void begin()
StoreManager
begin in interface StoreManagerpublic void commit()
StoreManager
commit in interface StoreManagerpublic void rollback()
StoreManager
rollback in interface StoreManager
public boolean exists(OpenJPAStateManager sm,
Object context)
StoreManager
exists in interface StoreManager
public boolean syncVersion(OpenJPAStateManager sm,
Object context)
StoreManager
syncVersion in interface StoreManagersm - the instance to checkcontext - the current execution data, or null if not
given to the calling method of the context
public boolean initialize(OpenJPAStateManager sm,
PCState state,
FetchConfiguration fetch,
Object context)
StoreManagerOpenJPAStateManager.initialize(java.lang.Class, org.apache.openjpa.kernel.PCState) method with
a new instance of the correct type constructed with the
PCRegistry.newInstance(Class,
org.apache.openjpa.enhance.StateManager, boolean) method
(this will reset the state manager's metadata if the actual type was a
subclass). After instance initialization, load any the fields for the
given fetch configuration that can be efficiently retrieved. If any of
the configured fields are not loaded in this method, they will be
loaded with a subsequent call to StoreManager.load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object). If this method is
called during a data store transaction, the instance's database record
should be locked. Version information can be loaded if desired through
the OpenJPAStateManager.setVersion(java.lang.Object) method.
initialize in interface StoreManagersm - the instance to initializestate - the lifecycle state to initialize the state manager withfetch - configuration for how to load the instancecontext - the current execution data, or null if not
given to the calling method of the broker
public boolean load(OpenJPAStateManager sm,
BitSet fields,
FetchConfiguration fetch,
int lockLevel,
Object context)
StoreManagerOpenJPAStateManager.setVersion(java.lang.Object) method.
load in interface StoreManagersm - the instance to loadfields - set of fields to load; all field indexes in this
set must be loaded; this set is mutablefetch - the fetch configuration to use when loading
related objectslockLevel - attempt to load simple fields at this lock level;
relations should be loaded at the read lock level
of the fetch configurationcontext - the current execution data, or null if not
given to the calling method of the broker
public Collection loadAll(Collection sms,
PCState state,
int load,
FetchConfiguration fetch,
Object context)
StoreManagerStoreContext.retrieveAll(java.util.Collection, boolean, org.apache.openjpa.kernel.OpCallbacks). It gives
the store manager an opportunity to efficiently batch-load data for
several objects. Each of the given state managers will be in one of
three states, each requiring a different action:
stateManager.getO () == null: An
uninitialized state manager. Perform the same actions as in
StoreManager.initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object).
load != FORCE_LOAD_NONE || stateManager.getPCState ()
== PCState.HOLLOW: A hollow state manager, or one whose
fields must be loaded because this is a refresh or retrieve action.
Peform the same actions as in StoreManager.load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object), choosing the fields
to load based on the fetch configuration, or loading all fields
if load == FORCE_LOAD_ALL. Any required fields left
unloaded will cause a subsequent invocation of StoreManager.load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object) on
the individual object in question.load == FORCE_LOAD_NONE &&
stateManager.getPCState () != PCState.HOLLOW: A non-hollow
state manager. Perform the same actions as in StoreManager.exists(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object),
and load additional state if desired. Non-hollow objects will only
be included outside of refresh invocations if a user calls
findAll with the validate
parameter set to true.
loadAll in interface StoreManagersms - the state manager instances to loadstate - the lifecycle state to initialize uninitialized
state managers with; may be null if no uninitialized
instances are included in smsload - one of the FORCE_LOAD_* constants describing the
fields to force-load if this is a refresh or retrieve actionfetch - the current fetch configuration to use when loading
related objectscontext - the current execution data, or null if not
given to the calling method of the broker
ImplHelper.loadAll(java.util.Collection, org.apache.openjpa.kernel.StoreManager, org.apache.openjpa.kernel.PCState, int, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)
public void beforeStateChange(OpenJPAStateManager sm,
PCState fromState,
PCState toState)
StoreManager
beforeStateChange in interface StoreManagerpublic Collection flush(Collection sms)
StoreManagerOpenJPAStateManager.setObjectId(java.lang.Object). New
instances with value-strategy fields that have not been assigned yet
should have their fields set. Datastore version information should be
updated during flush, and the state manager's version indicator
updated through the OpenJPAStateManager.setNextVersion(java.lang.Object) method.
The current version will roll over to this next version upon successful
commit.
flush in interface StoreManagerorg.apache.openjpa.util.ApplicationIds#assign()
public boolean assignObjectId(OpenJPAStateManager sm,
boolean preFlush)
StoreManager
assignObjectId in interface StoreManagerpreFlush - whether this assignment is being requested by the
system as part of pre-flush activities, and can
be ignored if it is more efficient to assign within StoreManager.flush(java.util.Collection)ImplHelper.generateFieldValue(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.FieldMetaData),
ImplHelper.generateIdentityValue(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData, int),
org.apache.openjpa.util.ApplicationIds#assign()
public boolean assignField(OpenJPAStateManager sm,
int field,
boolean preFlush)
StoreManager
assignField in interface StoreManagerpreFlush - whether this assignment is being requested by the
system as part of pre-flush activities, and can
be ignored if it is more efficient to assign within StoreManager.flush(java.util.Collection)ImplHelper.generateFieldValue(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.FieldMetaData)public Class getManagedType(Object oid)
StoreManager
getManagedType in interface StoreManagerpublic Class getDataStoreIdType(ClassMetaData meta)
StoreManager
getDataStoreIdType in interface StoreManager
public Object copyDataStoreId(Object oid,
ClassMetaData meta)
StoreManager
copyDataStoreId in interface StoreManager
public Object newDataStoreId(Object oidVal,
ClassMetaData meta)
StoreManager
newDataStoreId in interface StoreManagerpublic Object getClientConnection()
StoreManager
getClientConnection in interface StoreManagerpublic void retainConnection()
StoreManager
retainConnection in interface StoreManagerpublic void releaseConnection()
StoreManager
releaseConnection in interface StoreManager
public ResultObjectProvider executeExtent(ClassMetaData meta,
boolean subclasses,
FetchConfiguration fetch)
StoreManager
executeExtent in interface StoreManagerpublic StoreQuery newQuery(String language)
StoreManager
newQuery in interface StoreManagerlanguage - the query languagepublic FetchConfiguration newFetchConfiguration()
StoreManagerFetchConfigurationImpl.
newFetchConfiguration in interface StoreManagerpublic void close()
StoreManager
close in interface StoreManagerclose in interface Closeable
public int compareVersion(OpenJPAStateManager state,
Object v1,
Object v2)
StoreManager
compareVersion in interface StoreManagerstate - the state manager for the objectv1 - the first version object to comparev2 - the second version object to compare
StoreManager.VERSION_LATER if v1
is later than v2StoreManager.VERSION_EARLIER if v1
is earlier than v2StoreManager.VERSION_SAME if v1
is the same as v2StoreManager.VERSION_DIFFERENT if v1
is different from v2, but the time
difference of the versions cannot be determinedpublic Seq getDataStoreIdSequence(ClassMetaData forClass)
StoreManager
getDataStoreIdSequence in interface StoreManagerpublic Seq getValueSequence(FieldMetaData fmd)
StoreManager
getValueSequence in interface StoreManagerpublic boolean cancelAll()
StoreManager
cancelAll in interface StoreManager
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||