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

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    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, java.util.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​(java.util.Map<CDOObject,​org.eclipse.net4j.util.collection.Pair<CDORevision,​CDORevisionDelta>> conflicts, java.util.List<CDORevisionDelta> allRemoteDeltas)` | Resolves conflicts after remote invalidations arrived for objects that are locally dirty or detached.
    `void` | `resolveConflicts​(java.util.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 Detail

    - #### AbstractObjectConflictResolver

          public AbstractObjectConflictResolver()

  - ### Method Detail

    - #### resolveConflicts

          public void resolveConflicts​(java.util.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​(java.util.Map<CDOObject,​org.eclipse.net4j.util.collection.Pair<CDORevision,​CDORevisionDelta>> conflicts,
                                       java.util.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,
                                         java.util.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`!!!