org.eclipse.emf.cdo.spi.server

## Class Store

- java.lang.Object
- - org.eclipse.net4j.util.event.Notifier
  - - org.eclipse.net4j.util.lifecycle.Lifecycle
    - - org.eclipse.emf.cdo.spi.server.Store

- All Implemented Interfaces:
    IStore, InternalStore, INotifier, IDeactivateable, 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
  Author:
    Eike Stepper

- - ### 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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static long` | `UNSPECIFIED_DATE` Deprecated. Use CDOBranchPoint.UNSPECIFIED_DATE

    - ### Fields inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle

      `USE_LABEL`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Store(java.lang.String type)`
    `Store(java.lang.String type, java.util.Set<CDOID.ObjectType> objectIDTypes, java.util.Set<IStore.ChangeFormat> supportedChangeFormats, java.util.Set<IStore.RevisionTemporality> supportedRevisionTemporalities, java.util.Set<IStore.RevisionParallelism> supportedRevisionParallelisms)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static IStoreAccessor.QueryResourcesContext.ExactMatch` | `createExactMatchContext(CDOID folderID, java.lang.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()`
    `java.util.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()`
    `java.util.Set<IStore.ChangeFormat>` | `getSupportedChangeFormats()`
    `java.util.Set<IStore.RevisionParallelism>` | `getSupportedRevisionParallelisms()`
    `java.util.Set<IStore.RevisionTemporality>` | `getSupportedRevisionTemporalities()`
    `java.lang.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 java.lang.String` | `idToString(CDOID id)`
    `boolean` | `isDropAllDataOnActivate()`
    `protected void` | `releaseAccessor(StoreAccessorBase accessor)`
    `protected static <T> java.util.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(java.util.Set<CDOID.ObjectType> objectIDTypes)`
    `void` | `setRepository(IRepository repository)`
    `void` | `setRevisionParallelism(IStore.RevisionParallelism revisionParallelism)`
    `void` | `setRevisionTemporality(IStore.RevisionTemporality revisionTemporality)`
    `static CDOID` | `stringToID(java.lang.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(java.lang.String type,
                       java.util.Set<CDOID.ObjectType> objectIDTypes,
                       java.util.Set<IStore.ChangeFormat> supportedChangeFormats,
                       java.util.Set<IStore.RevisionTemporality> supportedRevisionTemporalities,
                       java.util.Set<IStore.RevisionParallelism> supportedRevisionParallelisms)

      Since:
        3.0

    - #### Store

          public Store(java.lang.String type)

      Since:
        4.2

  - ### Method Detail

    - #### getType

          public final java.lang.String getType()

      Specified by:
        `getType` in interface `IStore`

    - #### getObjectIDTypes

          public java.util.Set<CDOID.ObjectType> getObjectIDTypes()

      Specified by:
        `getObjectIDTypes` in interface `IStore`
      Since:
        3.0

    - #### setObjectIDTypes

          protected void setObjectIDTypes(java.util.Set<CDOID.ObjectType> objectIDTypes)

      Since:
        4.0

    - #### getSupportedChangeFormats

          public java.util.Set<IStore.ChangeFormat> getSupportedChangeFormats()

      Specified by:
        `getSupportedChangeFormats` in interface `IStore`

    - #### getSupportedRevisionTemporalities

          public java.util.Set<IStore.RevisionTemporality> getSupportedRevisionTemporalities()

      Specified by:
        `getSupportedRevisionTemporalities` in interface `IStore`

    - #### getSupportedRevisionParallelisms

          public final java.util.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

          @SafeVarargs
          protected static <T> java.util.Set<T> set(T... elements)

    - #### idToString

          public static java.lang.String idToString(CDOID id)

      Since:
        4.0

    - #### stringToID

          public static CDOID stringToID(java.lang.String string)

      Since:
        4.0

    - #### createExactMatchContext

          public static IStoreAccessor.QueryResourcesContext.ExactMatch createExactMatchContext(CDOID folderID,
                                                                                                java.lang.String name,
                                                                                                CDOBranchPoint branchPoint)

      Since:
        3.0

Copyright (c) 2004-2019 Eike Stepper (Loehne, Germany) and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html