Package org.eclipse.emf.compare.rcp.ui.internal.structuremergeviewer.groups.impl

# Class ThreeWayComparisonGroupProvider

java.lang.Object
org.eclipse.emf.common.notify.impl.AdapterImpl
org.eclipse.emf.compare.rcp.ui.structuremergeviewer.groups.AbstractDifferenceGroupProvider
org.eclipse.emf.compare.rcp.ui.internal.structuremergeviewer.groups.impl.ThreeWayComparisonGroupProvider

All Implemented Interfaces:
  `Adapter`, `Adapter.Internal`, `IDifferenceGroupProvider`, `IDifferenceGroupProvider2`

public class ThreeWayComparisonGroupProvider extends AbstractDifferenceGroupProvider
This implementation of a `IDifferenceGroupProvider` will be used to group the differences by their `side` : left, right and conflicts.

The table below describes the location of a diff depending on its status and that of its refining diffs (whether all or some of them are in a real/pseudo conflict).

| Real Conflicts | Pseudo-Conflicts | No Conflict
--- | --- | --- | ---
All | Some | All | Some | All
Tech. filter ON | Conflict | Conflict | Conflict (hidden) | Side | Side
Tech. filter OFF | Conflict | Conflict | Conflict | Side | Side

Since:
  4.0

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`ThreeWayComparisonGroupProvider.CompositeConflict`
This extension of `Conflict` is used to handle `refined` diffs and to join conflicts for the SMV.
`static class`
`ThreeWayComparisonGroupProvider.ConflictsGroupImpl`
Specialized `BasicDifferenceGroupImpl` for Conflicts.

## Nested classes/interfaces inherited from interface org.eclipse.emf.common.notify.Adapter

`Adapter.Internal`

## Nested classes/interfaces inherited from interface org.eclipse.emf.compare.rcp.ui.structuremergeviewer.groups.IDifferenceGroupProvider

`IDifferenceGroupProvider.ComparisonType, IDifferenceGroupProvider.Descriptor`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final com.google.common.base.Predicate<? super Diff>`
`DEFAULT_DIFF_GROUP_FILTER_PREDICATE`
The default predicate used to filter differences in difference groups.

### Fields inherited from class org.eclipse.emf.compare.rcp.ui.structuremergeviewer.groups.AbstractDifferenceGroupProvider

`activeByDefault, label`

### Fields inherited from class org.eclipse.emf.common.notify.impl.AdapterImpl

`target`

## Constructor Summary

Constructors
Constructor
Description
`ThreeWayComparisonGroupProvider()`

## Method Summary

Modifier and Type
Method
Description
`protected Collection<? extends IDifferenceGroup>`
`buildGroups(Comparison comparison2)`
Builds the groups for this comparison.
`boolean`
`isEnabled(IComparisonScope scope, Comparison comparison)`
Returns the activation condition based on the scope and comparison objects.

### Methods inherited from class org.eclipse.emf.compare.rcp.ui.structuremergeviewer.groups.AbstractDifferenceGroupProvider

`defaultSelected, dispose, getComparison, getCrossReferenceAdapter, getGroups, getLabel, getTreeNodes, groupsAreBuilt, isAdapterForType, setDefaultSelected, setLabel`

### Methods inherited from class org.eclipse.emf.common.notify.impl.AdapterImpl

`getTarget, notifyChanged, setTarget, unsetTarget`

### 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.common.notify.Adapter

`getTarget, notifyChanged, setTarget`

## Field Details

### DEFAULT_DIFF_GROUP_FILTER_PREDICATE

public static final com.google.common.base.Predicate<? super Diff> DEFAULT_DIFF_GROUP_FILTER_PREDICATE
The default predicate used to filter differences in difference groups. The predicate returns true for diffs that do not have a direct or indirect real conflict and that do not have only pseudo conflicts.

## Constructor Details

### ThreeWayComparisonGroupProvider

public ThreeWayComparisonGroupProvider()

## Method Details

### isEnabled

public boolean isEnabled(IComparisonScope scope, Comparison comparison)
Returns the activation condition based on the scope and comparison objects.

Specified by:
  `isEnabled` in interface `IDifferenceGroupProvider`
Overrides:
  `isEnabled` in class `AbstractDifferenceGroupProvider`
Parameters:
  `scope` - The scope on which the group provider will be applied.
  `comparison` - The comparison which is to be displayed in the structural view.
Returns:
  The activation condition based on the scope and comparison objects.
See Also:
  - `IDifferenceGroupProvider.isEnabled(org.eclipse.emf.compare.scope.IComparisonScope, org.eclipse.emf.compare.Comparison)`

### buildGroups

protected Collection<? extends IDifferenceGroup> buildGroups(Comparison comparison2)
Description copied from class: `AbstractDifferenceGroupProvider`
Builds the groups for this comparison. The framework expects that all groups are fully initialized ( their sub tree should be built). Extending `IDifferenceGroupProvider2` needs to override this method to provid groups.

Overrides:
  `buildGroups` in class `AbstractDifferenceGroupProvider`
Parameters:
  `comparison2` - comparison against which the groups will be built.
Returns:
  Newly built collections of `IDifferenceGroup`.