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
Nested Classes Modifier and Type Class Description static class
StoreAccessorBase.CommitDataRevisionHandler
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 interface org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranchManager.BranchLoader
NEW_BRANCH, NEW_LOCAL_BRANCH
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
StoreAccessorBase(Store store, ISession session)
protected
StoreAccessorBase(Store store, ITransaction transaction)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description 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.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
doPassivate()
protected abstract void
doRollback(IStoreAccessor.CommitContext commitContext)
protected void
doUnpassivate()
protected abstract void
doWrite(InternalCommitContext context, org.eclipse.net4j.util.om.monitor.OMMonitor monitor)
protected abstract CDOID
getNextCDOID(CDORevision revision)
InternalSession
getSession()
Returns the session this accessor is associated with.Store
getStore()
Returns the store this accessor is associated with.ITransaction
getTransaction()
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.CDOCommitData
loadCommitData(long timeStamp)
CDOID
readResourceID(CDOID folderID, java.lang.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()
void
rollback()
Note:IStoreAccessor.write(InternalCommitContext, OMMonitor)
andIStoreAccessor.rollback()
could be called from different threads.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 Detail
-
StoreAccessorBase
protected StoreAccessorBase(Store store, ITransaction transaction)
-
-
Method Detail
-
getStore
public Store 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
public InternalSession getSession()
Description copied from interface:IStoreAccessor
Returns the session this accessor is associated with.- Specified by:
getSession
in interfaceIStoreAccessor
- Since:
- 3.0
-
getTransaction
public ITransaction 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
protected abstract void doRollback(IStoreAccessor.CommitContext commitContext)
-
readResourceID
public CDOID readResourceID(CDOID folderID, java.lang.String name, CDOBranchPoint branchPoint)
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
public CDOCommitData loadCommitData(long timeStamp)
- 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
protected abstract CDOID getNextCDOID(CDORevision revision)
-
doPassivate
protected void doPassivate() throws java.lang.Exception
- Throws:
java.lang.Exception
-
doUnpassivate
protected void doUnpassivate() throws java.lang.Exception
- Throws:
java.lang.Exception
-
-