diff options
author | Eike Stepper | 2010-03-07 17:07:46 +0000 |
---|---|---|
committer | Eike Stepper | 2010-03-07 17:07:46 +0000 |
commit | 766678c8b0bd03e84466e38f45bae70e852b0f3c (patch) | |
tree | cc5886c6a43ac1036aa71cf288b219d1a7038036 /plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/delta | |
parent | 616ff37c859f70e0a6c357995254351d9bd2be61 (diff) | |
download | cdo-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.java | 36 |
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) { |