# Class Node

java.lang.Object
org.apache.jasper.compiler.Node

All Implemented Interfaces:
  `TagConstants`

Direct Known Subclasses:
  `Node.AttributeDirective`, `Node.AttributeGenerator`, `Node.ChildInfoBase`, `Node.Comment`, `Node.DoBodyAction`, `Node.ELExpression`, `Node.FallBackAction`, `Node.ForwardAction`, `Node.GetProperty`, `Node.IncludeAction`, `Node.IncludeDirective`, `Node.InvokeAction`, `Node.JspElement`, `Node.JspOutput`, `Node.JspRoot`, `Node.JspText`, `Node.PageDirective`, `Node.ParamAction`, `Node.ParamsAction`, `Node.PlugIn`, `Node.Root`, `Node.ScriptingElement`, `Node.SetProperty`, `Node.TagDirective`, `Node.TaglibDirective`, `Node.TemplateText`, `Node.UninterpretedTag`, `Node.UseBean`, `Node.VariableDirective`

public abstract class Node extends Object implements TagConstants
An internal data representation of a JSP page or a JSP document (XML). Also included here is a visitor class for traversing nodes.

Author:
  Kin-man Chung, Jan Luehe, Shawn Bayern, Mark Roth

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `Node.AttributeDirective`
  Represents an attribute directive
  `static class`
  `Node.AttributeGenerator`
  Used as a placeholder for the evaluation code of a custom action attribute (used by the tag plugin machinery only).
  `static class`
  `Node.ChildInfo`
  Collected information about child elements.
  `static class`
  `Node.ChildInfoBase`
  `static class`
  `Node.Comment`
  Represents a Jsp comment Comments are kept for completeness.
  `static class`
  `Node.CustomTag`
  Represents a custom tag
  `static class`
  `Node.Declaration`
  Represents a declaration
  `static class`
  `Node.DoBodyAction`
  Represents a <jsp:doBody> tag file action
  `static class`
  `Node.ELExpression`
  Represents an EL expression.
  `static class`
  `Node.Expression`
  Represents an expression.
  `static class`
  `Node.FallBackAction`
  Represents a fallback action
  `static class`
  `Node.ForwardAction`
  Represents a forward action
  `static class`
  `Node.GetProperty`
  Represents a getProperty action
  `static class`
  `Node.IncludeAction`
  Represents an include action
  `static class`
  `Node.IncludeDirective`
  Represents an include directive
  `static class`
  `Node.InvokeAction`
  Represents a <jsp:invoke> tag file action
  `static class`
  `Node.JspAttribute`
  Represents attributes that can be request time expressions.
  `static class`
  `Node.JspBody`
  Represents a JspBody node (<jsp:body>)
  `static class`
  `Node.JspElement`
  Represents a <jsp:element>.
  `static class`
  `Node.JspOutput`
  Represents a <jsp:output>.
  `static class`
  `Node.JspRoot`
  Represents the root of a Jsp document (XML syntax)
  `static class`
  `Node.JspText`
  Represents the body of a <jsp:text> element
  `static class`
  `Node.NamedAttribute`
  Represents a Named Attribute (<jsp:attribute>)
  `static class`
  `Node.Nodes`
  An ordered list of Node, used to represent the body of an element, or a jsp page of jsp document.
  `static class`
  `Node.PageDirective`
  Represents a page directive
  `static class`
  `Node.ParamAction`
  Represents a param action
  `static class`
  `Node.ParamsAction`
  Represents a params action
  `static class`
  `Node.PlugIn`
  Represents a plugin action
  `static class`
  `Node.Root`
  Represents the root of a Jsp page or Jsp document
  `static class`
  `Node.ScriptingElement`
  Represents an expression, declaration, or scriptlet
  `static class`
  `Node.Scriptlet`
  Represents a scriptlet
  `static class`
  `Node.SetProperty`
  Represents a setProperty action
  `static class`
  `Node.TagDirective`
  Represents a tag directive
  `static class`
  `Node.TaglibDirective`
  Represents a custom taglib directive
  `static class`
  `Node.TemplateText`
  Represents a template text string
  `static class`
  `Node.UninterpretedTag`
  Represents an uninterpreted tag, from a Jsp document
  `static class`
  `Node.UseBean`
  Represents a useBean action
  `static class`
  `Node.VariableDirective`
  Represents a variable directive
  `static class`
  `Node.Visitor`
  A visitor class for visiting the node.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Attributes`
  `attrs`
  `protected int`
  `beginJavaLine`
  `protected Node.Nodes`
  `body`
  `protected int`
  `endJavaLine`
  `protected String`
  `innerClassName`
  `protected String`
  `localName`
  `protected Node.Nodes`
  `namedAttributeNodes`
  `protected Attributes`
  `nonTaglibXmlnsAttrs`
  `protected Node`
  `parent`
  `protected String`
  `qName`
  `protected Mark`
  `startMark`
  `protected Attributes`
  `taglibAttrs`
  `protected String`
  `text`

  ### Fields inherited from interface org.apache.jasper.compiler.TagConstants

  `ATTRIBUTE_ACTION, ATTRIBUTE_DIRECTIVE_ACTION, BODY_ACTION, DECLARATION_ACTION, DIRECTIVE_ACTION, DOBODY_ACTION, ELEMENT_ACTION, EXPRESSION_ACTION, FALLBACK_ACTION, FORWARD_ACTION, GET_PROPERTY_ACTION, INCLUDE_ACTION, INCLUDE_DIRECTIVE_ACTION, INVOKE_ACTION, JSP_ATTRIBUTE_ACTION, JSP_ATTRIBUTE_DIRECTIVE_ACTION, JSP_BODY_ACTION, JSP_DECLARATION_ACTION, JSP_DOBODY_ACTION, JSP_ELEMENT_ACTION, JSP_EXPRESSION_ACTION, JSP_FALLBACK_ACTION, JSP_FORWARD_ACTION, JSP_GET_PROPERTY_ACTION, JSP_INCLUDE_ACTION, JSP_INCLUDE_DIRECTIVE_ACTION, JSP_INVOKE_ACTION, JSP_OUTPUT_ACTION, JSP_PAGE_DIRECTIVE_ACTION, JSP_PARAM_ACTION, JSP_PARAMS_ACTION, JSP_PLUGIN_ACTION, JSP_ROOT_ACTION, JSP_SCRIPTLET_ACTION, JSP_SET_PROPERTY_ACTION, JSP_TAG_DIRECTIVE_ACTION, JSP_TAGLIB_DIRECTIVE_ACTION, JSP_TEXT_ACTION, JSP_TEXT_ACTION_END, JSP_URI, JSP_USE_BEAN_ACTION, JSP_VARIABLE_DIRECTIVE_ACTION, OUTPUT_ACTION, PAGE_DIRECTIVE_ACTION, PARAM_ACTION, PARAMS_ACTION, PLUGIN_ACTION, ROOT_ACTION, SCRIPTLET_ACTION, SET_PROPERTY_ACTION, TAG_DIRECTIVE_ACTION, TAGLIB_DIRECTIVE_ACTION, TEXT_ACTION, URN_JSPTAGDIR, URN_JSPTLD, USE_BEAN_ACTION, VARIABLE_DIRECTIVE_ACTION`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Attributes`
  `getAttributes()`
  `String`
  `getAttributeValue(String name)`
  `int`
  `getBeginJavaLine()`
  `Node.Nodes`
  `getBody()`
  `int`
  `getEndJavaLine()`
  `String`
  `getInnerClassName()`
  `String`
  `getLocalName()`
  `Node.NamedAttribute`
  `getNamedAttributeNode(String name)`
  Searches all sub-nodes of this node for jsp:attribute standard actions with the given name.
  `Node.Nodes`
  `getNamedAttributeNodes()`
  Searches all subnodes of this node for jsp:attribute standard actions, and returns that set of nodes as a Node.Nodes object.
  `Attributes`
  `getNonTaglibXmlnsAttributes()`
  `Node`
  `getParent()`
  `String`
  `getQName()`
  `Node.Root`
  `getRoot()`
  `Mark`
  `getStart()`
  `Attributes`
  `getTaglibAttributes()`
  `String`
  `getText()`
  `String`
  `getTextAttribute(String name)`
  Get the attribute that is non request time expression, either from the attribute of the node, or from a jsp:attribute
  `void`
  `setAttributes(Attributes attrs)`
  `void`
  `setBeginJavaLine(int begin)`
  `void`
  `setBody(Node.Nodes body)`
  `void`
  `setEndJavaLine(int end)`
  `void`
  `setInnerClassName(String icn)`

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

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

- ## Field Details

  - ### attrs

    protected Attributes attrs

  - ### taglibAttrs

    protected Attributes taglibAttrs

  - ### nonTaglibXmlnsAttrs

    protected Attributes nonTaglibXmlnsAttrs

  - ### body

    protected Node.Nodes body

  - ### text

    protected String text

  - ### startMark

    protected Mark startMark

  - ### beginJavaLine

    protected int beginJavaLine

  - ### endJavaLine

    protected int endJavaLine

  - ### parent

    protected Node parent

  - ### namedAttributeNodes

    protected Node.Nodes namedAttributeNodes

  - ### qName

    protected String qName

  - ### localName

    protected String localName

  - ### innerClassName

    protected String innerClassName

- ## Method Details

  - ### getQName

    public String getQName()

  - ### getLocalName

    public String getLocalName()

  - ### getAttributes

    public Attributes getAttributes()

  - ### getTaglibAttributes

    public Attributes getTaglibAttributes()

  - ### getNonTaglibXmlnsAttributes

    public Attributes getNonTaglibXmlnsAttributes()

  - ### setAttributes

    public void setAttributes(Attributes attrs)

  - ### getAttributeValue

    public String getAttributeValue(String name)

  - ### getTextAttribute

    public String getTextAttribute(String name)
    Get the attribute that is non request time expression, either from the attribute of the node, or from a jsp:attribute
    Parameters:
      `name` - The name of the attribute
    Returns:
      The attribute value

  - ### getNamedAttributeNode

    public Node.NamedAttribute getNamedAttributeNode(String name)
    Searches all sub-nodes of this node for jsp:attribute standard actions with the given name.

    This should always be called and only be called for nodes that accept dynamic runtime attribute expressions.

    Parameters:
      `name` - The name of the attribute
    Returns:
      the NamedAttribute node of the matching named attribute, nor null if no such node is found.

  - ### getNamedAttributeNodes

    public Node.Nodes getNamedAttributeNodes()
    Searches all subnodes of this node for jsp:attribute standard actions, and returns that set of nodes as a Node.Nodes object.
    Returns:
      Possibly empty Node.Nodes object containing any jsp:attribute subnodes of this Node

  - ### getBody

    public Node.Nodes getBody()

  - ### setBody

    public void setBody(Node.Nodes body)

  - ### getText

    public String getText()

  - ### getStart

    public Mark getStart()

  - ### getParent

    public Node getParent()

  - ### getBeginJavaLine

    public int getBeginJavaLine()

  - ### setBeginJavaLine

    public void setBeginJavaLine(int begin)

  - ### getEndJavaLine

    public int getEndJavaLine()

  - ### setEndJavaLine

    public void setEndJavaLine(int end)

  - ### getRoot

    public Node.Root getRoot()

  - ### getInnerClassName

    public String getInnerClassName()

  - ### setInnerClassName

    public void setInnerClassName(String icn)