Package org.eclipse.emf.cdo.compare

# Class CDOCompareUtil

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

public final class CDOCompareUtil extends 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
Description
`static final CDOViewOpener`
`DEFAULT_VIEW_OPENER`

## Method Summary

Modifier and Type
Method
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, Set<CDOID> ids)`
`static org.eclipse.emf.compare.Comparison`
`compare(CDOView leftView, CDOView rightView, CDOView[] originView, Set<CDOID> ids, CDOViewOpener viewOpener)`
`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(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)`
`static org.eclipse.emf.compare.scope.IComparisonScope`
`getScope(org.eclipse.emf.compare.Comparison comparison)`

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

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

## Field Details

### DEFAULT_VIEW_OPENER

public static final CDOViewOpener DEFAULT_VIEW_OPENER

Since:
  4.3

## Method Details

### getScope

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

Since:
  4.7

### 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, Set<CDOID> ids)

### compare

public static org.eclipse.emf.compare.Comparison compare(CDOView leftView, CDOView rightView, CDOView[] originView, 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