Class AbstractObjectConflictResolver

java.lang.Object
org.eclipse.emf.spi.cdo.AbstractConflictResolver
org.eclipse.emf.spi.cdo.AbstractObjectConflictResolver
All Implemented Interfaces:
CDOConflictResolver, CDOConflictResolver2
Direct Known Subclasses:
AbstractObjectConflictResolver.TakeRemoteChangesThenApplyLocalChanges, AbstractObjectConflictResolver.ThreeWayMerge

public abstract class AbstractObjectConflictResolver extends AbstractConflictResolver implements CDOConflictResolver2
Base for resolvers that make a resolution decision separately for each conflicting CDOObject. The resolver receives the local and remote revision changes for each conflict, while subclasses decide how to reconcile them in the transaction.
Since:
2.0
Author:
Eike Stepper
  • Constructor Details

    • AbstractObjectConflictResolver

      public AbstractObjectConflictResolver()
  • Method Details

    • resolveConflicts

      public void resolveConflicts(Set<CDOObject> conflicts)
      Description copied from interface: CDOConflictResolver
      Resolves conflicts after remote invalidations arrived for objects that are locally dirty or detached.
      Specified by:
      resolveConflicts in interface CDOConflictResolver
    • resolveConflict

      protected void resolveConflict(CDOObject conflict, CDORevisionDelta localDelta)
      Resolves the conflict of a single object in the current transaction.
    • resolveConflicts

      public void resolveConflicts(Map<CDOObject,org.eclipse.net4j.util.collection.Pair<CDORevision,CDORevisionDelta>> conflicts, List<CDORevisionDelta> allRemoteDeltas)
      Description copied from interface: CDOConflictResolver2
      Resolves conflicts after remote invalidations arrived for objects that are locally dirty or detached.

      Depending on the decisions taken to resolve the conflict, it may be necessary to adjust the notifications that will be sent to the adapters in the current transaction. This can be achieved by adjusting the CDORevisionDelta in deltas.

      Specified by:
      resolveConflicts in interface CDOConflictResolver2
      Parameters:
      conflicts - A map that contains the local objects with conflicts as the keys. Each value in this map is a pair that optionally contains the old local revision (ancestor) as element1 and the remote delta as element2. Any of the pair elements can be null if it is not possible to determine it locally (depends on local revision caching and server behavior regarding transmission of deltas instead of invalidations).
      Since:
      4.0
    • resolveConflict

      protected void resolveConflict(CDOObject conflict, CDORevision oldRemoteRevision, CDORevisionDelta localDelta, CDORevisionDelta remoteDelta, List<CDORevisionDelta> allRemoteDeltas)
      Resolves the conflict of a single object in the current transaction. Depending on the decision taken to resolve the conflict, it may be necessary to adjust the notification that will be sent to the adapters in the current transaction. This can be achieved by adjusting the CDORevisionDelta in deltas.
      Since:
      4.0
    • rollbackObject

      @Deprecated public static void rollbackObject(CDOObject object)
      Deprecated.
      Don't call this method. Rolling back single objects is exremely risky.
    • readObject

      public static void readObject(CDOObject object)
    • changeObject

      public static void changeObject(CDOObject object, CDORevisionDelta revisionDelta)
      TODO See CDOObjectMerger!!!