org.eclipse.emf.cdo.compare

## Class CDOCompareUtil

- java.lang.Object
- - org.eclipse.emf.cdo.compare.CDOCompareUtil

-     public final class CDOCompareUtil
      extends java.lang.Object

  Provides static factory methods that return CDO-scoped `comparisons`.

  Two different `scopes` are supported:

  - `CDOComparisonScope.AllContents` takes an arbitrary `object` (including `resource nodes`) and returns `matches` for all elements of its `content tree`. This scope has the advantage that the comparison can be rooted at specific objects that are different from (below of) the root resource. The disadvantage is that all the transitive children of this specific object are matched, whether they differ or not. Major parts of huge repositories can be loaded to the client side easily, if no attention is paid. The following method returns comparisons that are based on this scope algorithm:
    - `compare(CDOObject, CDOView, CDOView[])`
  - `CDOComparisonScope.Minimal` takes a `view`/`transaction` and returns `matches` only for the changed elements of the entire content tree of its `root resource`. The advantage of this scope is that CDO-specific mechanisms are used to efficiently (remotely) determine the set of changed objects. Only those and their container objects are considered as matches, making this scope scale seamlessly with the overall size of a repository. The following method returns comparisons that are based on this scope algorithm:
    - `compare(CDOView, CDOView, CDOView[])`
  The `origin side` of a comparison is automatically `determined` by inspecting the `branch tree` and used if its different from the left or right side.

  The `matcher` used by the comparisons is based on an `ID function` that considers the `CDOID`s of the `objects`. `Resources` and `folders` are treated as normal `EObject`s.

  Author:
    Eike Stepper

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static CDOViewOpener` | `DEFAULT_VIEW_OPENER`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static org.eclipse.emf.compare.Comparison` | `compare(CDOObject left, CDOView rightView, CDOView[] originView)` Takes an arbitrary `object` (including `resource nodes`) and returns `matches` for all elements of its `content tree`.
    `static org.eclipse.emf.compare.Comparison` | `compare(CDOObject left, CDOView rightView, CDOView[] originView, CDOViewOpener viewOpener)` Takes an arbitrary `object` (including `resource nodes`) and returns `matches` for all elements of its `content tree`.
    `static org.eclipse.emf.compare.Comparison` | `compare(CDOView leftView, CDOView rightView, CDOView[] originView)` Takes a `view`/`transaction` and returns `matches` only for the changed elements of the entire content tree of its `root resource`.
    `static org.eclipse.emf.compare.Comparison` | `compare(CDOView leftView, CDOView rightView, CDOView[] originView, CDOViewOpener viewOpener)` Takes a `view`/`transaction` and returns `matches` only for the changed elements of the entire content tree of its `root resource`.
    `static org.eclipse.emf.compare.Comparison` | `compare(CDOView leftView, CDOView rightView, CDOView[] originView, java.util.Set<CDOID> ids)`
    `static org.eclipse.emf.compare.Comparison` | `compare(CDOView leftView, CDOView rightView, CDOView[] originView, java.util.Set<CDOID> ids, CDOViewOpener viewOpener)`
    `static org.eclipse.emf.compare.Comparison` | `compare(org.eclipse.emf.compare.scope.IComparisonScope scope)`
    `static org.eclipse.emf.compare.Comparison` | `compareUncommittedChanges(CDOTransaction transaction)`
    `static org.eclipse.emf.compare.Comparison` | `compareUncommittedChanges(CDOTransaction transaction, CDOViewOpener viewOpener)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_VIEW_OPENER

          public static final CDOViewOpener DEFAULT_VIEW_OPENER

      Since:
        4.3

  - ### Method Detail

    - #### compare

          public static org.eclipse.emf.compare.Comparison compare(org.eclipse.emf.compare.scope.IComparisonScope scope)

    - #### compare

          public static org.eclipse.emf.compare.Comparison compare(CDOObject left,
                                                                   CDOView rightView,
                                                                   CDOView[] originView)

      Takes an arbitrary `object` (including `resource nodes`) and returns `matches` for all elements of its `content tree`. This scope has the advantage that the comparison can be rooted at specific objects that are different from (below of) the root resource. The disadvantage is that all the transitive children of this specific object are matched, whether they differ or not. Major parts of huge repositories can be loaded to the client side easily, if no attention is paid.

    - #### compare

          public static org.eclipse.emf.compare.Comparison compare(CDOObject left,
                                                                   CDOView rightView,
                                                                   CDOView[] originView,
                                                                   CDOViewOpener viewOpener)

      Takes an arbitrary `object` (including `resource nodes`) and returns `matches` for all elements of its `content tree`. This scope has the advantage that the comparison can be rooted at specific objects that are different from (below of) the root resource. The disadvantage is that all the transitive children of this specific object are matched, whether they differ or not. Major parts of huge repositories can be loaded to the client side easily, if no attention is paid.
      Since:
        4.3

    - #### compare

          public static org.eclipse.emf.compare.Comparison compare(CDOView leftView,
                                                                   CDOView rightView,
                                                                   CDOView[] originView)

      Takes a `view`/`transaction` and returns `matches` only for the changed elements of the entire content tree of its `root resource`. The advantage of this scope is that CDO-specific mechanisms are used to efficiently (remotely) determine the set of changed objects. Only those and their container objects are considered as matches, making this scope scale seamlessly with the overall size of a repository.

    - #### compare

          public static org.eclipse.emf.compare.Comparison compare(CDOView leftView,
                                                                   CDOView rightView,
                                                                   CDOView[] originView,
                                                                   CDOViewOpener viewOpener)

      Takes a `view`/`transaction` and returns `matches` only for the changed elements of the entire content tree of its `root resource`. The advantage of this scope is that CDO-specific mechanisms are used to efficiently (remotely) determine the set of changed objects. Only those and their container objects are considered as matches, making this scope scale seamlessly with the overall size of a repository.
      Since:
        4.3

    - #### compare

          public static org.eclipse.emf.compare.Comparison compare(CDOView leftView,
                                                                   CDOView rightView,
                                                                   CDOView[] originView,
                                                                   java.util.Set<CDOID> ids)

    - #### compare

          public static org.eclipse.emf.compare.Comparison compare(CDOView leftView,
                                                                   CDOView rightView,
                                                                   CDOView[] originView,
                                                                   java.util.Set<CDOID> ids,
                                                                   CDOViewOpener viewOpener)

      Since:
        4.3

    - #### compareUncommittedChanges

          public static org.eclipse.emf.compare.Comparison compareUncommittedChanges(CDOTransaction transaction)

    - #### compareUncommittedChanges

          public static org.eclipse.emf.compare.Comparison compareUncommittedChanges(CDOTransaction transaction,
                                                                                     CDOViewOpener viewOpener)

      Since:
        4.3

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