diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.common/src/org/eclipse')
2 files changed, 67 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDRevisionDeltaLockWrapper.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDRevisionDeltaLockWrapper.java new file mode 100644 index 0000000000..45d1daf163 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/id/CDOIDRevisionDeltaLockWrapper.java @@ -0,0 +1,64 @@ +package org.eclipse.emf.cdo.internal.common.id; + +import org.eclipse.emf.cdo.common.branch.CDOBranch; +import org.eclipse.emf.cdo.common.id.CDOID; +import org.eclipse.emf.cdo.common.id.CDOIDAndBranch; +import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionDelta; + +/** + * @author Martin Fluegge + */ +public class CDOIDRevisionDeltaLockWrapper implements CDOIDAndBranch +{ + private Object key; + + private InternalCDORevisionDelta delta; + + public CDOIDRevisionDeltaLockWrapper(Object key, InternalCDORevisionDelta delta) + { + this.key = key; + this.delta = delta; + } + + public void setKey(Object key) + { + this.key = key; + } + + public Object getKey() + { + return key; + } + + @Override + public boolean equals(Object obj) + { + return key.equals(obj); + } + + @Override + public int hashCode() + { + return key.hashCode(); + } + + public void setDelta(InternalCDORevisionDelta delta) + { + this.delta = delta; + } + + public InternalCDORevisionDelta getDelta() + { + return delta; + } + + public CDOID getID() + { + return key instanceof CDOIDAndBranch ? ((CDOIDAndBranch)key).getID() : (CDOID)key; + } + + public CDOBranch getBranch() + { + return key instanceof CDOIDAndBranch ? ((CDOIDAndBranch)key).getBranch() : null; + } +} diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java index f0e3326ccd..c3079405be 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java @@ -81,6 +81,9 @@ public abstract class BaseCDORevision extends AbstractCDORevision private CDOID resourceID; + /** + * On a client, between a local modification and the commit the value of this <i>ID</i> can be an EObject. + */ private Object containerID; private int containingFeatureID; |