public class ClassMolder
extends java.lang.Object
Persistence
. For example, when ClassMolder is asked to load
an object, it acquires the field values from Persistence
and binds
them into the target object.
It resolves relations via TransactionContext
and subsequently binds
these related objects into the target object, too.
Apart from loading, ClassMolder is also responsible for storing, removing, creating an object to and from a persistence storage, as well as reverting an object to its previous state.
Each instance of ClassMolder deals with exactly one persistable type,
interacts with one instance of Persistent and belongs to one
LockEngine
.
Modifier and Type | Field | Description |
---|---|---|
boolean |
_isKeyGenUsed |
Is a key kenerator used for the base class?
|
Constructor | Description |
---|---|
ClassMolder(DatingService ds,
ClassDescriptorResolver classDescriptorResolver,
LockEngine lock,
ClassDescriptor classDescriptor,
Persistence persistenceEngine) |
Creates an instance of this class.
|
Modifier and Type | Method | Description |
---|---|---|
(package private) void |
addDependent(ClassMolder dep) |
Mutator method to add a dependent ClassMolder.
|
(package private) void |
addExtendent(ClassMolder ext) |
Mutator method to add a extent ClassMolder.
|
Identity |
create(TransactionContext tx,
OID oid,
DepositBox locker,
java.lang.Object object) |
Create an object of the base class with specified identity into the persistence storage.
|
void |
delete(TransactionContext tx,
OID oid) |
Delete an object of the base type from the persistence storage.
|
void |
expireCache(TransactionContext tx,
ObjectLock locker) |
Inspect the fields stored in the object passed as an argument for
contained objects.
|
AccessMode |
getAccessMode(AccessMode txMode) |
Get the effective accessMode of the the base type.
|
Identity |
getActualIdentity(java.lang.ClassLoader loader,
java.lang.Object o) |
Get the identity from a object of the base type.
|
Identity |
getActualIdentity(TransactionContext tx,
java.lang.Object o) |
Get the identity from a object of the base type.
|
java.util.Properties |
getCacheParams() |
Returns the active cache parameters.
|
CallbackInterceptor |
getCallback() |
Get the callback interceptor of the base type.
|
ClassDescriptor |
getClassDescriptor() |
|
ClassMolder |
getDepends() |
Get the depends class' ClassMolder.
|
ClassMolder |
getExtends() |
Get the extends class' ClassMolder.
|
Identity |
getIdentity(TransactionContext tx,
java.lang.Object o) |
Get the identity from a object of the base type.
|
java.lang.Class<?> |
getJavaClass(java.lang.ClassLoader loader) |
Get the base class of this ClassMolder given a ClassLoader.
|
LockEngine |
getLockEngine() |
Get the LockEngine which this ClassMolder belongs to.
|
java.lang.String |
getName() |
Get the fully qualified name of the base type of this ClassMolder.
|
NamedNativeQuery |
getNamedNativeQuery(java.lang.String name) |
Returns the actual (SQL) statement for the specified named native query.
|
java.lang.String |
getNamedQuery(java.lang.String name) |
Returns the actual (OQL) statement for the specified named query.
|
Persistence |
getPersistence() |
Get the Persisetence of the base type.
|
int |
getPriority() |
Determines the create priority of the data object class represented by
this ClassMolder.
|
boolean |
isAssignableFrom(java.lang.Class<?> cls) |
check if the current ClassModlder is assignable from the
class
instance. |
boolean |
isDefaultIdentity(Identity identity) |
Test if the specified identity is the default value of the type.
|
boolean |
isDependent() |
Return true if the base type of this ClassMolder is an dependent class.
|
boolean |
isKeyGeneratorUsed() |
Return true if a key generator is used for the base type of this ClassMolder.
|
boolean |
isKeyGenUsed() |
Return true if a key generator is used for the base type of this ClassMolder.
|
void |
load(TransactionContext tx,
DepositBox locker,
ProposedEntity proposedObject,
AccessMode accessMode,
QueryResults results) |
Loads the field values.
|
void |
loadTimeStamp(TransactionContext tx,
DepositBox locker,
AccessMode suggestedAccessMode) |
|
void |
markCreate(TransactionContext tx,
OID oid,
DepositBox locker,
java.lang.Object object) |
Walk the object model and mark object that should be created.
|
void |
markDelete(TransactionContext tx,
OID oid,
DepositBox locker,
java.lang.Object object) |
Prepare to delete an object with the specified identity.
|
void |
mold(TransactionContext tx,
DepositBox locker,
ProposedEntity proposedObject,
AccessMode accessMode) |
|
java.lang.Object |
newInstance(java.lang.ClassLoader loader) |
Return a new instance of the base class with the provided ClassLoader object.
|
boolean |
preStore(TransactionContext tx,
OID oid,
DepositBox locker,
java.lang.Object object,
int timeout) |
Check the object for modification.
|
boolean |
removeRelation(TransactionContext tx,
java.lang.Object object,
ClassMolder relatedMolder,
java.lang.Object relatedObject) |
Remove the reference of a related object from an object of
the base class.
|
void |
resetResolvers() |
|
void |
revertObject(TransactionContext tx,
OID oid,
DepositBox locker,
java.lang.Object object) |
Revert the object back to the state of begining of the transaction
If the object is loaded, it will be revert as it was loaded.
|
(package private) void |
setDepends(ClassMolder dep) |
Mutator method to set the depends ClassMolder.
|
(package private) void |
setExtends(ClassMolder ext) |
Mutator method to set the extends ClassMolder.
|
void |
setIdentity(TransactionContext tx,
java.lang.Object object,
Identity identity) |
Set the identity into an object.
|
void |
store(TransactionContext tx,
OID oid,
DepositBox locker,
java.lang.Object object) |
Store a data object into the persistent storage of the base class of this
ClassMolder.
|
java.lang.String |
toString() |
|
boolean |
update(TransactionContext tx,
OID oid,
DepositBox locker,
java.lang.Object object,
AccessMode suggestedAccessMode) |
Update the object which loaded or created in the other transaction to the
persistent storage.
|
void |
updateCache(TransactionContext tx,
OID oid,
DepositBox locker,
java.lang.Object object) |
Update the dirty checking cache.
|
ClassMolder(DatingService ds, ClassDescriptorResolver classDescriptorResolver, LockEngine lock, ClassDescriptor classDescriptor, Persistence persistenceEngine) throws java.lang.ClassNotFoundException, MappingException
ds
- is the helper class for resolving depends and extends relationship
among all the ClassMolder in the same LockEngine.classDescriptorResolver
- ClassDescriptorResolver
instancelock
- the lock engine.classDescriptor
- the classDescriptor for the base class.persistenceEngine
- the Persistence for the base class.java.lang.ClassNotFoundException
- If a class cannot be loaded.MappingException
- if an error occurred with analyzing the mapping information.public ClassDescriptor getClassDescriptor()
public boolean removeRelation(TransactionContext tx, java.lang.Object object, ClassMolder relatedMolder, java.lang.Object relatedObject)
If the related object is PersistanceCapable, the field will be set null. If the related object is a Collection, then the related object will be removed from the Collection.
If any changed occurred, transactionContext.markModified will be called, to indicate the object is modified.
It method will iterate through all of the object's field and try to remove all the occurrence.
tx
- the TransactionContext of the transaction in actionobject
- the target object of the base type of this ClassMolderrelatedMolder
- the ClassMolder of the related object to be
removed from the objectrelatedObject
- the object to be removedpublic int getPriority()
public void loadTimeStamp(TransactionContext tx, DepositBox locker, AccessMode suggestedAccessMode) throws PersistenceException
PersistenceException
public void load(TransactionContext tx, DepositBox locker, ProposedEntity proposedObject, AccessMode accessMode, QueryResults results) throws PersistenceException
tx
- Currently active transaction contextlocker
- Current cache instanceproposedObject
- ProposedEntity instanceaccessMode
- Suggested access moderesults
- OQL QueryResults instanceObjectNotFoundException
- If the object in question cannot be found.PersistenceException
- For any other persistence-related problem.public void mold(TransactionContext tx, DepositBox locker, ProposedEntity proposedObject, AccessMode accessMode) throws PersistenceException
PersistenceException
public Identity create(TransactionContext tx, OID oid, DepositBox locker, java.lang.Object object) throws PersistenceException
tx
- transaction in actionoid
- the object identity of the object to be created.locker
- the dirty checking cache of the objectobject
- the object to be createdPersistenceException
public void markCreate(TransactionContext tx, OID oid, DepositBox locker, java.lang.Object object) throws PersistenceException
tx
- transaction in actionoid
- the object identity of the object to be created.locker
- the dirty checking cache of the objectobject
- the object to be createdPersistenceException
public boolean preStore(TransactionContext tx, OID oid, DepositBox locker, java.lang.Object object, int timeout) throws PersistenceException
tx
- transaction in actionoid
- the object identity of the objectlocker
- the dirty check cache for the objectobject
- the data object to be checkedtimeout
- timeout of updating the lock if neededPersistenceException
public void store(TransactionContext tx, OID oid, DepositBox locker, java.lang.Object object) throws PersistenceException
tx
- Transaction in actionoid
- the object identity of the stored objectlocker
- the dirty check cache of the objectobject
- the object to be storedPersistenceException
- If identity is missing for storage
or the identity is modifiedpublic boolean update(TransactionContext tx, OID oid, DepositBox locker, java.lang.Object object, AccessMode suggestedAccessMode) throws PersistenceException
tx
- Transaction in actionoid
- the object identity of the stored objectlocker
- the dirty check cache of the objectobject
- the object to be storedPersistenceException
public void updateCache(TransactionContext tx, OID oid, DepositBox locker, java.lang.Object object)
tx
- - transaction in actionoid
- - object's identity of the target objectlocker
- - the dirty checking cache of the target objectobject
- - the target objectpublic void delete(TransactionContext tx, OID oid) throws PersistenceException
tx
- - transaction in actionoid
- - the object identity of the target objectPersistenceException
public void markDelete(TransactionContext tx, OID oid, DepositBox locker, java.lang.Object object) throws PersistenceException
tx
- - transaction in actionoid
- - object's identity of the target objectlocker
- - the dirty checking cache of the target objectobject
- - the target objectPersistenceException
public void revertObject(TransactionContext tx, OID oid, DepositBox locker, java.lang.Object object) throws PersistenceException
tx
- - transaction in actionoid
- - the object identity of the target objectlocker
- - the dirty checking cache of the target objectobject
- - the target objectPersistenceException
public java.lang.Object newInstance(java.lang.ClassLoader loader) throws java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.ClassNotFoundException
loader
- the ClassLoader object to use to create a new object.java.lang.ClassNotFoundException
java.lang.IllegalAccessException
java.lang.InstantiationException
public AccessMode getAccessMode(AccessMode txMode)
txMode
- - the default transaction accessMode.public CallbackInterceptor getCallback()
public boolean isDefaultIdentity(Identity identity)
public Identity getIdentity(TransactionContext tx, java.lang.Object o)
tx
- the transaction context.o
- - object of the base type.public Identity getActualIdentity(TransactionContext tx, java.lang.Object o)
tx
- the transaction context.o
- - object of the base type.public Identity getActualIdentity(java.lang.ClassLoader loader, java.lang.Object o)
loader
- the current class loader.o
- - object of the base type.public void setIdentity(TransactionContext tx, java.lang.Object object, Identity identity) throws PersistenceException
tx
- the transaction context.object
- the object to set the identity.identity
- the new identity for the object.PersistenceException
public Persistence getPersistence()
public java.lang.Class<?> getJavaClass(java.lang.ClassLoader loader)
loader
- the classloader.Class
instance.public boolean isAssignableFrom(java.lang.Class<?> cls)
class
instance.cls
- the Class to check the assignationpublic java.lang.String getName()
public ClassMolder getExtends()
public ClassMolder getDepends()
public LockEngine getLockEngine()
public java.util.Properties getCacheParams()
public boolean isDependent()
void addExtendent(ClassMolder ext)
void addDependent(ClassMolder dep)
void setExtends(ClassMolder ext)
void setDepends(ClassMolder dep)
public java.lang.String toString()
toString
in class java.lang.Object
public boolean isKeyGenUsed()
public boolean isKeyGeneratorUsed()
public void expireCache(TransactionContext tx, ObjectLock locker) throws PersistenceException
tx
- The TransactionContext
locker
- The object that contains the fields to be inspectedPersistenceException
public void resetResolvers()
public java.lang.String getNamedQuery(java.lang.String name)
name
- Named query name.public NamedNativeQuery getNamedNativeQuery(java.lang.String name)
name
- Named query name.Intalio Inc. (C) 1999-2008. All rights reserved http://www.intalio.com