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

## Class AbstractDifferenceGroupProvider

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

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

Direct Known Subclasses:
  `ByResourceGroupProvider`, `DefaultGroupProvider`, `EmptyDifferenceGroupProvider`, `KindGroupProvider`, `ThreeWayComparisonGroupProvider`

    public abstract class AbstractDifferenceGroupProvider
    extends AdapterImpl
    implements IDifferenceGroupProvider2

Abstract implementation of `IDifferenceGroupProvider`.

Since:
  4.0

### Nested Class Summary

### 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
`protected boolean` `activeByDefault` The initial activation state of the group provider.
`protected String` `label` A human-readable label for this group provider.

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

`target`

### Constructor Summary

Constructors
`AbstractDifferenceGroupProvider()` Default constructor.

### Method Summary

All Methods Instance Methods Concrete Methods
`protected Collection<? extends IDifferenceGroup>` `buildGroups​(Comparison aComparison)` Builds the groups for this comparison.
`boolean` `defaultSelected()`
`void` `dispose()` Dispose this difference group provider.
`protected Comparison` `getComparison()`
`protected ECrossReferenceAdapter` `getCrossReferenceAdapter()` Returns the cross reference adapter used by this difference group provider.
`Collection<? extends IDifferenceGroup>` `getGroups​(Comparison aComparison)` This will be called internally by the grouping actions in order to determine how the differences should be grouped in the structural view.
`String` `getLabel()`
`List<TreeNode>` `getTreeNodes​(EObject eObject)` Returns all `TreeNode`s that are wrapping the given `eObject`.
`boolean` `groupsAreBuilt()` Tells if the groups of this provider have been already built for a comparison.
`boolean` `isAdapterForType​(Object type)`
`boolean` `isEnabled​(IComparisonScope scope, Comparison comparison)` Returns the activation condition based on the scope and comparison objects.
`void` `setDefaultSelected​(boolean active)`
`void` `setLabel​(String label)`

### 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 Detail

#### label

    protected String label

A human-readable label for this group provider. This will be displayed in the EMF Compare UI.

Since:
  4.1

#### activeByDefault

    protected boolean activeByDefault

The initial activation state of the group provider.

Since:
  4.1

### Constructor Detail

#### AbstractDifferenceGroupProvider

    public AbstractDifferenceGroupProvider()

Default constructor.

### Method Detail

#### getLabel

    public String getLabel()

Since:
  4.1
See Also:
  `org.eclipse.emf.compare.rcp.ui.structuremergeviewer.groups.IDifferenceGroupProvider#getLabel()`

#### setLabel

    public void setLabel​(String label)

Since:
  4.1
See Also:
  `org.eclipse.emf.compare.rcp.ui.structuremergeviewer.groups.IDifferenceGroupProvider#setLabel(java.lang.String)`

#### defaultSelected

    public boolean defaultSelected()

Since:
  4.1
See Also:
  `org.eclipse.emf.compare.rcp.ui.structuremergeviewer.groups.IDifferenceGroupProvider#defaultSelected()`

#### setDefaultSelected

    public void setDefaultSelected​(boolean active)

Since:
  4.1
See Also:
  `org.eclipse.emf.compare.rcp.ui.structuremergeviewer.groups.IDifferenceGroupProvider#setDefaultSelected(boolean)`

#### 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`
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.
Since:
  4.1
See Also:
  `IDifferenceGroupProvider.isEnabled(org .eclipse.emf.compare.scope.IComparisonScope, org.eclipse.emf.compare.Comparison)`

#### getCrossReferenceAdapter

    protected final ECrossReferenceAdapter getCrossReferenceAdapter()

Returns the cross reference adapter used by this difference group provider.

Returns:
  the crossReferenceAdapter the cross reference adapter used by this difference group provider.

#### getTreeNodes

    public List<TreeNode> getTreeNodes​(EObject eObject)

Returns all `TreeNode`s that are wrapping the given `eObject`. It internally use a cross reference adapter.

Specified by:
  `getTreeNodes` in interface `IDifferenceGroupProvider`
Parameters:
  `eObject` - the object from which we want inverse reference.
Returns:
  all `TreeNode`s targeting the given `eObject` through `TreePackage.Literals.TREE_NODE__DATA`.
See Also:
  `org.eclipse.emf.compare.rcp.ui.structuremergeviewer.groups.IDifferenceGroupProvider#getTreeNodes(java.lang.Object)`

#### isAdapterForType

    public boolean isAdapterForType​(Object type)

Specified by:
  `isAdapterForType` in interface `Adapter`
Overrides:
  `isAdapterForType` in class `AdapterImpl`
See Also:
  `AdapterImpl.isAdapterForType(java.lang.Object)`

#### getGroups

    public Collection<? extends IDifferenceGroup> getGroups​(Comparison aComparison)

This will be called internally by the grouping actions in order to determine how the differences should be grouped in the structural view.

Specified by:
  `getGroups` in interface `IDifferenceGroupProvider`
Parameters:
  `aComparison` - The comparison which is to be displayed in the structural view. By default, its containment tree will be displayed.
Returns:
  The collection of difference groups that are to be displayed in the structural viewer. An empty group will not be displayed at all. If `null`, we'll fall back to the default behavior.
Since:
  4.1
See Also:
  `IDifferenceGroupProvider.getGroups(org.eclipse.emf.compare.Comparison)`

#### buildGroups

    protected Collection<? extends IDifferenceGroup> buildGroups​(Comparison aComparison)

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.

Parameters:
  `aComparison` - comparison against which the groups will be built.
Returns:
  Newly built collections of `IDifferenceGroup`.
Since:
  4.1

#### groupsAreBuilt

    public boolean groupsAreBuilt()

Tells if the groups of this provider have been already built for a comparison.

Specified by:
  `groupsAreBuilt` in interface `IDifferenceGroupProvider2`
Returns:
  `true` if the groups has been built for this comparison or `false` otherwise.
Since:
  4.1
See Also:
  `IDifferenceGroupProvider2.groupsAreBuilt()`

#### getComparison

    protected Comparison getComparison()

Returns:
  comparison against which the groups has been built.
Since:
  4.1

#### dispose

    public void dispose()

Dispose this difference group provider.

Specified by:
  `dispose` in interface `IDifferenceGroupProvider`
Since:
  4.1
See Also:
  `IDifferenceGroupProvider.dispose()`