org.eclipse.emf.cdo.transaction

## Interface CDOConflictResolver2

- All Superinterfaces:
    CDOConflictResolver
  All Known Implementing Classes:
    AbstractObjectConflictResolver, AbstractObjectConflictResolver.MergeLocalChangesPerFeature, AbstractObjectConflictResolver.TakeRemoteChangesThenApplyLocalChanges, AbstractObjectConflictResolver.ThreeWayMerge

      public interface CDOConflictResolver2
      extends CDOConflictResolver

  A strategy used to customize the default conflict resolution behavior of `transactions`.
  Since:
    4.0
  Author:
    Eike Stepper

- - ### Nested Class Summary

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

      `CDOConflictResolver.NonConflictAware`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `resolveConflicts(java.util.Map<CDOObject,Pair<CDORevision,CDORevisionDelta>> conflicts, java.util.List<CDORevisionDelta> allRemoteDeltas)` Resolves conflicts after remote invalidations arrived for objects that are locally dirty or detached.

    - ### Methods inherited from interface org.eclipse.emf.cdo.transaction.CDOConflictResolver

      `getTransaction, resolveConflicts, setTransaction`

- - ### Method Detail

    - #### resolveConflicts

          void resolveConflicts(java.util.Map<CDOObject,Pair<CDORevision,CDORevisionDelta>> conflicts,
                                java.util.List<CDORevisionDelta> allRemoteDeltas)

      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`.

      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).

Copyright (c) 2014 Eike Stepper (Berlin, Germany) and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html