Manages a depenency tree. Can add children to the tree, point to tree's "rows" such as the root row or the current row.
This is necessary because the tree can have many parents and many children in the same tree. This leads to basically, every node with 0 dependencies having its own tree in a tree, with nodes being shared across trees. Children need to be added to many parents, and the reverse relationship of children need to handled as well.
The manager keeps track of managed Nodes so that nodes do not get duplicated, keeps pointers to the current Row of nodes, and to the root (row with no dependencies). This allows future tasks delegate to this manager to traverse through all the tree's rows.
| Type | Name and description |
|---|---|
java.lang.Object |
currentTreeRowCurrent row of the dependency tree. |
static org.gradle.api.logging.Logger |
log |
java.lang.Object |
managedNodesTree nodes that are already manager by this manager. |
java.lang.Object |
treeRootTree nodes that contain 0 dependencies. |
| Type | Name and description |
|---|---|
java.lang.Object |
addChildren(java.util.Map<XsdNamespace, java.util.Set<java.lang.String>> children)Adds children namespaces to this dependency tree. |
java.lang.Object |
createTreeRoot(java.util.List<XsdNamespace> baseNamespaces)Creates the root row of this dependency tree. |
java.util.Set<TreeNode<XsdNamespace>> |
getNextDescendants(java.util.Collection<TreeNode<XsdNamespace>> currentNodes)Returns the next descendants in the tree from the passed in nodes. |
| Methods inherited from class | Name |
|---|---|
class java.lang.Object |
java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() |
Current row of the dependency tree.
Tree nodes that are already manager by this manager.
Tree nodes that contain 0 dependencies. Each node has its own mini dependency tree. With nodes being shared to create the actual dependency tree.
Adds children namespaces to this dependency tree.
children - map of namespace objects and dependency strings to add to
this dependency tree. Children to add are the keys of the map passed in.Creates the root row of this dependency tree. New nodes are created, one for each namespace passed in. this#currentTreeRow is set with this operation.
baseNamespaces - list of namespaces with 0 dependenciesReturns the next descendants in the tree from the passed in nodes. Input is assumed to be the a row of nodes in the dependency tree.
null is returnedcurrentNodes - the current row of nodes being worked on