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; } }
@Override public void modifyingObject(CDOTransaction transaction, CDOObject object, CDOFeatureDelta featureChange) { if (object instanceof CDOResource) { return; } if (featureChange != null) { CDOFeatureDeltaVisitorAutoAttach featureChangeVisitor = new CDOFeatureDeltaVisitorAutoAttach(object); featureChange.accept(featureChangeVisitor); } }
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; }
private static boolean canHaveResourcePathImpact(CDOListFeatureDelta featureDelta) { if (featureDelta != null) { for (CDOFeatureDelta listChange : featureDelta.getListChanges()) { CDOFeatureDelta.Type type = listChange.getType(); switch (type) { case REMOVE: case CLEAR: case SET: case UNSET: return true; } } } return false; }
/** * @return the result feature delta, or <code>null</code> to indicate an unresolved conflict. */ protected CDOFeatureDelta changedInSourceAndTargetSingleValued(EStructuralFeature feature, CDOFeatureDelta targetFeatureDelta, CDOFeatureDelta sourceFeatureDelta) { if (targetFeatureDelta.isStructurallyEqual(sourceFeatureDelta)) { return targetFeatureDelta; } return null; }
CDOFeatureDelta newDelta = delta.copy(); result.featureDeltas.add(newDelta); if (map != null)
featureDelta.apply(goalRevision);
private void processFeatureDelta(InternalEObject reattachedObject, Iterator<?> it, CDOFeatureDelta featureDelta) switch (featureDelta.getType())
private boolean isEqualDeltaPresent(List<CDOFeatureDelta> resultList, CDOFeatureDelta deltaToHandle) { for (CDOFeatureDelta resultDelta : resultList) { if (resultDelta.isStructurallyEqual(deltaToHandle)) { return true; } } return false; }
@Override protected CDOFeatureDelta changedInSourceAndTargetManyValued(EStructuralFeature feature, CDOFeatureDelta targetFeatureDelta, CDOFeatureDelta sourceFeatureDelta) { if (targetFeatureDelta instanceof CDOListFeatureDelta && sourceFeatureDelta instanceof CDOListFeatureDelta) { CDOListFeatureDelta targetListDelta = (CDOListFeatureDelta)targetFeatureDelta.copy(); CDOListFeatureDelta sourceListDelta = (CDOListFeatureDelta)sourceFeatureDelta.copy(); CDOListFeatureDelta result = createResult(feature); List<CDOFeatureDelta> resultChanges = result.getListChanges(); List<CDOFeatureDelta> targetChanges = targetListDelta.getListChanges(); List<CDOFeatureDelta> sourceChanges = sourceListDelta.getListChanges(); handleListDelta(resultChanges, targetChanges, sourceChanges); handleListDelta(resultChanges, sourceChanges, null); return result; } return super.changedInSourceAndTargetManyValued(feature, targetFeatureDelta, sourceFeatureDelta); }
featureDelta.apply(goalRevision);
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 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; }
@Override public void modifyingObject(CDOTransaction transaction, CDOObject object, CDOFeatureDelta featureChange) { if (object instanceof CDOResource) { return; } if (featureChange != null) { CDOFeatureDeltaVisitorAutoAttach featureChangeVisitor = new CDOFeatureDeltaVisitorAutoAttach(object); featureChange.accept(featureChangeVisitor); } }
private void processFeatureDelta(InternalEObject reattachedObject, Iterator<?> it, CDOFeatureDelta featureDelta) switch (featureDelta.getType())
/** * @return the result feature delta, or <code>null</code> to indicate an unresolved conflict. */ protected CDOFeatureDelta changedInSourceAndTargetSingleValued(EStructuralFeature feature, CDORevisionDelta targetDelta, CDOFeatureDelta targetFeatureDelta, CDORevisionDelta sourceDelta, CDOFeatureDelta sourceFeatureDelta) { if (targetFeatureDelta.isStructurallyEqual(sourceFeatureDelta)) { return targetFeatureDelta; } return null; }
int originSize = ((CDOListFeatureDelta)sourceFeatureDelta.copy()).getOriginSize(); BasicEList<Element> ancestorList = new BasicEList<Element>(originSize); PerSide<BasicEList<Element>> listPerSide = new PerSide<BasicEList<Element>>(); ((CDOListFeatureDelta)sourceFeatureDelta.copy()).getListChanges(), ((CDOListFeatureDelta)targetFeatureDelta.copy()).getListChanges()); Map<Object, List<Element>> additions = new HashMap<Object, List<Element>>(); Map<CDOFeatureDelta, Element> allElements = new HashMap<CDOFeatureDelta, Element>();
featureDelta.apply(goalRevision);
public int getOriginSize() { EStructuralFeature feature = featureDelta.getFeature(); InternalCDORevision cleanRevision = cleanRevisions.get(object); if (cleanRevision == null) { // Clean revision has *not yet* been registered, in this case the object revision *is still clean* cleanRevision = revision; } CDOList list = cleanRevision.getList(feature); return list.size(); } });
public void visit(CDOListFeatureDelta deltas) { for (CDOFeatureDelta delta : deltas.getListChanges()) { try { delta.accept(this); } catch (StopVisitException ex) { return; } } }