org.eclipse.emf.cdo.server

## Interface IStore

- All Known Subinterfaces:
    IDB4OStore, IDBStore, IHibernateStore, ILissomeStore, IMEMStore, IMEMStore, IMongoDBStore, InternalStore, IObjectivityStore
  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
  Apiviz
  Apiviz
    `IStore.ChangeFormat`, `IStore.RevisionTemporality`, `IStore.RevisionParallelism`
  Apiviz
    `IStoreAccessor` - - creates

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and 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 and Description
    --- | ---
    `CDOID` | `createObjectID(String val)`
    `long` | `getCreationTime()` Returns the store creation time.
    `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`.
    `Set<CDOID.ObjectType>` | `getObjectIDTypes()`
    `Map<String,String>` | `getPersistentProperties(Set<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()`
    `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.
    `boolean` | `isFirstStart()` Returns `true`if this store was activated for the first time, `false` otherwise.
    `void` | `removePersistentProperties(Set<String> names)`
    `void` | `setPersistentProperties(Map<String,String> properties)`

- - ### Method Detail

    - #### getRepository

          IRepository getRepository()

      Since:
        2.0

    - #### getType

          String getType()

      Since:
        2.0

    - #### getObjectIDTypes

          Set<CDOID.ObjectType> getObjectIDTypes()

      Since:
        3.0

    - #### createObjectID

          CDOID createObjectID(String val)

      Since:
        4.0

    - #### getSupportedChangeFormats

          Set<IStore.ChangeFormat> getSupportedChangeFormats()

      Since:
        2.0

    - #### getSupportedRevisionTemporalities

          Set<IStore.RevisionTemporality> getSupportedRevisionTemporalities()

      Since:
        2.0

    - #### getSupportedRevisionParallelisms

          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

          Map<String,String> getPersistentProperties(Set<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(Map<String,String> properties)

      Since:
        4.0

    - #### removePersistentProperties

          void removePersistentProperties(Set<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

          ProgressDistributor getIndicatingCommitDistributor()

      Since:
        2.0

Copyright (c) 2014 Eike Stepper (Berlin, 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