public CDORevisionDeltaImpl(CDORevision sourceRevision, CDORevision targetRevision) { if (sourceRevision.getEClass() != targetRevision.getEClass()) { throw new IllegalArgumentException(); } eClass = sourceRevision.getEClass(); id = sourceRevision.getID(); branch = sourceRevision.getBranch(); version = sourceRevision.getVersion(); target = CDORevisionUtil.copyRevisable(targetRevision); compare(sourceRevision, targetRevision); CDORevisionData originData = sourceRevision.data(); CDORevisionData dirtyData = targetRevision.data(); Object dirtyContainerID = dirtyData.getContainerID(); if (dirtyContainerID instanceof CDOWithID) { dirtyContainerID = ((CDOWithID)dirtyContainerID).cdoID(); } if (!compare(originData.getContainerID(), dirtyContainerID) || !compare(originData.getContainingFeatureID(), dirtyData.getContainingFeatureID()) || !compare(originData.getResourceID(), dirtyData.getResourceID())) { addFeatureDelta(new CDOContainerFeatureDeltaImpl(dirtyData.getResourceID(), dirtyContainerID, dirtyData.getContainingFeatureID())); } }