org.eclipse.emf.cdo.spi.server
Class Store

java.lang.Object
  extended by org.eclipse.net4j.util.event.Notifier
      extended by org.eclipse.net4j.util.lifecycle.Lifecycle
          extended by org.eclipse.emf.cdo.spi.server.Store
All Implemented Interfaces:
IStore, InternalStore, INotifier, ILifecycle, ILifecycle.DeferrableActivation
Direct Known Subclasses:
LongIDStore

public abstract class Store
extends Lifecycle
implements InternalStore

If the meaning of this type isn't clear, there really should be more of a description here...

Since:
2.0

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.eclipse.emf.cdo.spi.server.InternalStore
InternalStore.NoChangeSets, InternalStore.NoCommitInfos, InternalStore.NoDurableLocking, InternalStore.NoExternalReferences, InternalStore.NoFeatureMaps, InternalStore.NoHandleRevisions, InternalStore.NoLargeObjects, InternalStore.NoQueryXRefs, InternalStore.NoRawAccess
 
Nested classes/interfaces inherited from interface org.eclipse.emf.cdo.server.IStore
IStore.CanHandleClientAssignedIDs, IStore.ChangeFormat, IStore.RevisionParallelism, IStore.RevisionTemporality
 
Nested classes/interfaces inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle
ILifecycle.DeferrableActivation
 
Field Summary
static long UNSPECIFIED_DATE
          Deprecated. Use CDOBranchPoint.UNSPECIFIED_DATE
 
Fields inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle
USE_LABEL
 
Constructor Summary
Store(String type)
           
Store(String type, Set<CDOID.ObjectType> objectIDTypes, Set<IStore.ChangeFormat> supportedChangeFormats, Set<IStore.RevisionTemporality> supportedRevisionTemporalities, Set<IStore.RevisionParallelism> supportedRevisionParallelisms)
           
 
Method Summary
static IStoreAccessor.QueryResourcesContext.ExactMatch createExactMatchContext(CDOID folderID, String name, CDOBranchPoint branchPoint)
           
protected abstract  IStoreAccessor createReader(ISession session)
          Creates and returns a new IStoreAccessor instance.
 InternalCDORevision createRevision(EClass eClass, CDOID id)
           
protected abstract  IStoreAccessor createWriter(ITransaction transaction)
          Creates and returns a new IStoreAccessor instance.
 ProgressDistributor getIndicatingCommitDistributor()
           
 int getLastBranchID()
          Returns the id of the last branch that has been created in this store.
 long getLastCommitTime()
          Returns the time stamp of the last successful commit operation.
 int getLastLocalBranchID()
          Returns the id of the last local branch that has been created in this store.
 long getLastNonLocalCommitTime()
          Returns the time stamp of the last successful commit operation to a non-local branch.
 int getNextBranchID()
           
 int getNextLocalBranchID()
           
 Set<CDOID.ObjectType> getObjectIDTypes()
           
 IStoreAccessor getReader(ISession session)
          Returns a reader that can be used to read from this store in the context of the given session.
protected abstract  StoreAccessorPool getReaderPool(ISession session, boolean forReleasing)
          Returns a pool that may contain IStoreAccessor instances that are compatible with the given session.
 InternalRepository getRepository()
           
 IStore.RevisionParallelism getRevisionParallelism()
           
 IStore.RevisionTemporality getRevisionTemporality()
           
 Set<IStore.ChangeFormat> getSupportedChangeFormats()
           
 Set<IStore.RevisionParallelism> getSupportedRevisionParallelisms()
           
 Set<IStore.RevisionTemporality> getSupportedRevisionTemporalities()
           
 String getType()
           
 IStoreAccessor getWriter(ITransaction transaction)
          Returns a writer that can be used to write to this store in the context of the given view.
protected abstract  StoreAccessorPool getWriterPool(IView view, boolean forReleasing)
          Returns a pool that may contain IStoreAccessor instances that are compatible with the given session.
static String idToString(CDOID id)
           
 boolean isDropAllDataOnActivate()
           
protected  void releaseAccessor(StoreAccessorBase accessor)
           
protected static
<T> Set<T>
set(T... elements)
           
 void setDropAllDataOnActivate(boolean dropAllDataOnActivate)
           
 void setLastBranchID(int lastBranchID)
           
 void setLastCommitTime(long lastCommitTime)
           
 void setLastLocalBranchID(int lastLocalBranchID)
           
 void setLastNonLocalCommitTime(long lastNonLocalCommitTime)
           
protected  void setObjectIDTypes(Set<CDOID.ObjectType> objectIDTypes)
           
 void setRepository(IRepository repository)
           
 void setRevisionParallelism(IStore.RevisionParallelism revisionParallelism)
           
 void setRevisionTemporality(IStore.RevisionTemporality revisionTemporality)
           
