protected boolean hasFeatureConflicts(CDORevisionDelta localDelta, List<CDORevisionDelta> remoteDeltas) { Set<EStructuralFeature> features = new HashSet<EStructuralFeature>(); for (CDOFeatureDelta localFeatureDelta : localDelta.getFeatureDeltas()) { features.add(localFeatureDelta.getFeature()); } for (CDORevisionDelta remoteDelta : remoteDeltas) { for (CDOFeatureDelta remoteFeatureDelta : remoteDelta.getFeatureDeltas()) { EStructuralFeature feature = remoteFeatureDelta.getFeature(); if (features.contains(feature)) { return true; } } } return false; } }
protected boolean hasFeatureConflicts(CDORevisionDelta localDelta, List<CDORevisionDelta> remoteDeltas) { Set<EStructuralFeature> features = new HashSet<EStructuralFeature>(); for (CDOFeatureDelta localFeatureDelta : localDelta.getFeatureDeltas()) { features.add(localFeatureDelta.getFeature()); } for (CDORevisionDelta remoteDelta : remoteDeltas) { for (CDOFeatureDelta remoteFeatureDelta : remoteDelta.getFeatureDeltas()) { EStructuralFeature feature = remoteFeatureDelta.getFeature(); if (features.contains(feature)) { return true; } } } return false; } }
for (CDOFeatureDelta featureDelta : revisionDelta.getFeatureDeltas())
private void mergeChangedObject(CDORevisionKey key, Map<CDOID, CDOIDAndVersion> newMap, Map<CDOID, CDORevisionKey> changedMap) { CDOID id = key.getID(); if (key instanceof CDORevisionDelta) { CDORevisionDelta delta = (CDORevisionDelta)key; // Try to add the delta to existing new revision CDOIDAndVersion oldRevision = newMap.get(id); if (oldRevision instanceof CDORevision) { CDORevision newRevision = (CDORevision)oldRevision; delta.apply(newRevision); return; } // Try to add the delta to existing delta CDORevisionKey oldDelta = changedMap.get(id); if (oldDelta instanceof CDORevisionDelta) { InternalCDORevisionDelta newDelta = (InternalCDORevisionDelta)oldDelta; for (CDOFeatureDelta featureDelta : delta.getFeatureDeltas()) { newDelta.addFeatureDelta(featureDelta); } return; } } // Fall back changedMap.put(id, key); }
private void registerInactivationOrUpdate(final EClass eClass, final String conceptId, final String componentId, CDORevisionDelta revisionDelta) { CDOSetFeatureDelta activeDelta = (CDOSetFeatureDelta) revisionDelta.getFeatureDelta(SnomedPackage.Literals.COMPONENT__ACTIVE); if (activeDelta != null && Boolean.FALSE.equals(activeDelta.getValue())) { entry.registerChange(conceptId, new TraceabilityChange(eClass, componentId, ChangeType.INACTIVATE)); } else { for (CDOFeatureDelta featureDelta : revisionDelta.getFeatureDeltas()) { if (!IGNORED_FEATURES.contains(featureDelta.getFeature())) { entry.registerChange(conceptId, new TraceabilityChange(eClass, componentId, ChangeType.UPDATE)); } } } }
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; }
for (CDOFeatureDelta delta : revisionDelta.getFeatureDeltas())
for (CDOFeatureDelta delta : revisionDelta.getFeatureDeltas())
public CDORevisionDeltaImpl(CDORevisionDelta revisionDelta, boolean copyFeatureDeltas) { eClass = revisionDelta.getEClass(); id = revisionDelta.getID(); branch = revisionDelta.getBranch(); version = revisionDelta.getVersion(); if (copyFeatureDeltas) { for (CDOFeatureDelta delta : revisionDelta.getFeatureDeltas()) { addFeatureDelta(((InternalCDOFeatureDelta)delta).copy()); } } }
dumpFeatureDeltas(out, delta.getFeatureDeltas());
@Override protected void resolveConflict(CDOObject conflict, CDORevisionDelta localDelta, List<CDORevisionDelta> remoteDeltas) { if (hasFeatureConflicts(localDelta, remoteDeltas)) { // TODO localDelta may be corrupt already and the transaction will not be able to restore it!!! throw new CDOException(Messages.getString("AbstractObjectConflictResolver.0")); //$NON-NLS-1$ } rollbackObject(conflict); // Add remote deltas to local delta for (CDORevisionDelta remoteDelta : remoteDeltas) { for (CDOFeatureDelta remoteFeatureDelta : remoteDelta.getFeatureDeltas()) { // TODO Add public API for this: ((InternalCDORevisionDelta)localDelta).addFeatureDelta(remoteFeatureDelta, null); } } changeObject(conflict, localDelta); }
@Override protected void resolveConflict(CDOObject conflict, CDORevisionDelta localDelta, List<CDORevisionDelta> remoteDeltas) { if (hasFeatureConflicts(localDelta, remoteDeltas)) { // TODO localDelta may be corrupt already and the transaction will not be able to restore it!!! throw new CDOException(Messages.getString("AbstractObjectConflictResolver.0")); //$NON-NLS-1$ } rollbackObject(conflict); // Add remote deltas to local delta for (CDORevisionDelta remoteDelta : remoteDeltas) { for (CDOFeatureDelta remoteFeatureDelta : remoteDelta.getFeatureDeltas()) { // TODO Add public API for this: ((InternalCDORevisionDelta)localDelta).addFeatureDelta(remoteFeatureDelta); } } changeObject(conflict, localDelta); }
CDORevisionDelta rDelta = dirtyRev.compare(cleanRev); for (CDOFeatureDelta featureDelta : rDelta.getFeatureDeltas())
for (CDOFeatureDelta featureDelta : revisionDelta.getFeatureDeltas())
CDORevisionDelta revisionDelta = dirtyRev.compare(cleanRev); for (CDOFeatureDelta featureDelta : revisionDelta.getFeatureDeltas())