Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java60
1 files changed, 44 insertions, 16 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java
index e3d6665791..0acdc4442f 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java
@@ -13,7 +13,6 @@ package org.eclipse.emf.cdo.internal.server;
import org.eclipse.emf.cdo.internal.protocol.revision.InternalCDORevision;
import org.eclipse.emf.cdo.protocol.id.CDOID;
-import org.eclipse.emf.cdo.protocol.model.CDOClass;
import org.eclipse.emf.cdo.protocol.model.CDOClassRef;
import org.eclipse.emf.cdo.protocol.model.CDOFeature;
import org.eclipse.emf.cdo.protocol.model.CDOPackage;
@@ -129,40 +128,69 @@ public class MEMStoreAccessor extends StoreAccessor implements IStoreReader, ISt
throw new UnsupportedOperationException();
}
- public CDOID primeNewObject(CDOClass cdoClass)
+ public void beginCommit(CommitContext context)
+ {
+ // Do nothing
+ }
+
+ public CDOID createNewResourceID(CommitContext context, int i, CDORevision newResource)
{
return getStore().getNextCDOID();
}
- public void writePackages(CDOPackage... cdoPackages)
+ public CDOID createNewObjectID(CommitContext context, int i, CDORevision newObject)
{
+ return getStore().getNextCDOID();
}
- public void writeRevision(CDORevision revision)
+ public void finishCommit(CommitContext context, CDORevision[] newResources, CDORevision[] newObjects,
+ CDORevision[] dirtyObjects)
{
- newRevisions.add(revision);
+ writeRevisions(newResources);
+ writeRevisions(newObjects);
+ writeRevisions(dirtyObjects);
+ commit();
}
- @Override
- public void writeRevisionDelta(CDORevisionDelta delta)
+ public void finishCommit(CommitContext context, CDORevision[] newResources, CDORevision[] newObjects,
+ CDORevisionDelta[] dirtyObjectDeltas)
{
- InternalCDORevision revision = (InternalCDORevision)getStore().getRevision(delta.getID());
- InternalCDORevision newRevision = (InternalCDORevision)CDORevisionUtil.copy(revision);
- delta.apply(newRevision);
- newRevisions.add(newRevision);
+ writeRevisions(newResources);
+ writeRevisions(newObjects);
+ writeRevisionDeltas(dirtyObjectDeltas);
+ commit();
}
- public void commit()
+ public void cancelCommit(CommitContext context)
{
- MEMStore store = getStore();
- for (CDORevision revision : newRevisions)
+ }
+
+ protected void writeRevisions(CDORevision[] revisions)
+ {
+ for (CDORevision revision : revisions)
{
- store.addRevision(revision);
+ newRevisions.add(revision);
}
}
- public void rollback()
+ protected void writeRevisionDeltas(CDORevisionDelta[] revisionDeltas)
{
+ for (CDORevisionDelta revisionDelta : revisionDeltas)
+ {
+ CDORevision revision = getStore().getRevision(revisionDelta.getID());
+ CDORevision newRevision = CDORevisionUtil.copy(revision);
+ revisionDelta.apply(newRevision);
+ newRevisions.add(newRevision);
+ }
+ }
+
+ protected void commit()
+ {
+ MEMStore store = getStore();
+ for (CDORevision revision : newRevisions)
+ {
+ store.addRevision(revision);
+ }
}
@Override

Back to the top