diff options
-rw-r--r-- | plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java | 2 | ||||
-rw-r--r-- | plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStore.java | 42 |
2 files changed, 35 insertions, 9 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java index 470afc01b5..27223d734c 100644 --- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java +++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java @@ -332,7 +332,7 @@ public class RevisionManager extends CDORevisionResolverImpl implements IRevisio { if (!getRepository().isSupportingRevisionDeltas()) { - throw new IllegalArgumentException("Cannot retrieved origin revision"); + throw new IllegalArgumentException("Cannot retrieve origin revision"); } } else diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStore.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStore.java index cc24c5d38a..8e4c0efb56 100644 --- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStore.java +++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStore.java @@ -10,8 +10,6 @@ **************************************************************************/ package org.eclipse.emf.cdo.server; -import org.eclipse.net4j.internal.util.lifecycle.LifecycleEventAdapter; - /** * @author Eike Stepper */ @@ -22,24 +20,47 @@ public interface IStore extends IRepositoryElement public String getStoreType(); /** + * Returns if this store supports the writing of modified revisions in terms of deltas. + * <p> + * The contract includes that store implementations with write delta support must also implement + * {@link IStoreWriter#writeRevisionDelta(org.eclipse.emf.cdo.internal.protocol.revision.delta.CDORevisionDeltaImpl) IStoreWriter.writeRevisionDelta(CDORevisionDeltaImpl)} + * to not throw an <code>UnsupportedOperationException</code>. + * * @return <code>true</code> if this store supports the writing of modified revisions in terms of deltas, * <code>false</code> otherwise. */ public boolean hasWriteDeltaSupport(); /** + * Returns if this store supports the retrieval of historical revisions. + * <p> + * The contract includes that store implementations with auditing support must also implement + * {@link IStoreReader#readRevisionByTime(org.eclipse.emf.cdo.protocol.CDOID, int, long) IStoreReader.readRevisionByTime(CDOID, int, long)} + * to not throw an <code>UnsupportedOperationException</code>. + * * @return <code>true</code> if this store supports the retrieval of historical revisions, <code>false</code> * otherwise. */ public boolean hasAuditingSupport(); /** + * Returns if this store supports the storage of concurrent revisions in separate branches. + * <p> + * Note: This is reserved for future use by the framework. There is currently no support for branching in the + * framework! + * * @return <code>true</code> if this store supports the storage of concurrent revisions in separate branches, * <code>false</code> otherwise. */ public boolean hasBranchingSupport(); /** + * Returns if this store supports the efficient lookup of object types. + * <p> + * The contract includes that store implementations with efficient type lookup support must also implement + * {@link IStoreReader#readObjectType(org.eclipse.emf.cdo.protocol.CDOID) IStoreReader.readObjectType(CDOID)} in a way + * that it performs similar to a <code>HashMap</code> or <code>TreeMap</code>. + * * @return <code>true</code> if this store supports the efficient lookup of object types, <code>false</code> * otherwise. */ @@ -56,9 +77,12 @@ public interface IStore extends IRepositoryElement * The session that should be used as a context for read access or <code>null</code>. 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 - * {@link LifecycleEventAdapter} with it to intercept cleanup on session close. Note however that the session - * can be <code>null</code>, for example during startup of the server while the repositories are - * initialized but before any user session has been opened. + * {@link org.eclipse.net4j.internal.util.lifecycle.LifecycleEventAdapter LifecycleEventAdapter} with it to + * intercept cleanup on session close. Note however that the session can be <code>null</code>, for example + * during startup of the server while the repositories are initialized but before any user session has been + * opened. + * @return a reader that can be used to read from this store in the context of the given session, never + * <code>null</code>. */ public IStoreReader getReader(ISession session); @@ -66,11 +90,13 @@ public interface IStore extends IRepositoryElement * 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. * - * @param session + * @param view * 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 {@link LifecycleEventAdapter} with it to intercept cleanup - * on view close. + * use it as a key into a cache and/or register a + * {@link org.eclipse.net4j.internal.util.lifecycle.LifecycleEventAdapter LifecycleEventAdapter} with it to + * intercept cleanup on view close. + * @return a writer that can be used to write to this store in the context of the given view, never <code>null</code>. */ public IStoreWriter getWriter(IView view); } |