org.eclipse.emf.spi.cdo
Class AbstractObjectConflictResolver

java.lang.Object
  extended by org.eclipse.emf.spi.cdo.AbstractConflictResolver
      extended by 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

Since:
2.0
Author:
Eike Stepper

Nested Class Summary
static class AbstractObjectConflictResolver.MergeLocalChangesPerFeature
          Deprecated. As of 4.0 use CDOMergingConflictResolver
static class AbstractObjectConflictResolver.TakeRemoteChangesThenApplyLocalChanges
          Deprecated. 
static class AbstractObjectConflictResolver.ThreeWayMerge
           
 
Constructor Summary
AbstractObjectConflictResolver()
           
 
Method Summary
static void changeObject(CDOObject object, CDORevisionDelta revisionDelta)
          TODO See CDOObjectMerger!!!
static void readObject(CDOObject object)
           
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.
protected  void resolveConflict(CDOObject conflict, CDORevisionDelta localDelta)
          Resolves the conflict of a single object in the current transaction.
 void resolveConflicts(Map<CDOObject,Pair<CDORevision,CDORevisionDelta>> conflicts, List<CDORevisionDelta> allRemoteDeltas)
          Resolves conflicts after remote invalidations arrived for objects that are locally dirty or detached.
 void resolveConflicts(Set<CDOObject> conflicts)
          Resolves conflicts after remote invalidations arrived for objects that are locally dirty or detached.
static void rollbackObject(CDOObject object)
          Deprecated. Don't call this method. Rolling back single objects is exremely risky.
 
Methods inherited from class org.eclipse.emf.spi.cdo.AbstractConflictResolver
getTransaction, hookTransaction, setTransaction, unhookTransaction
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.emf.cdo.transaction.CDOConflictResolver
getTransaction, setTransaction
 

Constructor Detail

AbstractObjectConflictResolver

public AbstractObjectConflictResolver()
Method Detail

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,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 remote 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 behaviour 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!!!



Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.