Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction')
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java
index 901728748d..a323935063 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/transaction/CDOTransactionImpl.java
@@ -285,6 +285,31 @@ public class CDOTransactionImpl extends CDOViewImpl implements InternalCDOTransa
conflict -= resolved;
}
+ @Override
+ public void getCDOIDAndVersion(Map<CDOID, CDOIDAndVersion> uniqueObjects, Collection<? extends CDOObject> cdoObjects)
+ {
+ Map<CDOID, CDORevisionDelta> deltaMap = getRevisionDeltas();
+
+ for (CDOObject cdoObject : cdoObjects)
+ {
+ CDORevision cdoRevision = CDOStateMachine.INSTANCE.readNoLoad((InternalCDOObject)cdoObject);
+ CDOID cdoId = cdoObject.cdoID();
+ if (cdoRevision != null && !cdoId.isTemporary() && !uniqueObjects.containsKey(cdoId))
+ {
+ int version = cdoRevision.getVersion();
+ if (deltaMap != null)
+ {
+ CDORevisionDelta delta = deltaMap.get(cdoId);
+ if (delta != null)
+ {
+ version = delta.getOriginVersion();
+ }
+ }
+ uniqueObjects.put(cdoId, CDOIDUtil.createIDAndVersion(cdoId, version));
+ }
+ }
+ }
+
/**
* @since 2.0
*/

Back to the top