Class PDNameTreeNode

java.lang.Object
org.apache.pdfbox.pdmodel.common.PDNameTreeNode
All Implemented Interfaces:
COSObjectable
Direct Known Subclasses:
PDDestinationNameTreeNode, PDEmbeddedFilesNameTreeNode, PDJavascriptNameTreeNode

public class PDNameTreeNode extends Object implements COSObjectable
This class represents a PDF Name tree. See the PDF Reference 1.5 section 3.8.5 for more details.
Version:
$Revision: 1.4 $
Author:
Ben Litchfield
  • Constructor Details

    • PDNameTreeNode

      public PDNameTreeNode(Class<? extends COSObjectable> valueClass)
      Constructor.
      Parameters:
      valueClass - The PD Model type of object that is the value.
    • PDNameTreeNode

      public PDNameTreeNode(COSDictionary dict, Class<? extends COSObjectable> valueClass)
      Constructor.
      Parameters:
      dict - The dictionary that holds the name information.
      valueClass - The PD Model type of object that is the value.
  • Method Details

    • getCOSObject

      public COSBase getCOSObject()
      Convert this standard java object to a COS object.
      Specified by:
      getCOSObject in interface COSObjectable
      Returns:
      The cos object that matches this Java object.
    • getCOSDictionary

      public COSDictionary getCOSDictionary()
      Convert this standard java object to a COS object.
      Returns:
      The cos object that matches this Java object.
    • getParent

      public PDNameTreeNode getParent()
      Returns the parent node.
      Returns:
      parent node
    • setParent

      public void setParent(PDNameTreeNode parentNode)
      Sets the parent to the given node.
      Parameters:
      parentNode - the node to be set as parent
    • isRootNode

      public boolean isRootNode()
      Determines if this is a root node or not.
      Returns:
      true if this is a root node
    • getKids

      public List<PDNameTreeNode> getKids()
      Return the children of this node. This list will contain PDNameTreeNode objects.
      Returns:
      The list of children or null if there are no children.
    • setKids

      public void setKids(List<? extends PDNameTreeNode> kids)
      Set the children of this named tree.
      Parameters:
      kids - The children of this named tree.
    • getValue

      public Object getValue(String name) throws IOException
      The name to retrieve.
      Parameters:
      name - The name in the tree.
      Returns:
      The value of the name in the tree.
      Throws:
      IOException - If an there is a problem creating the destinations.
    • getNames

      public Map<String,COSObjectable> getNames() throws IOException
      This will return a map of names on this level. The key will be a string, and the value will depend on where this class is being used.
      Returns:
      ordered map of COS objects or null if the dictionary contains no 'Names' entry on this level.
      Throws:
      IOException - If there is an error while creating the sub types.
      See Also:
    • convertCOSToPD

      protected COSObjectable convertCOSToPD(COSBase base) throws IOException
      Method to convert the COS value in the name tree to the PD Model object. The default implementation will simply return the given COSBase object. Subclasses should do something specific.
      Parameters:
      base - The COS object to convert.
      Returns:
      The converted PD Model object.
      Throws:
      IOException - If there is an error during creation.
    • createChildNode

      protected PDNameTreeNode createChildNode(COSDictionary dic)
      Create a child node object.
      Parameters:
      dic - The dictionary for the child node object to refer to.
      Returns:
      The new child node object.
    • setNames

      public void setNames(Map<String,? extends COSObjectable> names)
      Set the names of for this node. The keys should be java.lang.String and the values must be a COSObjectable. This method will set the appropriate upper and lower limits based on the keys in the map.
      Parameters:
      names - map of names to objects, or null
    • getUpperLimit

      public String getUpperLimit()
      Get the highest value for a key in the name map.
      Returns:
      The highest value for a key in the map.
    • getLowerLimit

      public String getLowerLimit()
      Get the lowest value for a key in the name map.
      Returns:
      The lowest value for a key in the map.