@Override public CDOID getID() { return targetDelta.getID(); }
@Override public CDOID getID() { return targetDelta.getID(); }
@Override public CDOID getID() { return sourceDelta.getID(); }
@Override public CDOID getID() { return targetDelta.getID(); }
@Override public CDOID getID() { return sourceDelta.getID(); }
@Override public CDOID getID() { return targetDelta.getID(); }
@Override public CDOID apply(final CDORevisionDelta input) { return input.getID(); } });
public synchronized void registerRevisionDelta(CDORevisionDelta revisionDelta) { lastSavepoint.getRevisionDeltas().putIfAbsent(revisionDelta.getID(), revisionDelta); }
public synchronized void registerRevisionDelta(CDORevisionDelta revisionDelta) { Map<CDOID, CDORevisionDelta> revisionDeltas = lastSavepoint.getRevisionDeltas2(); CDOID id = revisionDelta.getID(); if (!revisionDeltas.containsKey(id)) { revisionDeltas.put(id, revisionDelta); } }
protected Object changedInTargetAndDetachedInSource(CDORevisionDelta targetDelta) { switch (resolutionPreference) { case SOURCE_OVER_TARGET: return targetDelta.getID(); case TARGET_OVER_SOURCE: return targetDelta; // TODO Do we need to "recreate" the target revision as NEW? case NONE: return new ChangedInTargetAndDetachedInSourceConflict(targetDelta); default: throw new IllegalStateException("Illegal resolution preference: " + resolutionPreference); } }
protected Object changedInSourceAndDetachedInTarget(CDORevisionDelta sourceDelta) { switch (resolutionPreference) { case SOURCE_OVER_TARGET: return sourceDelta; // TODO Do we need to "recreate" the source revision as NEW? case TARGET_OVER_SOURCE: return sourceDelta.getID(); // Indicate detachment case NONE: return new ChangedInSourceAndDetachedInTargetConflict(sourceDelta); default: throw new IllegalStateException("Illegal resolution preference: " + resolutionPreference); } }
/** * {@inheritDoc} * <p> * The default case will check if the change did not involve releasing the component, and if so, reports a * conflict; allows the removal otherwise. */ @Override public Object changedInTargetAndDetachedInSource(final CDORevisionDelta targetDelta) { final Conflict conflict = checkIsReleasedState(targetDelta); if (conflict != null) { return conflict; } return targetDelta.getID(); }
private CDORevision applyDelta(CDORevisionDelta revisionDelta) { CDOID id = revisionDelta.getID(); CDORevision changedObject = delegate.getRevision(id).copy(); revisionDelta.apply(changedObject); cachedRevisions.put(id, changedObject); return changedObject; } }
private void processRevisionDeltas(InternalEObject reattachedObject, InternalCDOTransaction transaction) { InternalCDOSavepoint lastSavepoint = transaction.getLastSavepoint(); Map<CDOID, CDORevisionDelta> revisionDeltas = lastSavepoint.getRevisionDeltas2(); for (Iterator<Entry<CDOID, CDORevisionDelta>> it = revisionDeltas.entrySet().iterator(); it.hasNext();) { Entry<CDOID, CDORevisionDelta> entry = it.next(); CDORevisionDelta revisionDelta = entry.getValue(); Map<EStructuralFeature, CDOFeatureDelta> map = ((InternalCDORevisionDelta)revisionDelta).getFeatureDeltaMap(); processFeatureDeltas(reattachedObject, map); if (revisionDelta.isEmpty()) { it.remove(); CDOID id = revisionDelta.getID(); InternalCDOObject cleanObject = (InternalCDOObject)lastSavepoint.getDirtyObjects().remove(id); cleanObject.cdoInternalSetState(CDOState.CLEAN); } } if (revisionDeltas.isEmpty()) { transaction.setDirty(false); } }
public static MergeConflict from(final ChangedInSourceAndDetachedInTargetConflict conflict) { return MergeConflictImpl.builder() .componentId(conflict.getSourceDelta().getID().toString()) .type(ConflictType.DELETED_WHILE_CHANGED) .build(); }
public static MergeConflict from(final ChangedInTargetAndDetachedInSourceConflict conflict) { return MergeConflictImpl.builder() .componentId(conflict.getTargetDelta().getID().toString()) .type(ConflictType.CHANGED_WHILE_DELETED) .build(); }
public static MergeConflict from(final ChangedInSourceAndTargetConflict conflict) { return MergeConflictImpl.builder() .componentId(conflict.getTargetDelta().getID().toString()) .type(ConflictType.CONFLICTING_CHANGE) .build(); }
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()); } } }
public void process(IDBStoreAccessor accessor, CDORevisionDelta delta, long created) { try { // Set context id = delta.getID(); branchId = delta.getBranch().getID(); oldVersion = delta.getVersion(); newVersion = oldVersion + 1; this.created = created; this.accessor = accessor; // Process revision delta tree delta.accept(this); updateAttributes(); } finally { // Clean up reset(); } }
private Pair<InternalCDORevision, InternalCDORevision> createNewRevision(CDORevisionKey potentialDelta, CDOCommitInfo commitInfo) { if (potentialDelta instanceof CDORevisionDelta) { CDORevisionDelta delta = (CDORevisionDelta)potentialDelta; CDOID id = delta.getID(); InternalCDORevisionManager revisionManager = getRevisionManager(); InternalCDORevision oldRevision = revisionManager.getRevisionByVersion(id, potentialDelta, CDORevision.UNCHUNKED, false); if (oldRevision != null) { InternalCDORevision newRevision = oldRevision.copy(); newRevision.adjustForCommit(commitInfo.getBranch(), commitInfo.getTimeStamp()); CDORevisable target = delta.getTarget(); if (target != null) { newRevision.setVersion(target.getVersion()); } delta.apply(newRevision); newRevision.freeze(); return new Pair<InternalCDORevision, InternalCDORevision>(oldRevision, newRevision); } } return null; }