protected Collection<? extends IHistoryInfoDetails> processChangedObjects(final List<CDORevisionKey> changedObjects, final CDOView beforeView, final CDOView currentView) { final List<IHistoryInfoDetails> infoDetails = new ArrayList<IHistoryInfoDetails>(); for (final CDORevisionKey revisionKey : changedObjects) { if (revisionKey instanceof CDORevisionDelta) { final CDORevisionDelta revisionDelta = (CDORevisionDelta) revisionKey; for (final CDOFeatureDelta featureDelta : revisionDelta.getFeatureDeltas()) { if (Type.SET.equals(featureDelta.getType()) && filter(featureDelta.getFeature())) { // TODO: change to instanceof CDOSetFeatureDelta? final CDOObject object = currentView.getObject(revisionKey.getID()); final IHistoryInfoDetails details = generateInfoForChangedObject(object, currentView, beforeView, (CDOSetFeatureDelta) featureDelta); if (IHistoryInfoDetails.IGNORED_DETAILS != details) { infoDetails.add(details); } } } } } return infoDetails; }
public CDOFeatureDelta readCDOFeatureDelta(EClass owner) throws IOException { int typeOrdinal = readInt(); CDOFeatureDelta.Type type = CDOFeatureDelta.Type.values()[typeOrdinal]; switch (type) { case ADD: return new CDOAddFeatureDeltaImpl(this, owner); case SET: return new CDOSetFeatureDeltaImpl(this, owner); case LIST: return new CDOListFeatureDeltaImpl(this, owner); case MOVE: return new CDOMoveFeatureDeltaImpl(this, owner); case CLEAR: return new CDOClearFeatureDeltaImpl(this, owner); case REMOVE: return new CDORemoveFeatureDeltaImpl(this, owner); case CONTAINER: return new CDOContainerFeatureDeltaImpl(this, owner); case UNSET: return new CDOUnsetFeatureDeltaImpl(this, owner); default: throw new IOException(MessageFormat.format(Messages.getString("CDODataInputImpl.5"), typeOrdinal)); //$NON-NLS-1$ } }
public boolean isStructurallyEqual(Object obj) { if (obj == this) { return true; } if (obj instanceof CDOFeatureDelta) { CDOFeatureDelta that = (CDOFeatureDelta)obj; return feature.equals(that.getFeature()) && getType().equals(that.getType()); } return false; }
@Override public void write(CDODataOutput out, EClass eClass) throws IOException { out.writeInt(getType().ordinal()); out.writeInt(newContainerFeatureID); out.writeCDOID(out.getIDProvider().provideCDOID(newContainerID)); out.writeCDOID(newResourceID); }
public void write(CDODataOutput out, EClass eClass) throws IOException { out.writeInt(getType().ordinal()); out.writeInt(eClass.getFeatureID(feature)); }