Package org.eclipse.jgit.dircache

## Class DirCacheTree

- java.lang.Object
- - org.eclipse.jgit.dircache.DirCacheTree

    public class DirCacheTree
    extends Object

Single tree record from the 'TREE' `DirCache` extension.

A valid cache tree record contains the object id of a tree object and the total number of `DirCacheEntry` instances (counted recursively) from the DirCache contained within the tree. This information facilitates faster traversal of the index and quicker generation of tree objects prior to creating a new commit.

An invalid cache tree record indicates a known subtree whose file entries have changed in ways that cause the tree to no longer have a known object id. Invalid cache tree records must be revalidated prior to use.

### Method Summary

All Methods Instance Methods Concrete Methods
`DirCacheTree` `getChild​(int i)` Get the i-th child cache tree.
`int` `getChildCount()` Get the number of cached subtrees contained within this tree.
`int` `getEntrySpan()` Get the number of entries this tree spans within the DirCache.
`String` `getNameString()` Get the tree's name within its parent.
`String` `getPathString()` Get the tree's path within the repository.
`boolean` `isValid()` Determine if this cache is currently valid.
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Method Detail

#### isValid

    public boolean isValid()

Determine if this cache is currently valid.

A valid cache tree knows how many `DirCacheEntry` instances from the parent `DirCache` reside within this tree (recursively enumerated). It also knows the object id of the tree, as the tree should be readily available from the repository's object database.

Returns:
  true if this tree is knows key details about itself; false if the tree needs to be regenerated.

#### getEntrySpan

    public int getEntrySpan()

Get the number of entries this tree spans within the DirCache.

If this tree is not valid (see `isValid()`) this method's return value is always strictly negative (less than 0) but is otherwise an undefined result.

Returns:
  total number of entries (recursively) contained within this tree.

#### getChildCount

    public int getChildCount()

Get the number of cached subtrees contained within this tree.

Returns:
  number of child trees available through this tree.

#### getChild

    public DirCacheTree getChild​(int i)

Get the i-th child cache tree.

Parameters:
  `i` - index of the child to obtain.
Returns:
  the child tree.

#### getNameString

    public String getNameString()

Get the tree's name within its parent.

This method is not very efficient and is primarily meant for debugging and final output generation. Applications should try to avoid calling it, and if invoked do so only once per interesting entry, where the name is absolutely required for correct function.

Returns:
  name of the tree. This does not contain any '/' characters.

#### getPathString

    public String getPathString()

Get the tree's path within the repository.

This method is not very efficient and is primarily meant for debugging and final output generation. Applications should try to avoid calling it, and if invoked do so only once per interesting entry, where the name is absolutely required for correct function.

Returns:
  path of the tree, relative to the repository root. If this is not the root tree the path ends with '/'. The root tree's path string is the empty string ("").

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`