Package org.eclipse.emf.spi.cdo

# 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
If the meaning of this type isn't clear, there really should be more of a description here...

Since:
  2.0
Author:
  Eike Stepper

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`AbstractObjectConflictResolver.MergeLocalChangesPerFeature`
Deprecated.
As of 4.0 use CDOMergingConflictResolver
`static class`
`AbstractObjectConflictResolver.TakeRemoteChangesThenApplyLocalChanges`
Deprecated.
`static class`
`AbstractObjectConflictResolver.ThreeWayMerge`
If the meaning of this type isn't clear, there really should be more of a description here...

## Nested classes/interfaces inherited from interface org.eclipse.emf.cdo.transaction.CDOConflictResolver

`CDOConflictResolver.NonConflictAware`

## Constructor Summary

Constructors
Constructor
Description
`AbstractObjectConflictResolver()`

## Method Summary

Modifier and Type
Method
Description
`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,org.eclipse.net4j.util.collection.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.

### 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 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`!!!