Package org.eclipse.emf.cdo.spi.server
Class StoreAccessorBase
java.lang.Object
org.eclipse.net4j.util.event.Notifier
org.eclipse.net4j.util.lifecycle.Lifecycle
org.eclipse.emf.cdo.spi.server.StoreAccessorBase
- All Implemented Interfaces:
IQueryHandlerProvider
,IStoreAccessor
,InternalCDOBranchManager.BranchLoader
,InternalCDOCommitInfoManager.CommitInfoLoader
,org.eclipse.net4j.util.event.INotifier
,org.eclipse.net4j.util.event.INotifier.INotifier2
,org.eclipse.net4j.util.lifecycle.IDeactivateable
,org.eclipse.net4j.util.lifecycle.ILifecycle
,org.eclipse.net4j.util.lifecycle.ILifecycle.DeferrableActivation
- Direct Known Subclasses:
StoreAccessor
public abstract class StoreAccessorBase
extends org.eclipse.net4j.util.lifecycle.Lifecycle
implements IStoreAccessor
If the meaning of this type isn't clear, there really should be more of a description here...
- Since:
- 4.0
- Author:
- Eike Stepper
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
If the meaning of this type isn't clear, there really should be more of a description here...Nested classes/interfaces inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle
org.eclipse.net4j.util.lifecycle.ILifecycle.DeferrableActivation
Nested classes/interfaces inherited from interface org.eclipse.net4j.util.event.INotifier
org.eclipse.net4j.util.event.INotifier.INotifier2
Nested classes/interfaces inherited from interface org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranchManager.BranchLoader
InternalCDOBranchManager.BranchLoader.BranchInfo, InternalCDOBranchManager.BranchLoader.SubBranchInfo
Nested classes/interfaces inherited from interface org.eclipse.emf.cdo.server.IStoreAccessor
IStoreAccessor.CommitContext, IStoreAccessor.DurableLocking, IStoreAccessor.DurableLocking2, IStoreAccessor.QueryResourcesContext, IStoreAccessor.QueryXRefsContext, IStoreAccessor.Raw, IStoreAccessor.Raw2, IStoreAccessor.UnitSupport
-
Field Summary
Fields inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle
USE_LABEL
Fields inherited from interface org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranchManager.BranchLoader
NEW_BRANCH, NEW_LOCAL_BRANCH
-
Constructor Summary
ModifierConstructorDescriptionprotected
StoreAccessorBase
(Store store, ISession session) protected
StoreAccessorBase
(Store store, ITransaction transaction) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addIDMappings
(InternalCommitContext commitContext, org.eclipse.net4j.util.om.monitor.OMMonitor monitor) Add ID mappings for all new objects of a transaction to the commit context.final void
commit
(org.eclipse.net4j.util.om.monitor.OMMonitor monitor) Flushes to the back-end and makes available the data for others.protected abstract void
doCommit
(org.eclipse.net4j.util.om.monitor.OMMonitor monitor) protected void
protected abstract void
doRollback
(IStoreAccessor.CommitContext commitContext) protected void
protected abstract void
doWrite
(InternalCommitContext context, org.eclipse.net4j.util.om.monitor.OMMonitor monitor) protected abstract CDOID
getNextCDOID
(CDORevision revision) Returns the session this accessor is associated with.getStore()
Returns the store this accessor is associated with.Returns the transaction this accessor is associated with ifIStoreAccessor.isReader()
returnsfalse
,null
otherwise.boolean
isReader()
Returnstrue
if this accessor has been configured for read-only access to the back-end,false
otherwise.loadCommitData
(long timeStamp) readResourceID
(CDOID folderID, String name, CDOBranchPoint branchPoint) Returns theCDOID
of the resource node with the given folderID and name if a resource with this folderID and name exists in the store,null
otherwise.void
release()
final void
rollback()
Note:IStoreAccessor.write(InternalCommitContext, OMMonitor)
andIStoreAccessor.rollback()
could be called from different threads.final void
write
(InternalCommitContext context, org.eclipse.net4j.util.om.monitor.OMMonitor monitor) Called before committing.Methods inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle
activate, checkActive, checkArg, checkArg, checkInactive, checkNull, checkState, checkState, deactivate, deferredActivate, doActivate, doAfterActivate, doBeforeActivate, doBeforeDeactivate, doDeactivate, dump, getLifecycleState, isActive, isDeferredActivation, toString
Methods inherited from class org.eclipse.net4j.util.event.Notifier
addListener, addUniqueListener, fireEvent, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListener, hasListeners, lastListenerRemoved, listenerAdded, listenerRemoved, removeListener
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.eclipse.net4j.util.event.INotifier
addListener, getListeners, hasListeners, removeListener
Methods inherited from interface org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranchManager.BranchLoader
createBranch, loadBranch, loadBranches, loadSubBranches
Methods inherited from interface org.eclipse.emf.cdo.spi.common.commit.InternalCDOCommitInfoManager.CommitInfoLoader
loadCommitInfos
Methods inherited from interface org.eclipse.emf.cdo.server.IQueryHandlerProvider
getQueryHandler
Methods inherited from interface org.eclipse.emf.cdo.server.IStoreAccessor
createChunkReader, handleLobs, handleRevisions, loadLob, loadPackageUnit, queryLobs, queryResources, queryXRefs, readChangeSet, readPackageUnits, readRevision, readRevisionByVersion, writePackageUnits
-
Constructor Details
-
StoreAccessorBase
-
StoreAccessorBase
-
-
Method Details
-
getStore
Description copied from interface:IStoreAccessor
Returns the store this accessor is associated with.- Specified by:
getStore
in interfaceIStoreAccessor
-
isReader
public boolean isReader()Description copied from interface:IStoreAccessor
Returnstrue
if this accessor has been configured for read-only access to the back-end,false
otherwise.- Specified by:
isReader
in interfaceIStoreAccessor
-
getSession
Description copied from interface:IStoreAccessor
Returns the session this accessor is associated with.- Specified by:
getSession
in interfaceIStoreAccessor
- Since:
- 3.0
-
getTransaction
Description copied from interface:IStoreAccessor
Returns the transaction this accessor is associated with ifIStoreAccessor.isReader()
returnsfalse
,null
otherwise.- Specified by:
getTransaction
in interfaceIStoreAccessor
-
release
public void release()- Specified by:
release
in interfaceIStoreAccessor
-
write
public final void write(InternalCommitContext context, org.eclipse.net4j.util.om.monitor.OMMonitor monitor) Description copied from interface:IStoreAccessor
Called before committing. An instance of this accessor represents an instance of a back-end transaction. Could be called multiple times before commit it called.IStoreAccessor.commit(OMMonitor)
orIStoreAccessor.rollback()
will be called after any numbers ofIStoreAccessor.write(InternalCommitContext, OMMonitor)
.Note:
IStoreAccessor.write(InternalCommitContext, OMMonitor)
andIStoreAccessor.commit(OMMonitor)
could be called from different threads.- Specified by:
write
in interfaceIStoreAccessor
- Since:
- 3.0
-
doWrite
protected abstract void doWrite(InternalCommitContext context, org.eclipse.net4j.util.om.monitor.OMMonitor monitor) -
commit
public final void commit(org.eclipse.net4j.util.om.monitor.OMMonitor monitor) Description copied from interface:IStoreAccessor
Flushes to the back-end and makes available the data for others.Note:
IStoreAccessor.write(InternalCommitContext, OMMonitor)
andIStoreAccessor.commit(OMMonitor)
could be called from different threads.Note: Implementors should detect if dirty write occurred. In this case it should throw an exception.
if (revision.getVersion() != revisionDelta.getOriginVersion()) { throw new ConcurrentModificationException("Trying to update object " + revisionDelta.getID() + " that was already modified"); }
- Specified by:
commit
in interfaceIStoreAccessor
- Since:
- 3.0
-
doCommit
protected abstract void doCommit(org.eclipse.net4j.util.om.monitor.OMMonitor monitor) - Since:
- 3.0
-
rollback
public final void rollback()Description copied from interface:IStoreAccessor
Note:IStoreAccessor.write(InternalCommitContext, OMMonitor)
andIStoreAccessor.rollback()
could be called from different threads.- Specified by:
rollback
in interfaceIStoreAccessor
-
doRollback
-
readResourceID
Description copied from interface:IStoreAccessor
Returns theCDOID
of the resource node with the given folderID and name if a resource with this folderID and name exists in the store,null
otherwise.- Specified by:
readResourceID
in interfaceIStoreAccessor
- Since:
- 3.0
-
loadCommitData
- Specified by:
loadCommitData
in interfaceInternalCDOCommitInfoManager.CommitInfoLoader
- Since:
- 3.0
-
addIDMappings
public void addIDMappings(InternalCommitContext commitContext, org.eclipse.net4j.util.om.monitor.OMMonitor monitor) Add ID mappings for all new objects of a transaction to the commit context. The implementor must, for each new object of the commit context, determine a permanent CDOID and make it known to the context by callingInternalCommitContext.addIDMapping(CDOID, CDOID)
.- Since:
- 3.0
-
getNextCDOID
-
doPassivate
- Throws:
Exception
-
doUnpassivate
- Throws:
Exception
-