diff options
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.java | 60 |
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 |