Package com.documentum.operations

# Interface IDfOperationNodeTreeBuilder

public interface IDfOperationNodeTreeBuilder
Responsible for iterating through a list of populators for building and managing the node tree for the operation. IDfOperationNodeTreeBuilder acts as a bridge between business logic for node population using IDfPopulator and the operation.

When a client application invokes

`operation.add(object);`

internally, nodeTreeBuilder.add(object) is invoked. At that time, the list of configured populators for that operation is visited until a populator assumes responsibility for populating a node for that object.

A populator may result in invoking

`nodeTreeBuilder.add(parentNode, edge, obj)`

for all child objects. For instance, a directory populator would invoke add(parentNode, edge, obj) for all files it contains. Or a populator might also invoke the add(obj) method if it decides that a particular logical child object should be added as a root node.

Since:
  7.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `IDfOperationNode`
  `add(IDfOperationNode parentNode, IDfNodeRelationship nodeRelationship, Object obj)`
  Results in appending a node for the corresponding object as a child node of the given parentNode by iterating through list of populators for the operation.
  `IDfOperationNode`
  `add(Object obj)`
  This method results in adding a node for the corresponding object as root node.

- ## Method Details

  - ### add

    IDfOperationNode add(Object obj) throws DfException
    This method results in adding a node for the corresponding object as root node. This method can be invoked from either an operation or a populator to add root nodes.
    Parameters:
      `obj` -
    Returns:
      IDfOperationNode root node in the node tree of the operation.
    Throws:
      `DfException`

  - ### add

    IDfOperationNode add(IDfOperationNode parentNode, IDfNodeRelationship nodeRelationship, Object obj) throws DfException
    Results in appending a node for the corresponding object as a child node of the given parentNode by iterating through list of populators for the operation. This method is called from populators only.
    Parameters:
      `parentNode` - A parent node. For example, when adding a directory for an import operation, this results in adding a node for the directory itself and child nodes for the files it contains.
      `nodeRelationship` - An operation edge represents the relationship between a parent node and the node being added as result of execution of this method.
      `obj` - Object for which a node needs to be created
    Returns:
      IDfOperationNode node corresponding to the given obj.
    Throws:
      `DfException`