Package org.eclipse.emf.cdo.server

## Interface IStore

- All Known Subinterfaces:
    `IDBStore`, `ILissomeStore`, `IMEMStore`, `IMEMStore`, `IMongoDBStore`, `InternalStore`
  All Known Implementing Classes:
    `LongIDStore`, `Store`

      public interface IStore

  Represents the physical data storage back-end of a CDO `repository`, such as a database or a file system folder.
  Author:
    Eike Stepper

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static interface` | `IStore.CanHandleClientAssignedIDs` | A marker interface for `stores` that can handle `IDs` assigned by a `client`, typically `UUIDs`.
    `static class` | `IStore.ChangeFormat` | Enumerates the possible data formats a `store` can accept for commit operations.
    `static class` | `IStore.RevisionParallelism` | Enumerates the possible branching options a `store` can accept.
    `static class` | `IStore.RevisionTemporality` | Enumerates the possible history recording options a `store` can accept.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `CDOID` | `createObjectID​(java.lang.String val)` |
    `long` | `getCreationTime()` | Returns the store creation time.
    `org.eclipse.net4j.util.om.monitor.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`.
    `java.util.Set<CDOID.ObjectType>` | `getObjectIDTypes()` |
    `java.util.Map<java.lang.String,​java.lang.String>` | `getPersistentProperties​(java.util.Set<java.lang.String> names)` | Returns a map filled with the property entries for the requested property `names` if names is not `null` and not `empty`, all existing property entries otherwise.
    `IStoreAccessor` | `getReader​(ISession session)` | Returns a reader that can be used to read from this store in the context of the given session.
    `IRepository` | `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.
    `boolean` | `isFirstStart()` | Returns `true`if this store was activated for the first time, `false` otherwise.
    `void` | `removePersistentProperties​(java.util.Set<java.lang.String> names)` |
    `void` | `setPersistentProperties​(java.util.Map<java.lang.String,​java.lang.String> properties)` |

- - ### Method Detail

    - #### getRepository

          IRepository getRepository()

      Since:
        2.0

    - #### getType

          java.lang.String getType()

      Since:
        2.0

    - #### getObjectIDTypes

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

      Since:
        3.0

    - #### createObjectID

          CDOID createObjectID​(java.lang.String val)

      Since:
        4.0

    - #### getSupportedChangeFormats

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

      Since:
        2.0

    - #### getSupportedRevisionTemporalities

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

      Since:
        2.0

    - #### getSupportedRevisionParallelisms

          java.util.Set<IStore.RevisionParallelism> getSupportedRevisionParallelisms()

      Since:
        2.0

    - #### getRevisionTemporality

          IStore.RevisionTemporality getRevisionTemporality()

      Since:
        2.0

    - #### getRevisionParallelism

          IStore.RevisionParallelism getRevisionParallelism()

      Since:
        2.0

    - #### isFirstStart

          boolean isFirstStart()

      Returns `true`if this store was activated for the first time, `false` otherwise.
      Since:
        4.0

    - #### getCreationTime

          long getCreationTime()

      Returns the store creation time.
      Since:
        2.0

    - #### getLastBranchID

          int getLastBranchID()

      Returns the id of the last branch that has been created in this store.
      Since:
        3.0

    - #### getLastLocalBranchID

          int getLastLocalBranchID()

      Returns the id of the last local branch that has been created in this store.
      Since:
        3.0

    - #### getLastCommitTime

          long getLastCommitTime()

      Returns the time stamp of the last successful commit operation.
      Since:
        3.0

    - #### getLastNonLocalCommitTime

          long getLastNonLocalCommitTime()

      Returns the time stamp of the last successful commit operation to a non-local `branch`.
      Since:
        3.0

    - #### getPersistentProperties

          java.util.Map<java.lang.String,​java.lang.String> getPersistentProperties​(java.util.Set<java.lang.String> names)

      Returns a map filled with the property entries for the requested property `names` if names is not `null` and not `empty`, all existing property entries otherwise.
      Since:
        4.0

    - #### setPersistentProperties

          void setPersistentProperties​(java.util.Map<java.lang.String,​java.lang.String> properties)

      Since:
        4.0

    - #### removePersistentProperties

          void removePersistentProperties​(java.util.Set<java.lang.String> names)

      Since:
        4.0

    - #### getReader

          IStoreAccessor getReader​(ISession session)

      Returns a reader that can be used to read from this store in the context of the given session.
      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`.
      Since:
        2.0

    - #### getWriter

          IStoreAccessor getWriter​(ITransaction transaction)

      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.
      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`.
      Since:
        2.0

    - #### getIndicatingCommitDistributor

          org.eclipse.net4j.util.om.monitor.ProgressDistributor getIndicatingCommitDistributor()

      Since:
        2.0