static CDOID stringToID(String string)
           
 
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, fireEvent, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListeners, lastListenerRemoved, removeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.eclipse.emf.cdo.spi.server.InternalStore
isLocal, setCreationTime
 
Methods inherited from interface org.eclipse.emf.cdo.server.IStore
createObjectID, getCreationTime, getPersistentProperties, isFirstStart, removePersistentProperties, setPersistentProperties
 
Methods inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle
activate, deactivate, getLifecycleState, isActive
 
Methods inherited from interface org.eclipse.net4j.util.event.INotifier
addListener, getListeners, hasListeners, removeListener
 

Field Detail

UNSPECIFIED_DATE

@Deprecated
public static final long UNSPECIFIED_DATE
Deprecated. Use CDOBranchPoint.UNSPECIFIED_DATE
Since:
3.0
See Also:
Constant Field Values
Constructor Detail

Store

public Store(String type,
             Set<CDOID.ObjectType> objectIDTypes,
             Set<IStore.ChangeFormat> supportedChangeFormats,
             Set<IStore.RevisionTemporality> supportedRevisionTemporalities,
             Set<IStore.RevisionParallelism> supportedRevisionParallelisms)
Since:
3.0

Store

public Store(String type)
Since:
4.2
Method Detail

getType

public final String getType()
Specified by:
getType in interface IStore

getObjectIDTypes

public Set<CDOID.ObjectType> getObjectIDTypes()
Specified by:
getObjectIDTypes in interface IStore
Since:
3.0

setObjectIDTypes

protected void setObjectIDTypes(Set<CDOID.ObjectType> objectIDTypes)
Since:
4.0

getSupportedChangeFormats

public Set<IStore.ChangeFormat> getSupportedChangeFormats()
Specified by:
getSupportedChangeFormats in interface IStore

getSupportedRevisionTemporalities

public Set<IStore.RevisionTemporality> getSupportedRevisionTemporalities()
Specified by:
getSupportedRevisionTemporalities in interface IStore

getSupportedRevisionParallelisms

public final Set<IStore.RevisionParallelism> getSupportedRevisionParallelisms()
Specified by:
getSupportedRevisionParallelisms in interface IStore

getRevisionTemporality

public IStore.RevisionTemporality getRevisionTemporality()
Specified by:
getRevisionTemporality in interface IStore

setRevisionTemporality

public void setRevisionTemporality(IStore.RevisionTemporality revisionTemporality)
Specified by:
setRevisionTemporality in interface InternalStore

getRevisionParallelism

public IStore.RevisionParallelism getRevisionParallelism()
Specified by:
getRevisionParallelism in interface IStore

setRevisionParallelism

public void setRevisionParallelism(IStore.RevisionParallelism revisionParallelism)
Specified by:
setRevisionParallelism in interface InternalStore

getRepository

public InternalRepository getRepository()
Specified by:
getRepository in interface IStore
Specified by:
getRepository in interface InternalStore
Since:
3.0

setRepository

public void setRepository(IRepository repository)
Specified by:
setRepository in interface InternalStore

isDropAllDataOnActivate

public boolean isDropAllDataOnActivate()
Specified by:
isDropAllDataOnActivate in interface InternalStore
Since:
4.0

setDropAllDataOnActivate

public void setDropAllDataOnActivate(boolean dropAllDataOnActivate)
Specified by:
setDropAllDataOnActivate in interface InternalStore
Since:
4.0

getLastBranchID

public int getLastBranchID()
Description copied from interface: IStore
Returns the id of the last branch that has been created in this store.

Specified by:
getLastBranchID in interface IStore
Since:
3.0

setLastBranchID

public void setLastBranchID(int lastBranchID)
Specified by:
setLastBranchID in interface InternalStore
Since:
3.0

getNextBranchID

public int getNextBranchID()
Specified by:
getNextBranchID in interface InternalStore
Since:
3.0

getLastLocalBranchID

public int getLastLocalBranchID()
Description copied from interface: IStore
Returns the id of the last local branch that has been created in this store.

Specified by:
getLastLocalBranchID in interface IStore
Since:
3.0

setLastLocalBranchID

public void setLastLocalBranchID(int lastLocalBranchID)
Specified by:
setLastLocalBranchID in interface InternalStore
Since:
3.0

getNextLocalBranchID

public int getNextLocalBranchID()
Specified by:
getNextLocalBranchID in interface InternalStore
Since:
3.0

getLastCommitTime

public long getLastCommitTime()
Description copied from interface: IStore
Returns the time stamp of the last successful commit operation.

Specified by:
getLastCommitTime in interface IStore
Since:
3.0

setLastCommitTime

