diff options
author | Eike Stepper | 2015-02-18 07:48:30 +0000 |
---|---|---|
committer | Eike Stepper | 2015-02-18 14:43:00 +0000 |
commit | 11849bb512f96679918611b3558bb4cf9ab653d9 (patch) | |
tree | 3decc428a174305da06f4bdd6cf3d5f48d210ede /plugins/org.eclipse.emf.cdo.workspace | |
parent | e2cca3f21b3a8dd87ea3985911099c164763989a (diff) | |
download | cdo-11849bb512f96679918611b3558bb4cf9ab653d9.tar.gz cdo-11849bb512f96679918611b3558bb4cf9ab653d9.tar.xz cdo-11849bb512f96679918611b3558bb4cf9ab653d9.zip |
[458349] Consolidate UI
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=458349
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.workspace')
2 files changed, 28 insertions, 5 deletions
diff --git a/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/internal/workspace/CDOWorkspaceImpl.java b/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/internal/workspace/CDOWorkspaceImpl.java index a10c0df4b9..b42afa2bb6 100644 --- a/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/internal/workspace/CDOWorkspaceImpl.java +++ b/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/internal/workspace/CDOWorkspaceImpl.java @@ -611,6 +611,11 @@ public class CDOWorkspaceImpl extends Notifier implements InternalCDOWorkspace public void revert() { CDOChangeSetData revertData = getLocalChanges(false); + revert(revertData); + } + + public void revert(CDOChangeSetData revertData) + { final CDOBranch localBranch = head.getBranch(); IStoreAccessor.Raw accessor = getLocalWriter(null); @@ -658,13 +663,14 @@ public class CDOWorkspaceImpl extends Notifier implements InternalCDOWorkspace InternalCDORevisionManager revisionManager = localSession.getRevisionManager(); revisionManager.getRevision(id, head, CDORevision.UNCHUNKED, CDORevision.DEPTH_NONE, true, synthetics); - int version = synthetics[0].getVersion() - 1; + int max = synthetics[0].getVersion(); EClass eClass = synthetics[0].getEClass(); InternalCDORevision baseRevision = (InternalCDORevision)base.getRevision(id); - for (int v = baseRevision.getVersion(); v <= version; v++) + for (int v = baseRevision.getVersion(); v <= max; v++) { - accessor.rawDelete(id, v, localBranch, eClass, new Monitor()); + int version = v == max ? -max : v; + accessor.rawDelete(id, version, localBranch, eClass, new Monitor()); } accessor.rawStore(baseRevision, new Monitor()); @@ -983,7 +989,7 @@ public class CDOWorkspaceImpl extends Notifier implements InternalCDOWorkspace return getLocalChanges(true); } - private CDOChangeSetData getLocalChanges(boolean forward) + public CDOChangeSetData getLocalChanges(boolean forward) { Set<CDOID> ids = base.getIDs(); @@ -1103,7 +1109,7 @@ public class CDOWorkspaceImpl extends Notifier implements InternalCDOWorkspace return session; } - protected InternalCDOView[] getViews() + public InternalCDOView[] getViews() { synchronized (views) { diff --git a/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/spi/workspace/InternalCDOWorkspace.java b/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/spi/workspace/InternalCDOWorkspace.java index 7cbd695a4c..73f95a148c 100644 --- a/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/spi/workspace/InternalCDOWorkspace.java +++ b/plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/spi/workspace/InternalCDOWorkspace.java @@ -11,6 +11,7 @@ package org.eclipse.emf.cdo.spi.workspace; import org.eclipse.emf.cdo.common.CDOCommonRepository.IDGenerationLocation; +import org.eclipse.emf.cdo.common.commit.CDOChangeSetData; import org.eclipse.emf.cdo.session.CDOSessionConfigurationFactory; import org.eclipse.emf.cdo.spi.server.InternalRepository; import org.eclipse.emf.cdo.workspace.CDOWorkspace; @@ -18,6 +19,7 @@ import org.eclipse.emf.cdo.workspace.CDOWorkspace; import org.eclipse.net4j.util.container.IManagedContainer; import org.eclipse.emf.spi.cdo.InternalCDOSession; +import org.eclipse.emf.spi.cdo.InternalCDOView; /** * If the meaning of this type isn't clear, there really should be more of a description here... @@ -39,6 +41,11 @@ public interface InternalCDOWorkspace extends CDOWorkspace public IManagedContainer getContainer(); /** + * @since 4.2 + */ + public InternalCDOView[] getViews(); + + /** * @since 4.1 */ public IDGenerationLocation getIDGenerationLocation(); @@ -50,7 +57,17 @@ public interface InternalCDOWorkspace extends CDOWorkspace public InternalCDOSession getLocalSession(); /** + * @since 4.2 + */ + public CDOChangeSetData getLocalChanges(boolean forward); + + /** * @since 4.1 */ public CDOSessionConfigurationFactory getRemoteSessionConfigurationFactory(); + + /** + * @since 4.2 + */ + public void revert(CDOChangeSetData revertData); } |