# 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.ForwardAction`, `Node.GetProperty`, `Node.IncludeAction`, `Node.IncludeDirective`, `Node.InvokeAction`, `Node.JspElement`, `Node.JspOutput`, `Node.JspRoot`, `Node.JspText`, `Node.PageDirective`, `Node.ParamAction`, `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.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.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, 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_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_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, 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)