org.eclipse.compare.structuremergeviewer

## Interface IDiffContainer

All Superinterfaces:
  IDiffElement, ITypedElement

All Known Subinterfaces:
  ISynchronizeModelElement

All Known Implementing Classes:
  DiffContainer, DiffNode

    public interface IDiffContainer
    extends IDiffElement

`IDiffContainer` is a `IDiffElement` with children.

`IDiffContainer` are the inner nodes displayed by the `DiffTreeViewer`. `IDiffContainer` are typically created as the result of performing a compare with the `Differencer`.

Clients may implement this interface, or use one of the standard implementations, `DiffContainer` or `DiffNode`.

See Also:
  `Differencer`, `DiffTreeViewer`

### Field Summary

### Fields inherited from interface org.eclipse.compare.ITypedElement

`FOLDER_TYPE, TEXT_TYPE, UNKNOWN_TYPE`

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `add(IDiffElement child)` Adds the given child to this container.
`IDiffElement[]` `getChildren()` Returns the children of this container.
`boolean` `hasChildren()` Returns whether this container has at least one child.
`void` `removeToRoot(IDiffElement child)` Removes the given child from this container.

### Methods inherited from interface org.eclipse.compare.structuremergeviewer.IDiffElement

`getKind, getParent, setParent`

### Methods inherited from interface org.eclipse.compare.ITypedElement

`getImage, getName, getType`

### Method Detail

#### hasChildren

    boolean hasChildren()

Returns whether this container has at least one child. In some cases this methods avoids having to call the potential more costly `getChildren` method.

Returns:
  `true` if this container has at least one child

#### getChildren

    IDiffElement[] getChildren()

Returns the children of this container. If this container has no children an empty array is returned (not `null`).

Returns:
  the children of this container as an array

#### add

    void add(IDiffElement child)

Adds the given child to this container. If the child is already contained in this container, this method has no effect.

Parameters:
  `child` - the child to be added to this container

#### removeToRoot

    void removeToRoot(IDiffElement child)

Removes the given child from this container. If the container becomes empty it is removed from its container. If the child is not contained in this container, this method has no effect.

Parameters:
  `child` - the child to be removed from this container