com.lowagie.rups.model

## Class TreeNodeFactory

- java.lang.Object
- - com.lowagie.rups.model.TreeNodeFactory

-     public class TreeNodeFactory
      extends java.lang.Object

  A factory that creates TreeNode objects corresponding with PDF objects.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.ArrayList<PdfObjectTreeNode>` | `nodes` An list containing the nodes of every indirect object.
    `protected IndirectObjectFactory` | `objects` The factory that can produce all indirect objects.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TreeNodeFactory(IndirectObjectFactory objects)` Creates a factory that can produce TreeNode objects corresponding with PDF objects.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `private void` | `addNodes(PdfObjectTreeNode parent, PdfObjectTreeNode child)` Tries adding a child node to a parent node without throwing an exception.
    `void` | `expandNode(PdfObjectTreeNode node)` Creates the Child TreeNode objects for a PDF object TreeNode.
    `PdfObjectTreeNode` | `getChildNode(PdfObjectTreeNode node, PdfName key)` Finds a specific child of dictionary node.
    `PdfObjectTreeNode` | `getNode(int ref)` Gets a TreeNode for an indirect objects.

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

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

- - ### Field Detail

    - #### objects

          protected IndirectObjectFactory objects

      The factory that can produce all indirect objects.

    - #### nodes

          protected java.util.ArrayList<PdfObjectTreeNode> nodes

      An list containing the nodes of every indirect object.

  - ### Constructor Detail

    - #### TreeNodeFactory

          public TreeNodeFactory(IndirectObjectFactory objects)

      Creates a factory that can produce TreeNode objects corresponding with PDF objects.
      Parameters:
        `objects` - a factory that can produce all the indirect objects of a PDF file.

  - ### Method Detail

    - #### getNode

          public PdfObjectTreeNode getNode(int ref)

      Gets a TreeNode for an indirect objects.
      Parameters:
        `ref` - the reference number of the indirect object.
      Returns:
        the TreeNode representing the PDF object

    - #### expandNode

          public void expandNode(PdfObjectTreeNode node)

      Creates the Child TreeNode objects for a PDF object TreeNode.
      Parameters:
        `node` - the parent node

    - #### getChildNode

          public PdfObjectTreeNode getChildNode(PdfObjectTreeNode node,
                                       PdfName key)

      Finds a specific child of dictionary node.
      Parameters:
        `node` - the node with a dictionary among its children
        `key` - the key of the item corresponding with the node we need

    - #### addNodes

          private void addNodes(PdfObjectTreeNode parent,
                      PdfObjectTreeNode child)

      Tries adding a child node to a parent node without throwing an exception. Normally, if the child node is already added as one of the ancestors, an IllegalArgumentException is thrown (to avoid an endless loop). Loops like this are allowed in PDF, not in a JTree.
      Parameters:
        `parent` - the parent node
        `child` - a child node