Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOContainerFeatureDeltaImpl.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOContainerFeatureDeltaImpl.java46
1 files changed, 28 insertions, 18 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOContainerFeatureDeltaImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOContainerFeatureDeltaImpl.java
index eed6a6272b..d5d21ece13 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOContainerFeatureDeltaImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOContainerFeatureDeltaImpl.java
@@ -8,6 +8,8 @@
* Contributors:
* Simon McDuff - initial API and implementation
* Eike Stepper - maintenance
+ * Simon McDuff - http://bugs.eclipse.org/204890
+ * Simon McDuff - http://bugs.eclipse.org/213402
**************************************************************************/
package org.eclipse.emf.cdo.internal.common.revision.delta;
@@ -35,18 +37,16 @@ import java.util.Map;
*/
public class CDOContainerFeatureDeltaImpl extends CDOFeatureDeltaImpl implements CDOContainerFeatureDelta
{
- /**
- * TODO Move to CDOObjectContainerFeature
- */
- private static CDOFeature CONTAINER_FEATURE = new ContainerFeature();
+ private CDOID newResourceID;
- private CDOID newContainerID;
+ private Object newContainerID;
private int newContainerFeatureID;
- public CDOContainerFeatureDeltaImpl(CDOID newContainerID, int newContainerFeatureID)
+ public CDOContainerFeatureDeltaImpl(CDOID newResourceID, Object newContainerID, int newContainerFeatureID)
{
super(CONTAINER_FEATURE);
+ this.newResourceID = newResourceID;
this.newContainerID = newContainerID;
this.newContainerFeatureID = newContainerFeatureID;
}
@@ -55,34 +55,33 @@ public class CDOContainerFeatureDeltaImpl extends CDOFeatureDeltaImpl implements
{
super(CONTAINER_FEATURE);
newContainerFeatureID = in.readInt();
- newContainerID = in.readCDOID();
+ newContainerID = in.readCDOID();
+ newResourceID = in.readCDOID();
}
- @Override
- public void write(CDODataOutput out, CDOClass cdoClass) throws IOException
+ public Type getType()
{
- out.writeInt(getType().ordinal());
- out.writeInt(newContainerFeatureID);
- out.writeCDOID(newContainerID);
+ return Type.CONTAINER;
}
- public int getContainerFeatureID()
+ public CDOID getResourceID()
{
- return newContainerFeatureID;
+ return newResourceID;
}
- public CDOID getContainerID()
+ public Object getContainerID()
{
return newContainerID;
}
- public Type getType()
+ public int getContainerFeatureID()
{
- return Type.CONTAINER;
+ return newContainerFeatureID;
}
public void apply(CDORevision revision)
{
+ ((InternalCDORevision)revision).setResourceID(newResourceID);
((InternalCDORevision)revision).setContainerID(newContainerID);
((InternalCDORevision)revision).setContainingFeatureID(newContainerFeatureID);
}
@@ -90,9 +89,20 @@ public class CDOContainerFeatureDeltaImpl extends CDOFeatureDeltaImpl implements
@Override
public void adjustReferences(Map<CDOIDTemp, CDOID> idMappings)
{
+ newResourceID = (CDOID)CDORevisionUtil.remapID(newResourceID, idMappings);
newContainerID = (CDOID)CDORevisionUtil.remapID(newContainerID, idMappings);
}
+ @Override
+ public void write(CDODataOutput out, CDOClass cdoClass) throws IOException
+ {
+ out.writeInt(getType().ordinal());
+ out.writeInt(newContainerFeatureID);
+ newContainerID = out.getIDProvider().provideCDOID(newContainerID);
+ out.writeCDOID((CDOID)newContainerID);
+ out.writeCDOID(newResourceID);
+ }
+
public void accept(CDOFeatureDeltaVisitor visitor)
{
visitor.visit(this);
@@ -101,7 +111,7 @@ public class CDOContainerFeatureDeltaImpl extends CDOFeatureDeltaImpl implements
/**
* @author Simon McDuff
*/
- private static final class ContainerFeature implements CDOFeature
+ public static final class ContainerFeature implements CDOFeature
{
public CDOClass getContainingClass()
{

Back to the top