|
SolarMetric Kodo JDO 3.3.5 generated on August 31 2005 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--kodo.jdbc.runtime.JDBCStoreManager
StoreManager plugin that uses JDBC to store persistent data in a relational data store.
Fields inherited from interface kodo.runtime.StoreManager |
FORCE_LOAD_ALL, FORCE_LOAD_DFG, FORCE_LOAD_NONE, FORCE_LOAD_REFRESH, VERSION_DIFFERENT, VERSION_EARLIER, VERSION_LATER, VERSION_SAME |
Constructor Summary | |
JDBCStoreManager()
|
Method Summary | |
boolean |
addClassConditions(Select sel,
ClassMapping mapping,
boolean subs,
Joins joins)
Add WHERE conditions to the given select limiting the returned results to the given mapping type, possibly including subclasses. |
boolean |
assignObjectId(KodoStateManager sm)
Assign an object id to the given new instance. |
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 |
changeJDOState(KodoStateManager sm,
JDOState fromState,
JDOState toState)
Notification that the given state manager is about to change its JDO state. |
void |
close()
Free any resources this store manager is using. |
void |
commit()
Commit the current data store transaction. |
int |
compareVersion(KodoStateManager state,
Object v1,
Object v2)
Compare the two version objects. |
Object |
copyDataStoreId(Object oid,
ClassMetaData meta)
Copy the given object id value. |
boolean |
exists(KodoStateManager sm,
Object context)
Verify that the given instance exists in the data store; return false if it does not. |
Collection |
flush(Collection states)
Flush the given state manager collection to the datastore, returning a collection of exceptions encountered during flushing. |
JDBCConfiguration |
getConfiguration()
Return the configuration for this runtime. |
Object |
getConnection()
Return a connection to the data store. |
int |
getCount(Select sel)
Return the count for the given query. |
Class |
getDataStoreIdClass(ClassMetaData meta)
Return the class used by this StoreManager for datastore identity values. |
Connection |
getJDBCConnection()
Return a SQL connection to the database. |
JDBCLockManager |
getJDBCLockManager()
Return the jdbc lock manager, or null if the lock manager does not implement JDBCLockManager . |
Class |
getPersistenceCapableClass(Object oid)
Return the persistent class for the given data store identity value. |
KodoPersistenceManager |
getPersistenceManager()
Return the PersistenceManager this StoreManager is owned by. |
SequenceGenerator |
getSequenceGenerator(ClassMetaData meta)
Returns a SequenceGenerator for the specified class. |
boolean |
hasConnection()
Return true if this store manager has established a dedicated connection to the data store. |
boolean |
initialize(KodoStateManager sm,
JDOState state,
FetchConfiguration fetch,
Object context)
Initialize the given state manager. |
boolean |
isActive()
Return whether there is a datastore transaction active. |
boolean |
load(KodoStateManager sm,
BitSet fields,
FetchConfiguration fetch,
int lockLevel,
Object context)
Load the given state manager. |
Object |
load(Object oid,
JDBCFetchConfiguration fetch)
Load the object with the given oid. |
Collection |
loadAll(Collection sms,
JDOState state,
int load,
FetchConfiguration fetch,
Object context)
Initialize, load, or validate the existance of all of the given objects. |
Object |
loadMappings(ClassMapping mapping,
JDBCFetchConfiguration fetch,
BitSet exclude,
Result result)
For implementation use only. |
void |
loadSubclasses(ClassMapping mapping)
Makes sure all subclasses of the given type are loaded in the JVM. |
Id |
newDataStoreId(long id,
ClassMapping mapping)
Create a new datastore identity object from the given id value and mapping. |
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). |
KodoExtent |
newExtent(Class cls,
boolean subclasses)
Return an extent of the given candidate class, optionally including subclasses. |
FetchConfiguration |
newFetchConfiguration()
Return a fetch configuration suitable for this runtime. |
KodoQuery |
newQuery(String language)
Return a query implementation suitable for this runtime. |
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. |
boolean |
selectMappings(Select sel,
ClassMapping mapping,
int subs,
KodoStateManager sm,
BitSet fields,
JDBCFetchConfiguration fetch,
int eager,
boolean ident)
For implementation use only. |
void |
setPersistenceManager(KodoPersistenceManager pm)
Set the PersistenceManager this StoreManager is owned by. |
boolean |
synchVersion(KodoStateManager 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, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public JDBCStoreManager()
Method Detail |
public KodoPersistenceManager getPersistenceManager()
public void setPersistenceManager(KodoPersistenceManager pm)
setPersistenceManager
in interface StoreManager
public JDBCConfiguration getConfiguration()
public void beginOptimistic()
StoreManager
StoreManager.begin()
method, which will still be called
when a true data store transaction should begin.beginOptimistic
in interface StoreManager
public void rollbackOptimistic()
StoreManager
rollbackOptimistic
in interface StoreManager
public void begin()
StoreManager
begin
in interface StoreManager
public void commit()
StoreManager
commit
in interface StoreManager
public void rollback()
StoreManager
rollback
in interface StoreManager
public Object getConnection()
StoreManager
getConnection
in interface StoreManager
public boolean hasConnection()
StoreManager
KodoPersistenceManager.getConnectionRetainMode()
.hasConnection
in interface StoreManager
public boolean exists(KodoStateManager sm, Object context)
StoreManager
exists
in interface StoreManager
public boolean synchVersion(KodoStateManager sm, Object context)
StoreManager
synchVersion
in interface StoreManager
kodo.runtime.StoreManager
sm
- the instance to checkcontext
- the current context information, or null if not
given to the calling method of the persistence
managerpublic int compareVersion(KodoStateManager state, Object v1, Object v2)
StoreManager
compareVersion
in interface StoreManager
kodo.runtime.StoreManager
state
- the state manager for the objectv1
- the first version object to comparev2
- the second version object to compareStoreManager.VERSION_LATER
if v1
is later than v2
StoreManager.VERSION_EARLIER
if v1
is earlier than v2
StoreManager.VERSION_SAME
if v1
is the same as v2
StoreManager.VERSION_DIFFERENT
if v1
is different from v2
, but the time
difference of the versions cannot be determinedpublic boolean initialize(KodoStateManager sm, JDOState state, FetchConfiguration fetch, Object context)
StoreManager
KodoStateManager.initialize(javax.jdo.spi.PersistenceCapable, kodo.runtime.JDOState)
method with
a new instance of the correct type constructed with the
JDOImplHelper.newInstance(Class,StateManager,Object)
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(kodo.runtime.KodoStateManager, java.util.BitSet, kodo.runtime.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 KodoStateManager.setVersion(java.lang.Object)
method.initialize
in interface StoreManager
kodo.runtime.StoreManager
sm
- the instance to initializestate
- the lifecycle state to initialize the state
manager withfetch
- configuration for how to load the instancecontext
- the current context information, or null if not
given to the calling method of the persistence
managerpublic boolean load(KodoStateManager sm, BitSet fields, FetchConfiguration fetch, int lockLevel, Object context)
StoreManager
KodoStateManager.setVersion(java.lang.Object)
method.load
in interface StoreManager
kodo.runtime.StoreManager
sm
- 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 context information, or null if not
given to the calling method of the persistence
managerpublic Collection loadAll(Collection sms, JDOState state, int load, FetchConfiguration fetch, Object context)
StoreManager
KodoPersistenceManager.getObjectsById(java.lang.Object[], boolean)
. 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.getPersistenceCapable () == null
: An
uninitialized state manager. Perform the same actions as in
StoreManager.initialize(kodo.runtime.KodoStateManager, kodo.runtime.JDOState, kodo.runtime.FetchConfiguration, java.lang.Object)
.load != FORCE_LOAD_NONE || stateManager.getJDOState ()
== JDOState.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(kodo.runtime.KodoStateManager, java.util.BitSet, kodo.runtime.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(kodo.runtime.KodoStateManager, java.util.BitSet, kodo.runtime.FetchConfiguration, int, java.lang.Object)
on
the individual object in question.load == FORCE_LOAD_NONE &&
stateManager.getJDOState () != JDOState.HOLLOW
: A non-hollow
state manager. Perform the same actions as in StoreManager.exists(kodo.runtime.KodoStateManager, java.lang.Object)
,
and load additional state if desired. Non-hollow objects will only
be included outside of refresh invocations if a user calls
getObjectsById
with the validate
parameter set to true
.loadAll
in interface StoreManager
kodo.runtime.StoreManager
sms
- 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 sms
load
- 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 context information, or null if not
given to the calling method of the persistence
managerpublic void changeJDOState(KodoStateManager sm, JDOState fromState, JDOState toState)
StoreManager
changeJDOState
in interface StoreManager
public Collection flush(Collection states)
StoreManager
KodoStateManager.setObjectId(java.lang.Object)
.
Datastore version information should be updated during flush, and the
state manager's version indicator updated through the
KodoStateManager.setNextVersion(java.lang.Object)
method. The current version
will roll over to this next version upon successful commit.flush
in interface StoreManager
public boolean cancelAll()
StoreManager
cancelAll
in interface StoreManager
kodo.runtime.StoreManager
public Class getPersistenceCapableClass(Object oid)
StoreManager
getPersistenceCapableClass
in interface StoreManager
public boolean assignObjectId(KodoStateManager sm)
StoreManager
assignObjectId
in interface StoreManager
kodo.runtime.StoreManager
kodo.util.ApplicationIds#create
public Class getDataStoreIdClass(ClassMetaData meta)
StoreManager
getDataStoreIdClass
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 StoreManager
public Id newDataStoreId(long id, ClassMapping mapping)
public KodoExtent newExtent(Class cls, boolean subclasses)
StoreManager
newExtent
in interface StoreManager
public KodoQuery newQuery(String language)
StoreManager
newQuery
in interface StoreManager
kodo.runtime.StoreManager
language
- the query language; implementations are only
required to support
javax.jdo.query.JDOQL
public FetchConfiguration newFetchConfiguration()
StoreManager
FetchConfigurationImpl
.newFetchConfiguration
in interface StoreManager
public SequenceGenerator getSequenceGenerator(ClassMetaData meta)
StoreManager
SequenceGenerator
for the specified class.getSequenceGenerator
in interface StoreManager
public void close()
StoreManager
close
in interface StoreManager
public boolean isActive()
public JDBCLockManager getJDBCLockManager()
JDBCLockManager
.public Connection getJDBCConnection()
StoreManager.getConnection()
, but does not require you to
cast the returned object to a SQL connection.
The close
method should always be called on the connection
to free any resources it is using. When appropriate, the close
method is implemented as a no-op.public Object loadMappings(ClassMapping mapping, JDBCFetchConfiguration fetch, BitSet exclude, Result result) throws SQLException
public Object load(Object oid, JDBCFetchConfiguration fetch)
public int getCount(Select sel) throws SQLException
public boolean selectMappings(Select sel, ClassMapping mapping, int subs, KodoStateManager sm, BitSet fields, JDBCFetchConfiguration fetch, int eager, boolean ident)
sel
- select to build onmapping
- the mapping for the base type to select forsubs
- whether the select might include subclasses of the
given mappingsm
- state manager if an instance is being loaded or
initialized, else nullfields
- if a state manager is being loaded, the set of
fields that must be loaded in JDO order, else nullfetch
- the fetch configuration; used if no specific fields
must be loaded, and used when selecting relationseager
- eager fetch mode to useident
- whether to select primary key columns as distinct
identifierspublic void loadSubclasses(ClassMapping mapping)
public boolean addClassConditions(Select sel, ClassMapping mapping, boolean subs, Joins joins)
|
SolarMetric Kodo JDO 3.3.5 generated on August 31 2005 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |