com.lowagie.rups.view.itext.treenodes

## Class PdfObjectTreeNode

- java.lang.Object
- - javax.swing.tree.DefaultMutableTreeNode
  - - com.lowagie.rups.view.icons.IconTreeNode
    - - com.lowagie.rups.view.itext.treenodes.PdfObjectTreeNode

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, javax.swing.tree.MutableTreeNode, javax.swing.tree.TreeNode
  Direct Known Subclasses:
    PdfPagesTreeNode, PdfPageTreeNode, PdfTrailerTreeNode

      public class PdfObjectTreeNode
      extends IconTreeNode

  Every node in our tree corresponds with a PDF object. This class is the superclass of all tree nodes used.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected PdfName` | `key` the key if the parent of this node is a dictionary.
    `protected int` | `number` if the object is indirect, the number of the PDF object.
    `protected PdfObject` | `object` the PDF object corresponding with this node.
    `protected boolean` | `recursive` indicates if the object is indirect and recursive.
    `private static long` | `serialVersionUID` a serial version UID.

    - ### Fields inherited from class com.lowagie.rups.view.icons.IconTreeNode

      `icon`

    - ### Fields inherited from class javax.swing.tree.DefaultMutableTreeNode

      `allowsChildren, children, EMPTY_ENUMERATION, parent, userObject`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `PdfObjectTreeNode(PdfObject object)` Creates a tree node for a PDF object.
    `protected` | `PdfObjectTreeNode(java.lang.String icon, PdfObject object)` Creates a tree node for a PDF object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `PdfObjectTreeNode` | `getAncestor()` Gets the tree path of an ancestor.
    `static java.lang.String` | `getCaption(PdfObject object)` Creates the caption for a PDF object.
    `static java.lang.String` | `getDictionaryEntryCaption(PdfDictionary dict, PdfName key)` Creates the caption for an object that is a dictionary entry.
    `static PdfObjectTreeNode` | `getInstance(PdfDictionary dict, PdfName key)` Creates an instance of a tree node for the object corresponding with a key in a dictionary.
    `static PdfObjectTreeNode` | `getInstance(PdfObject object)` Creates an instance of a tree node for a PDF object.
    `static PdfObjectTreeNode` | `getInstance(PdfObject object, int number)` Creates an instance of a tree node for an indirect object.
    `int` | `getNumber()` Getter for the object number in case the object is indirect.
    `PdfObject` | `getPdfObject()` Getter for the PDF Object.
    `boolean` | `isArray()` Tells you if the node contains an array.
    `boolean` | `isDictionary()` Tells you if the node contains a dictionary.
    `boolean` | `isDictionaryNode(PdfName key)` Checks if this node is a dictionary item with a specific key.
    `boolean` | `isIndirect()` Tells you if the object is indirect.
    `boolean` | `isIndirectReference()` Tells you if the node contains an indirect reference.
    `boolean` | `isRecursive()` Tells you if the object is a reference to a node higher up in the tree.
    `boolean` | `isStream()` Tells you if the node contains a stream.
    `void` | `setRecursive(boolean recursive)` Set this to true if the object is a reference to a node higher up in the tree.

    - ### Methods inherited from class com.lowagie.rups.view.icons.IconTreeNode

      `getIcon`

    - ### Methods inherited from class javax.swing.tree.DefaultMutableTreeNode

      `add, breadthFirstEnumeration, children, clone, depthFirstEnumeration, getAllowsChildren, getChildAfter, getChildAt, getChildBefore, getChildCount, getDepth, getFirstChild, getFirstLeaf, getIndex, getLastChild, getLastLeaf, getLeafCount, getLevel, getNextLeaf, getNextNode, getNextSibling, getParent, getPath, getPathToRoot, getPreviousLeaf, getPreviousNode, getPreviousSibling, getRoot, getSharedAncestor, getSiblingCount, getUserObject, getUserObjectPath, insert, isLeaf, isNodeAncestor, isNodeChild, isNodeDescendant, isNodeRelated, isNodeSibling, isRoot, pathFromAncestorEnumeration, postorderEnumeration, preorderEnumeration, remove, remove, removeAllChildren, removeFromParent, setAllowsChildren, setParent, setUserObject, toString`

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

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

- - ### Field Detail

    - #### object

          protected PdfObject object

      the PDF object corresponding with this node.

    - #### key

          protected PdfName key

      the key if the parent of this node is a dictionary.

    - #### number

          protected int number

      if the object is indirect, the number of the PDF object.

    - #### recursive

          protected boolean recursive

      indicates if the object is indirect and recursive.

    - #### serialVersionUID

          private static final long serialVersionUID

      a serial version UID.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### PdfObjectTreeNode

          protected PdfObjectTreeNode(PdfObject object)

      Creates a tree node for a PDF object.
      Parameters:
        `object` - the PDF object represented by this tree node.

    - #### PdfObjectTreeNode

          protected PdfObjectTreeNode(java.lang.String icon,
                           PdfObject object)

      Creates a tree node for a PDF object.
      Parameters:
        `icon` - the file with the icon
        `object` - the PDF object represented by this tree node.

  - ### Method Detail

    - #### getInstance

          public static PdfObjectTreeNode getInstance(PdfObject object)

      Creates an instance of a tree node for a PDF object.
      Parameters:
        `object` - the PDF object represented by this tree node.
      Returns:
        a PdfObjectTreeNode

    - #### getInstance

          public static PdfObjectTreeNode getInstance(PdfObject object,
                                      int number)

      Creates an instance of a tree node for an indirect object.
      Parameters:
        `object` - the PDF object represented by this tree node.
        `number` - the xref number of the indirect object
      Returns:
        a PdfObjectTreeNode

    - #### getInstance

          public static PdfObjectTreeNode getInstance(PdfDictionary dict,
                                      PdfName key)

      Creates an instance of a tree node for the object corresponding with a key in a dictionary.
      Parameters:
        `dict` - the dictionary that is the parent of this tree node.
        `key` - the dictionary key corresponding with the PDF object in this tree node.
      Returns:
        a PdfObjectTreeNode

    - #### getPdfObject

          public PdfObject getPdfObject()

      Getter for the PDF Object.
      Returns:
        the PDF object represented by this tree node.

    - #### getNumber

          public int getNumber()

      Getter for the object number in case the object is indirect.
      Returns:
        -1 for direct objects; the object number for indirect objects

    - #### isIndirectReference

          public boolean isIndirectReference()

      Tells you if the node contains an indirect reference.
      Returns:
        true if the object is an indirect reference

    - #### isIndirect

          public boolean isIndirect()

      Tells you if the object is indirect.
      Returns:
        true for indirect objects; false for direct objects.

    - #### isArray

          public boolean isArray()

      Tells you if the node contains an array.
      Returns:
        true if the object is a PdfArray

    - #### isDictionaryNode

          public boolean isDictionaryNode(PdfName key)

      Checks if this node is a dictionary item with a specific key.
      Parameters:
        `key` - the key of the node we're looking for

    - #### isDictionary

          public boolean isDictionary()

      Tells you if the node contains a dictionary.
      Returns:
        true if the object is a PdfDictionary

    - #### isStream

          public boolean isStream()

      Tells you if the node contains a stream.
      Returns:
        true if the object is a PRStream

    - #### setRecursive

          public void setRecursive(boolean recursive)

      Set this to true if the object is a reference to a node higher up in the tree.
      Parameters:
        `recursive` - true if the object is indirect and recursive

    - #### isRecursive

          public boolean isRecursive()

      Tells you if the object is a reference to a node higher up in the tree.
      Returns:
        true if the node is used recursively.

    - #### getCaption

          public static java.lang.String getCaption(PdfObject object)

      Creates the caption for a PDF object.
      Parameters:
        `object` - the object for which a caption has to be created.
      Returns:
        a caption for a PDF object

    - #### getDictionaryEntryCaption

          public static java.lang.String getDictionaryEntryCaption(PdfDictionary dict,
                                                   PdfName key)

      Creates the caption for an object that is a dictionary entry.
      Parameters:
        `dict` - a dictionary
        `key` - a key in the dictionary
      Returns:
        a caption for the object corresponding with the key in the dictionary.

    - #### getAncestor

          public PdfObjectTreeNode getAncestor()

      Gets the tree path of an ancestor. This only works with recursive references
      Returns:
        the treepath to an ancestor