Package org.eclipse.emf.spi.cdo

# Class AbstractObjectConflictResolver.ThreeWayMerge

java.lang.Object
org.eclipse.emf.spi.cdo.AbstractConflictResolver
org.eclipse.emf.spi.cdo.AbstractObjectConflictResolver
org.eclipse.emf.spi.cdo.AbstractObjectConflictResolver.ThreeWayMerge

All Implemented Interfaces:
  `CDOConflictResolver`, `CDOConflictResolver2`, `CDOAdapterPolicy`

Direct Known Subclasses:
  `AbstractObjectConflictResolver.MergeLocalChangesPerFeature`

Enclosing class:
  AbstractObjectConflictResolver

public abstract static class AbstractObjectConflictResolver.ThreeWayMerge extends AbstractObjectConflictResolver implements CDOAdapterPolicy
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.ThreeWayMerge.RevisionDeltaCollector`
If the meaning of this type isn't clear, there really should be more of a description here...

## Nested classes/interfaces inherited from class org.eclipse.emf.spi.cdo.AbstractObjectConflictResolver

`AbstractObjectConflictResolver.MergeLocalChangesPerFeature, AbstractObjectConflictResolver.TakeRemoteChangesThenApplyLocalChanges, AbstractObjectConflictResolver.ThreeWayMerge`

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

`CDOConflictResolver.NonConflictAware`

## Field Summary

### Fields inherited from interface org.eclipse.emf.cdo.view.CDOAdapterPolicy

`ALL, CDO, NONE`

## Constructor Summary

Constructors
Constructor
Description
`ThreeWayMerge()`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`hookTransaction(CDOTransaction transaction)`
`boolean`
`isValid(EObject object, Adapter adapter)`
Returns `true` if the given adapter on the given object should trigger a certain operation or behavior, `false` otherwise.
`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 abstract void`
`resolveConflict(CDOObject conflict, CDORevisionDelta localDelta, List<CDORevisionDelta> remoteDeltas)`
`void`
`resolveConflicts(Set<CDOObject> conflicts)`
Resolves conflicts after remote invalidations arrived for objects that are locally dirty or detached.
`protected void`
`unhookTransaction(CDOTransaction transaction)`

### Methods inherited from class org.eclipse.emf.spi.cdo.AbstractObjectConflictResolver

`changeObject, readObject, resolveConflict, resolveConflicts, rollbackObject`

### Methods inherited from class org.eclipse.emf.spi.cdo.AbstractConflictResolver

`getTransaction, setTransaction`

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

### ThreeWayMerge

public ThreeWayMerge()

## Method Details

### isValid

public boolean isValid(EObject object, Adapter adapter)
Description copied from interface: `CDOAdapterPolicy`
Returns `true` if the given adapter on the given object should trigger a certain operation or behavior, `false` otherwise.

Specified by:
  `isValid` in interface `CDOAdapterPolicy`
See Also:
  - `CDOView.Options.addChangeSubscriptionPolicy(CDOAdapterPolicy)`
  - `CDOView.Options.setStrongReferencePolicy(CDOAdapterPolicy)`

### hookTransaction

protected void hookTransaction(CDOTransaction transaction)

Overrides:
  `hookTransaction` in class `AbstractConflictResolver`

### unhookTransaction

protected void unhookTransaction(CDOTransaction transaction)

Overrides:
  `unhookTransaction` in class `AbstractConflictResolver`

### 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`
Overrides:
  `resolveConflicts` in class `AbstractObjectConflictResolver`

### resolveConflict

protected void resolveConflict(CDOObject conflict, CDORevision oldRemoteRevision, CDORevisionDelta localDelta, CDORevisionDelta remoteDelta, List<CDORevisionDelta> allRemoteDeltas)
Description copied from class: `AbstractObjectConflictResolver`
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`.

Overrides:
  `resolveConflict` in class `AbstractObjectConflictResolver`

### resolveConflict

protected abstract void resolveConflict(CDOObject conflict, CDORevisionDelta localDelta, List<CDORevisionDelta> remoteDeltas)