Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java63
1 files changed, 32 insertions, 31 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 e8e790e4bf..94c511380e 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
@@ -15,14 +15,14 @@ package org.eclipse.emf.cdo.internal.server;
import org.eclipse.emf.cdo.internal.protocol.model.CDOClassImpl;
import org.eclipse.emf.cdo.internal.protocol.model.CDOFeatureImpl;
import org.eclipse.emf.cdo.internal.protocol.model.resource.CDOPathFeatureImpl;
-import org.eclipse.emf.cdo.internal.protocol.revision.CDORevisionImpl;
import org.eclipse.emf.cdo.internal.protocol.revision.CDORevisionResolverImpl;
-import org.eclipse.emf.cdo.internal.protocol.revision.CDORevisionImpl.MoveableList;
+import org.eclipse.emf.cdo.internal.protocol.revision.InternalCDORevision;
import org.eclipse.emf.cdo.internal.protocol.revision.delta.CDORevisionDeltaImpl;
import org.eclipse.emf.cdo.protocol.CDOID;
import org.eclipse.emf.cdo.protocol.model.CDOFeature;
import org.eclipse.emf.cdo.protocol.revision.CDOReferenceProxy;
import org.eclipse.emf.cdo.protocol.revision.CDORevision;
+import org.eclipse.emf.cdo.protocol.revision.CDORevisionUtil;
import org.eclipse.emf.cdo.server.IRepository;
import org.eclipse.emf.cdo.server.IRevisionManager;
import org.eclipse.emf.cdo.server.IStoreChunkReader;
@@ -30,6 +30,7 @@ import org.eclipse.emf.cdo.server.IStoreReader;
import org.eclipse.emf.cdo.server.IStoreWriter;
import org.eclipse.emf.cdo.server.IStoreChunkReader.Chunk;
+import org.eclipse.net4j.util.collection.MoveableList;
import org.eclipse.net4j.util.transaction.ITransaction;
import org.eclipse.net4j.util.transaction.ITransactionalOperation;
@@ -57,7 +58,7 @@ public class RevisionManager extends CDORevisionResolverImpl implements IRevisio
return repository;
}
- public void addRevision(ITransaction<IStoreWriter> storeTransaction, CDORevisionImpl revision)
+ public void addRevision(ITransaction<IStoreWriter> storeTransaction, InternalCDORevision revision)
{
storeTransaction.execute(new AddRevisionOperation(revision));
}
@@ -79,51 +80,51 @@ public class RevisionManager extends CDORevisionResolverImpl implements IRevisio
}
@Override
- protected CDORevisionImpl verifyRevision(CDORevisionImpl revision, int referenceChunk)
+ protected InternalCDORevision verifyRevision(InternalCDORevision revision, int referenceChunk)
{
IStoreReader storeReader = null;
revision = super.verifyRevision(revision, referenceChunk);
if (repository.isVerifyingRevisions())
{
storeReader = StoreUtil.getReader();
- revision = storeReader.verifyRevision(revision);
+ revision = (InternalCDORevision)storeReader.verifyRevision(revision);
}
ensureChunks(revision, referenceChunk, storeReader);
return revision;
}
- protected void ensureChunks(CDORevisionImpl revision, int referenceChunk, IStoreReader storeReader)
+ protected void ensureChunks(InternalCDORevision revision, int referenceChunk, IStoreReader storeReader)
{
- CDOClassImpl cdoClass = revision.getCDOClass();
+ CDOClassImpl cdoClass = (CDOClassImpl)revision.getCDOClass();
CDOFeatureImpl[] features = cdoClass.getAllFeatures();
for (int i = 0; i < features.length; i++)
{
CDOFeatureImpl feature = features[i];
if (feature.isReference() && feature.isMany())
{
- MoveableList list = revision.getList(feature);
+ MoveableList<Object> list = revision.getList(feature);
int chunkEnd = Math.min(referenceChunk, list.size());
storeReader = ensureChunk(revision, feature, storeReader, list, 0, chunkEnd);
}
}
}
- public IStoreReader ensureChunk(CDORevisionImpl revision, CDOFeature feature, int chunkStart, int chunkEnd)
+ public IStoreReader ensureChunk(InternalCDORevision revision, CDOFeature feature, int chunkStart, int chunkEnd)
{
- MoveableList list = revision.getList(feature);
+ MoveableList<Object> list = revision.getList(feature);
chunkEnd = Math.min(chunkEnd, list.size());
return ensureChunk(revision, feature, StoreUtil.getReader(), list, chunkStart, chunkEnd);
}
- protected IStoreReader ensureChunk(CDORevisionImpl revision, CDOFeature feature, IStoreReader storeReader,
- MoveableList list, int chunkStart, int chunkEnd)
+ protected IStoreReader ensureChunk(InternalCDORevision revision, CDOFeature feature, IStoreReader storeReader,
+ MoveableList<Object> list, int chunkStart, int chunkEnd)
{
IStoreChunkReader chunkReader = null;
int fromIndex = -1;
for (int j = chunkStart; j < chunkEnd; j++)
{
- if (list.get(j) == CDORevisionImpl.UNINITIALIZED)
+ if (list.get(j) == InternalCDORevision.UNINITIALIZED)
{
if (fromIndex == -1)
{
@@ -201,34 +202,34 @@ public class RevisionManager extends CDORevisionResolverImpl implements IRevisio
}
@Override
- protected CDORevisionImpl loadRevision(CDOID id, int referenceChunk)
+ protected InternalCDORevision loadRevision(CDOID id, int referenceChunk)
{
IStoreReader storeReader = StoreUtil.getReader();
- return (CDORevisionImpl)storeReader.readRevision(id, referenceChunk);
+ return (InternalCDORevision)storeReader.readRevision(id, referenceChunk);
}
@Override
- protected CDORevisionImpl loadRevisionByTime(CDOID id, int referenceChunk, long timeStamp)
+ protected InternalCDORevision loadRevisionByTime(CDOID id, int referenceChunk, long timeStamp)
{
IStoreReader storeReader = StoreUtil.getReader();
- return (CDORevisionImpl)storeReader.readRevisionByTime(id, referenceChunk, timeStamp);
+ return (InternalCDORevision)storeReader.readRevisionByTime(id, referenceChunk, timeStamp);
}
@Override
- protected CDORevisionImpl loadRevisionByVersion(CDOID id, int referenceChunk, int version)
+ protected InternalCDORevision loadRevisionByVersion(CDOID id, int referenceChunk, int version)
{
IStoreReader storeReader = StoreUtil.getReader();
- return (CDORevisionImpl)storeReader.readRevisionByVersion(id, referenceChunk, version);
+ return (InternalCDORevision)storeReader.readRevisionByVersion(id, referenceChunk, version);
}
@Override
- protected List<CDORevisionImpl> loadRevisions(Collection<CDOID> ids, int referenceChunk)
+ protected List<InternalCDORevision> loadRevisions(Collection<CDOID> ids, int referenceChunk)
{
IStoreReader storeReader = StoreUtil.getReader();
- List<CDORevisionImpl> revisions = new ArrayList<CDORevisionImpl>();
+ List<InternalCDORevision> revisions = new ArrayList<InternalCDORevision>();
for (CDOID id : ids)
{
- CDORevisionImpl revision = (CDORevisionImpl)storeReader.readRevision(id, referenceChunk);
+ InternalCDORevision revision = (InternalCDORevision)storeReader.readRevision(id, referenceChunk);
revisions.add(revision);
}
@@ -236,13 +237,13 @@ public class RevisionManager extends CDORevisionResolverImpl implements IRevisio
}
@Override
- protected List<CDORevisionImpl> loadRevisionsByTime(Collection<CDOID> ids, int referenceChunk, long timeStamp)
+ protected List<InternalCDORevision> loadRevisionsByTime(Collection<CDOID> ids, int referenceChunk, long timeStamp)
{
IStoreReader storeReader = StoreUtil.getReader();
- List<CDORevisionImpl> revisions = new ArrayList<CDORevisionImpl>();
+ List<InternalCDORevision> revisions = new ArrayList<InternalCDORevision>();
for (CDOID id : ids)
{
- CDORevisionImpl revision = (CDORevisionImpl)storeReader.readRevisionByTime(id, referenceChunk, timeStamp);
+ InternalCDORevision revision = (InternalCDORevision)storeReader.readRevisionByTime(id, referenceChunk, timeStamp);
revisions.add(revision);
}
@@ -268,9 +269,9 @@ public class RevisionManager extends CDORevisionResolverImpl implements IRevisio
*/
private final class AddRevisionOperation implements ITransactionalOperation<IStoreWriter>
{
- private CDORevisionImpl revision;
+ private InternalCDORevision revision;
- private AddRevisionOperation(CDORevisionImpl revision)
+ private AddRevisionOperation(InternalCDORevision revision)
{
this.revision = revision;
}
@@ -303,7 +304,7 @@ public class RevisionManager extends CDORevisionResolverImpl implements IRevisio
{
private CDORevisionDeltaImpl revisionDelta;
- private CDORevisionImpl dirtyRevision = null;
+ private InternalCDORevision dirtyRevision = null;
private AddRevisionDeltaOperation(CDORevisionDeltaImpl revisionDelta)
{
@@ -319,14 +320,14 @@ public class RevisionManager extends CDORevisionResolverImpl implements IRevisio
}
else
{
- CDORevisionImpl oldRevision = getRevisionByVersion(revisionDelta.getID(), CDORevision.UNCHUNKED, revisionDelta
- .getOriginVersion(), true);
+ InternalCDORevision oldRevision = getRevisionByVersion(revisionDelta.getID(), CDORevision.UNCHUNKED,
+ revisionDelta.getOriginVersion(), true);
if (oldRevision == null)
{
throw new IllegalStateException("Can not retrieve origin revision");
}
- dirtyRevision = new CDORevisionImpl(oldRevision);
+ dirtyRevision = (InternalCDORevision)CDORevisionUtil.copy(oldRevision);
revisionDelta.apply(dirtyRevision);
// Can throw an exception if duplicate

Back to the top