# Interface ITreePathContentProvider

All Superinterfaces:
  `IContentProvider, IStructuredContentProvider`

public interface ITreePathContentProvider extends IStructuredContentProvider
An interface to content providers for tree-structure-oriented viewers that provides content based on the path of elements in the tree viewer.

Since:
  3.2
See Also:
  - `AbstractTreeViewer`

## Method Summary

Modifier and Type
Method
Description
`Object[]`
`getChildren(TreePath parentPath)`
Returns the child elements of the last element in the given path.
`Object[]`
`getElements(Object inputElement)`
Returns the elements to display in the viewer when its input is set to the given element.
`TreePath[]`
`getParents(Object element)`
Return the possible parent paths for the given element.
`boolean`
`hasChildren(TreePath path)`
Returns whether the last element of the given path has children.

### Methods inherited from interface IContentProvider

`dispose, inputChanged`

## Method Details

### getElements

Object[] getElements(Object inputElement)
Returns the elements to display in the viewer when its input is set to the given element. These elements can be presented as rows in a table, items in a list, etc. The result is not modified by the viewer.

NOTE: The returned array must not contain the given `inputElement`, since this leads to recursion issues in `AbstractTreeViewer` (see bug 9262).

Specified by:
  `getElements` in interface `IStructuredContentProvider`
Parameters:
  `inputElement` - the input element
Returns:
  the array of elements to display in the viewer

### getChildren

Object[] getChildren(TreePath parentPath)
Returns the child elements of the last element in the given path. Implementors may want to use the additional context of the complete path of a parent element in order to decide which children to return.

The provided path is relative to the input. The root elements must be obtained by calling `IStructuredContentProvider.getElements(Object)`.

The result is not modified by the viewer.

Parameters:
  `parentPath` - the path of the parent element
Returns:
  an array of child elements

### hasChildren

boolean hasChildren(TreePath path)
Returns whether the last element of the given path has children.

Intended as an optimization for when the viewer does not need the actual children. Clients may be able to implement this more efficiently than `getChildren`.

Parameters:
  `path` - the path
Returns:
  `true` if the lat element of the path has children, and `false` if it has no children

### getParents

TreePath[] getParents(Object element)
Return the possible parent paths for the given element. An empty array can be returned if the paths cannot be computed. If the element is a potential child of the input of the viewer, an empty tree path should be an entry in the returned array.

Parameters:
  `element` - the element
Returns:
  the possible parent paths for the given element