public void setLastCommitTime(long lastCommitTime)
Specified by:
setLastCommitTime in interface InternalStore
Since:
3.0

getLastNonLocalCommitTime

public long getLastNonLocalCommitTime()
Description copied from interface: IStore
Returns the time stamp of the last successful commit operation to a non-local branch.

Specified by:
getLastNonLocalCommitTime in interface IStore
Since:
3.0

setLastNonLocalCommitTime

public void setLastNonLocalCommitTime(long lastNonLocalCommitTime)
Specified by:
setLastNonLocalCommitTime in interface InternalStore
Since:
3.0

getReader

public IStoreAccessor getReader(ISession session)
Description copied from interface: IStore
Returns a reader that can be used to read from this store in the context of the given session.

Specified by:
getReader in interface IStore
Parameters:
session - The session that should be used as a context for read access or null. The store implementor is free to interpret and use the session in a manner suitable for him or ignore it at all. It is meant only as a hint. Implementor can use it as a key into a cache and/or register a LifecycleEventAdapter with it to intercept cleanup on session close. Note however that the session can be null, for example during startup of the server while the repositories are initialized but before any user session has been opened.
Returns:
a reader that can be used to read from this store in the context of the given session, never null.

getWriter

public IStoreAccessor getWriter(ITransaction transaction)
Description copied from interface: IStore
Returns a writer that can be used to write to this store in the context of the given view. The given view is always marked as a transaction.

Specified by:
getWriter in interface IStore
Parameters:
transaction - The view that must be used as a context for write access. The store implementor is free to interpret and use the view in a manner suitable for him or ignore it at all. It is meant only as a hint. Implementor can use it as a key into a cache and/or register a LifecycleEventAdapter with it to intercept cleanup on view close.
Returns:
a writer that can be used to write to this store in the context of the given view, never null.

getIndicatingCommitDistributor

public ProgressDistributor getIndicatingCommitDistributor()
Specified by:
getIndicatingCommitDistributor in interface IStore

createRevision

public InternalCDORevision createRevision(EClass eClass,
                                          CDOID id)
Since:
3.0

releaseAccessor

protected void releaseAccessor(StoreAccessorBase accessor)
Since:
4.0

getReaderPool

protected abstract StoreAccessorPool getReaderPool(ISession session,
                                                   boolean forReleasing)
Returns a pool that may contain IStoreAccessor instances that are compatible with the given session. The implementor may return null to indicate that no pooling occurs. It's also left to the implementors choice how to determine the appropriate pool instance to be used for the given session, for example it could always return the same pool instance, regardless of the given session.

If the implementor of this method decides to create pools that are only compatible with certain sessions or views, then it is his responsibility to listen to REMOVED events sent by either the ISessionManager (indicating that a session is closed) or any of its sessions (indicating that a view is closed). Note: Closing a session implies that all contained views are closed sliently without firing respective events!

Parameters:
session - The context which the pool must be compatible with. Must not be null.
forReleasing - Enables lazy pool creation. The implementor is not supposed to create a new pool if false is passed. If true is passed it's up to the implementor whether to create a new pool or not.

getWriterPool

protected abstract StoreAccessorPool getWriterPool(IView view,
                                                   boolean forReleasing)
Returns a pool that may contain IStoreAccessor instances that are compatible with the given session. The implementor may return null to indicate that no pooling occurs. It's also left to the implementors choice how to determine the appropriate pool instance to be used for the given session, for example it could always return the same pool instance, regardless of the given session.

If the implementor of this method decides to create pools that are only compatible with certain sessions or views, then it is his responsibility to listen to REMOVED events sent by either the ISessionManager (indicating that a session is closed) or any of its sessions (indicating that a view is closed). Note: Closing a session implies that all contained views are closed sliently without firing respective events!

Parameters:
view - The context which the pool must be compatible with. Must not be null.
forReleasing - Enables lazy pool creation. The implementor is not supposed to create a new pool if false is passed. If true is passed it's up to the implementor whether to create a new pool or not.

createReader

protected abstract IStoreAccessor createReader(ISession session)
Creates and returns a new IStoreAccessor instance. The caller of this method is responsible for activating the new instance.


createWriter

protected abstract IStoreAccessor createWriter(ITransaction transaction)
Creates and returns a new IStoreAccessor instance. The caller of this method is responsible for activating the new instance.


set

protected static <T> Set<T> set(T... elements)

idToString

public static String idToString(CDOID id)
Since:
4.0

stringToID

public static CDOID stringToID(String string)
Since:
4.0

createExactMatchContext

public static IStoreAccessor.QueryResourcesContext.ExactMatch createExactMatchContext(CDOID folderID,
                                                                                      String name,
                                                                                      CDOBranchPoint branchPoint)
Since:
3.0


Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others.