Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2015-02-18 07:48:30 +0000
committerEike Stepper2015-02-18 14:43:00 +0000
commit11849bb512f96679918611b3558bb4cf9ab653d9 (patch)
tree3decc428a174305da06f4bdd6cf3d5f48d210ede /plugins/org.eclipse.emf.cdo.workspace
parente2cca3f21b3a8dd87ea3985911099c164763989a (diff)
downloadcdo-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')
-rw-r--r--plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/internal/workspace/CDOWorkspaceImpl.java16
-rw-r--r--plugins/org.eclipse.emf.cdo.workspace/src/org/eclipse/emf/cdo/spi/workspace/InternalCDOWorkspace.java17
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);
}

Back to the top