Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2010-03-07 17:07:46 +0000
committerEike Stepper2010-03-07 17:07:46 +0000
commit766678c8b0bd03e84466e38f45bae70e852b0f3c (patch)
treecc5886c6a43ac1036aa71cf288b219d1a7038036 /plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/delta
parent616ff37c859f70e0a6c357995254351d9bd2be61 (diff)
downloadcdo-766678c8b0bd03e84466e38f45bae70e852b0f3c.tar.gz
cdo-766678c8b0bd03e84466e38f45bae70e852b0f3c.tar.xz
cdo-766678c8b0bd03e84466e38f45bae70e852b0f3c.zip
[256936] Support for Offline Mode
https://bugs.eclipse.org/bugs/show_bug.cgi?id=256936
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/delta')
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/delta/CDORevisionDeltaUtil.java36
1 files changed, 30 insertions, 6 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/delta/CDORevisionDeltaUtil.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/delta/CDORevisionDeltaUtil.java
index 091a4d8294..ae45192036 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/delta/CDORevisionDeltaUtil.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/delta/CDORevisionDeltaUtil.java
@@ -20,6 +20,7 @@ import org.eclipse.emf.cdo.common.id.CDOIDUtil;
import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.common.revision.CDORevisionKey;
import org.eclipse.emf.cdo.common.revision.CDORevisionManager;
+import org.eclipse.emf.cdo.common.revision.CDORevisionProvider;
import org.eclipse.emf.cdo.internal.common.commit.CDOChangeSetDataImpl;
import org.eclipse.emf.cdo.internal.common.revision.delta.CDORevisionDeltaImpl;
@@ -57,18 +58,41 @@ public final class CDORevisionDeltaUtil
/**
* @since 3.0
*/
- public static CDOChangeSetData createChangeSetData(CDOBranchPoint startPoint, CDOBranchPoint endPoint,
- Set<CDOID> ids, CDORevisionManager revisionManager)
+ public static CDOChangeSetData createChangeSetData(Set<CDOID> ids, final CDOBranchPoint startPoint,
+ final CDOBranchPoint endPoint, final CDORevisionManager revisionManager)
+ {
+ CDORevisionProvider startProvider = new CDORevisionProvider()
+ {
+ public CDORevision getRevision(CDOID id)
+ {
+ return revisionManager.getRevision(id, startPoint, CDORevision.UNCHUNKED, CDORevision.DEPTH_NONE, true);
+ }
+ };
+
+ CDORevisionProvider endProvider = new CDORevisionProvider()
+ {
+ public CDORevision getRevision(CDOID id)
+ {
+ return revisionManager.getRevision(id, endPoint, CDORevision.UNCHUNKED, CDORevision.DEPTH_NONE, true);
+ }
+ };
+
+ return createChangeSetData(ids, startProvider, endProvider);
+ }
+
+ /**
+ * @since 3.0
+ */
+ public static CDOChangeSetData createChangeSetData(Set<CDOID> ids, CDORevisionProvider startProvider,
+ CDORevisionProvider endProvider)
{
List<CDOIDAndVersion> newObjects = new ArrayList<CDOIDAndVersion>();
List<CDORevisionKey> changedObjects = new ArrayList<CDORevisionKey>();
List<CDOIDAndVersion> detachedObjects = new ArrayList<CDOIDAndVersion>();
for (CDOID id : ids)
{
- CDORevision startRevision = revisionManager.getRevision(id, startPoint, CDORevision.UNCHUNKED,
- CDORevision.DEPTH_NONE, true);
- CDORevision endRevision = revisionManager.getRevision(id, endPoint, CDORevision.UNCHUNKED,
- CDORevision.DEPTH_NONE, true);
+ CDORevision startRevision = startProvider.getRevision(id);
+ CDORevision endRevision = endProvider.getRevision(id);
if (startRevision == null && endRevision != null)
{

Back to the top