TemplateNodeModel (FreeMarker 2.3.23 API)
Date: 2015-07-05

freemarker.template

## Interface TemplateNodeModel

- All Superinterfaces:
    TemplateModel
  All Known Implementing Classes:
    NodeListModel, NodeModel

      public interface TemplateNodeModel
      extends TemplateModel

  "node" template language data type: an object that is a node in a tree. A tree of nodes can be recursively visited using the <#visit...> and <#recurse...> directives. This API is largely based on the W3C Document Object Model (DOM) API. However, it's meant to be generally useful for describing any tree of objects that you wish to navigate using a recursive visitor design pattern (or simply through being able to get the parent and child nodes).

  See the XML Processing Guide for a concrete application.

  Since:
    FreeMarker 2.3

- - ### Field Summary

    - ### Fields inherited from interface freemarker.template.TemplateModel

      `NOTHING`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `TemplateSequenceModel` | `getChildNodes()`
    `String` | `getNodeName()`
    `String` | `getNodeNamespace()`
    `String` | `getNodeType()`
    `TemplateNodeModel` | `getParentNode()`

- - ### Method Detail

    - #### getParentNode

          TemplateNodeModel getParentNode()
                                   throws TemplateModelException

      Returns:
        the parent of this node or null, in which case this node is the root of the tree.
      Throws:
        `TemplateModelException`

    - #### getChildNodes

          TemplateSequenceModel getChildNodes()
                                       throws TemplateModelException

      Returns:
        a sequence containing this node's children. If the returned value is null or empty, this is essentially a leaf node.
      Throws:
        `TemplateModelException`

    - #### getNodeName

          String getNodeName()
                      throws TemplateModelException

      Returns:
        a String that is used to determine the processing routine to use. In the XML implementation, if the node is an element, it returns the element's tag name. If it is an attribute, it returns the attribute's name. It returns "@text" for text nodes, "@pi" for processing instructions, and so on.
      Throws:
        `TemplateModelException`

    - #### getNodeType

          String getNodeType()
                      throws TemplateModelException

      Returns:
        a String describing the type of node this is. In the W3C DOM, this should be "element", "text", "attribute", etc. A TemplateNodeModel implementation that models other kinds of trees could return whatever it appropriate for that application. It can be null, if you don't want to use node-types.
      Throws:
        `TemplateModelException`

    - #### getNodeNamespace

          String getNodeNamespace()
                           throws TemplateModelException

      Returns:
        the XML namespace URI with which this node is associated. If this TemplateNodeModel implementation is not XML-related, it will almost certainly be null. Even for XML nodes, this will often be null.
      Throws:
        `TemplateModelException`