Package org.eclipse.team.core.variants

# Interface IResourceVariantTree

All Known Implementing Classes:
  `AbstractResourceVariantTree`, `ResourceVariantTree`, `ThreeWayRemoteTree`

public interface IResourceVariantTree
A handle that provides access to locally cached resource variants that represent a resource line-up such as a project version or branch.

Since:
  3.0
See Also:
  - `AbstractResourceVariantTree`
  - `ResourceVariantTree`
Restriction:
  This interface is not intended to be implemented by clients. However, clients may subclass `AbstractResourceVariantTree` or `ResourceVariantTree`.

## Method Summary

Modifier and Type
Method
Description
`void`
`flushVariants(IResource resource, int depth)`
Flush any variants in the tree for the given resource to the depth specified.
`IResourceVariant`
`getResourceVariant(IResource resource)`
Return the resource variant corresponding to the local resource.
`boolean`
`hasResourceVariant(IResource resource)`
Return whether the local resource has a variant in this tree.
`IResource[]`
`members(IResource resource)`
Returns the members of the local resource that have resource variants in this tree.
`IResource[]`
`refresh(IResource[] resources, int depth, IProgressMonitor monitor)`
Refreshes the resource variant tree for the specified resources and possibly their descendants, depending on the depth.
`IResource[]`
`roots()`
Returns the list of root resources for which this tree may have resource variants.

## Method Details

### roots

IResource[] roots()
Returns the list of root resources for which this tree may have resource variants.

Returns:
  the list of root resources.

### members

IResource[] members(IResource resource) throws TeamException
Returns the members of the local resource that have resource variants in this tree. The members may or may not exist locally. The resource variants corresponding to the members can be retrieved using `getResourceVariant(IResource)`.

Parameters:
  `resource` - the local resource
Returns:
  the members of the local resource for which this tree contains resource variants
Throws:
  `TeamException` - if an error occurs

### getResourceVariant

IResourceVariant getResourceVariant(IResource resource) throws TeamException
Return the resource variant corresponding to the local resource. Return `null` if there is no variant for the resource.

Parameters:
  `resource` - the local resource
Returns:
  the resource's variant in this tree
Throws:
  `TeamException` - if an error occurs

### hasResourceVariant

boolean hasResourceVariant(IResource resource) throws TeamException
Return whether the local resource has a variant in this tree.

Parameters:
  `resource` - the local resource
Returns:
  `true` if the tree contains a variant for the resource
Throws:
  `TeamException` - if an error occurs

### refresh

IResource[] refresh(IResource[] resources, int depth, IProgressMonitor monitor) throws TeamException
Refreshes the resource variant tree for the specified resources and possibly their descendants, depending on the depth.

Parameters:
  `resources` - the resources whose variants should be refreshed
  `depth` - the depth of the refresh (one of `IResource.DEPTH_ZERO`, `IResource.DEPTH_ONE`, or `IResource.DEPTH_INFINITE`)
  `monitor` - a progress monitor
Returns:
  the array of resources whose corresponding variants have changed as a result of the refresh
Throws:
  `TeamException` - if an error occurs

### flushVariants

void flushVariants(IResource resource, int depth) throws TeamException
Flush any variants in the tree for the given resource to the depth specified.

Parameters:
  `resource` - the resource
  `depth` - the flush depth (one of `IResource.DEPTH_ZERO`, `IResource.DEPTH_ONE`, or `IResource.DEPTH_INFINITE`)
Throws:
  `TeamException` - if an error occurs