Package net.ontopia.persistence.proxy
Class RWTransaction
- java.lang.Object
-
- net.ontopia.persistence.proxy.AbstractTransaction
-
- net.ontopia.persistence.proxy.RWTransaction
-
- All Implemented Interfaces:
TransactionIF
public class RWTransaction extends AbstractTransaction
INTERNAL: The read-write proxy transaction implementation.
-
-
Field Summary
Fields Modifier and Type Field Description protected Set<PersistentIF>
chgcre
protected Set<PersistentIF>
chgdel
protected Set<PersistentIF>
chgdty
protected boolean
flushing
protected Map<IdentityIF,IdentityIF>
merges
ObjectStates
ostates
boolean
trackall
-
Constructor Summary
Constructors Constructor Description RWTransaction(StorageAccessIF access)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
assignIdentity(PersistentIF object)
void
create(PersistentIF object)
INTERNAL: Registers the object with the transaction and marks it for creation in the data repository.void
delete(PersistentIF object)
INTERNAL: Unregisters the object with the transaction and marks it for deletion in the data repository.void
flush()
INTERNAL: Stores all pending changes in the data repository.boolean
isClean()
INTERNAL: Returns true the transaction is clean, i.e.boolean
isObjectClean(IdentityIF identity)
boolean
isReadOnly()
INTERNAL: Returns true if this is a read-only transaction.void
objectCreated(PersistentIF object)
void
objectDeleted(PersistentIF object)
void
objectDirty(PersistentIF object)
INTERNAL: Called by PersistentIFs when the object's data has changed.void
objectMerged(IdentityIF source, IdentityIF target)
INTERNAL: Called by other transactions to notify this transaction of committed merges.void
objectRead(IdentityIF identity)
void
prefetch(Class<?> type, int[] fields, boolean[] traverse, Collection<IdentityIF> identities)
void
prefetch(Class<?> type, int field, boolean traverse, Collection<IdentityIF> identities)
void
registerMerge(TMObject source, TMObject target)
INTERNAL: Called by RDBMSTopicMapStore to notify the transaction of a performed merge.protected void
transactionPostAbort()
protected void
transactionPostCommit()
protected void
transactionPreAbort()
protected void
transactionPreCommit()
-
Methods inherited from class net.ontopia.persistence.proxy.AbstractTransaction
_getObject, abort, begin, checkIdentityMap, checkIdentityMapAndCreateInstance, checkIdentityMapNoLRU, close, commit, createInstance, createQuery, executeQuery, extractFieldValues, extractNonDirty, getAccessRegistrar, getId, getObject, getObject, getObjectAccess, getQuery, getStorageAccess, isActive, isFieldLoaded, isObjectLoaded, loadField, registerQuery, removeIdentityMapNoLRU, toString, validate, writeIdentityMap
-
-
-
-
Field Detail
-
trackall
public boolean trackall
-
ostates
public final ObjectStates ostates
-
chgcre
protected Set<PersistentIF> chgcre
-
chgdel
protected Set<PersistentIF> chgdel
-
chgdty
protected Set<PersistentIF> chgdty
-
merges
protected Map<IdentityIF,IdentityIF> merges
-
flushing
protected boolean flushing
-
-
Constructor Detail
-
RWTransaction
public RWTransaction(StorageAccessIF access)
-
-
Method Detail
-
isClean
public boolean isClean()
Description copied from interface:TransactionIF
INTERNAL: Returns true the transaction is clean, i.e. no changes have been made.
-
isReadOnly
public boolean isReadOnly()
Description copied from interface:TransactionIF
INTERNAL: Returns true if this is a read-only transaction.
-
assignIdentity
public void assignIdentity(PersistentIF object)
-
create
public void create(PersistentIF object)
Description copied from interface:TransactionIF
INTERNAL: Registers the object with the transaction and marks it for creation in the data repository.
-
delete
public void delete(PersistentIF object)
Description copied from interface:TransactionIF
INTERNAL: Unregisters the object with the transaction and marks it for deletion in the data repository.
-
flush
public void flush()
Description copied from interface:TransactionIF
INTERNAL: Stores all pending changes in the data repository. Note that the transaction is not commited.- Specified by:
flush
in interfaceTransactionIF
- Specified by:
flush
in classAbstractTransaction
-
objectDirty
public void objectDirty(PersistentIF object)
Description copied from interface:TransactionIF
INTERNAL: Called by PersistentIFs when the object's data has changed.
-
objectRead
public void objectRead(IdentityIF identity)
-
objectCreated
public void objectCreated(PersistentIF object)
-
objectDeleted
public void objectDeleted(PersistentIF object)
-
isObjectClean
public boolean isObjectClean(IdentityIF identity)
-
registerMerge
public void registerMerge(TMObject source, TMObject target)
INTERNAL: Called by RDBMSTopicMapStore to notify the transaction of a performed merge.- Parameters:
source
-target
-
-
objectMerged
public void objectMerged(IdentityIF source, IdentityIF target)
INTERNAL: Called by other transactions to notify this transaction of committed merges. Default implementation is empty. RWTransaction notifies the added and modified objects of the merge, allowing them to update their fields as needed.- Overrides:
objectMerged
in classAbstractTransaction
- Parameters:
source
- The identity of the object merged into targettarget
- The identity of the target object that was merged
-
transactionPreCommit
protected void transactionPreCommit()
- Specified by:
transactionPreCommit
in classAbstractTransaction
-
transactionPostCommit
protected void transactionPostCommit()
- Specified by:
transactionPostCommit
in classAbstractTransaction
-
transactionPreAbort
protected void transactionPreAbort()
- Specified by:
transactionPreAbort
in classAbstractTransaction
-
transactionPostAbort
protected void transactionPostAbort()
- Specified by:
transactionPostAbort
in classAbstractTransaction
-
prefetch
public void prefetch(Class<?> type, int field, boolean traverse, Collection<IdentityIF> identities)
- Specified by:
prefetch
in interfaceTransactionIF
- Overrides:
prefetch
in classAbstractTransaction
-
prefetch
public void prefetch(Class<?> type, int[] fields, boolean[] traverse, Collection<IdentityIF> identities)
- Specified by:
prefetch
in interfaceTransactionIF
- Overrides:
prefetch
in classAbstractTransaction
-
-