Node.CustomTag (Apache Tomcat 10.1.55 API Documentation)
Description: declaration: package: org.apache.jasper.compiler, class: Node, class: CustomTag

# Class Node.CustomTag

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

All Implemented Interfaces:
  `TagConstants`

Enclosing class:
  `Node`

public static class Node.CustomTag extends Node.ChildInfoBase
Represents a custom tag

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from class Node

  `Node.AttributeDirective, Node.AttributeGenerator, Node.ChildInfo, Node.ChildInfoBase, Node.Comment, Node.CustomTag, Node.Declaration, Node.DoBodyAction, Node.ELExpression, Node.Expression, Node.FallBackAction, Node.ForwardAction, Node.GetProperty, Node.IncludeAction, Node.IncludeDirective, Node.InvokeAction, Node.JspAttribute, Node.JspBody, Node.JspElement, Node.JspOutput, Node.JspRoot, Node.JspText, Node.NamedAttribute, Node.Nodes, Node.PageDirective, Node.ParamAction, Node.ParamsAction, Node.PlugIn, Node.Root, Node.ScriptingElement, Node.Scriptlet, Node.SetProperty, Node.TagDirective, Node.TaglibDirective, Node.TemplateText, Node.UninterpretedTag, Node.UseBean, Node.VariableDirective, Node.Visitor`

- ## Field Summary

  ### Fields inherited from class Node

  `attrs, beginJavaLine, body, endJavaLine, innerClassName, localName, namedAttributeNodes, nonTaglibXmlnsAttrs, parent, qName, startMark, taglibAttrs, text`

  ### Fields inherited from interface 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
  `void`
  `accept(Node.Visitor v)`
  `boolean`
  `checkIfAttributeIsJspFragment(String name)`
  Checks to see if the attribute of the given name is of type JspFragment.
  `Node.Nodes`
  `getAtETag()`
  `Node.Nodes`
  `getAtSTag()`
  `int`
  `getCustomNestingLevel()`
  `Node.CustomTag`
  `getCustomTagParent()`
  `Node.JspAttribute[]`
  `getJspAttributes()`
  `Integer`
  `getNumCount()`
  `String`
  `getPrefix()`
  `List<Object>`
  `getScriptingVars(int scope)`
  `TagData`
  `getTagData()`
  `TagFileInfo`
  `getTagFileInfo()`
  `Class<?>`
  `getTagHandlerClass()`
  `String`
  `getTagHandlerPoolName()`
  `TagInfo`
  `getTagInfo()`
  `TagPluginContext`
  `getTagPluginContext()`
  `TagVariableInfo[]`
  `getTagVariableInfos()`
  `String`
  `getURI()`
  `VariableInfo[]`
  `getVariableInfos()`
  `boolean`
  `hasEmptyBody()`
  A custom action is considered to have an empty body if any of the following hold true: getBody() returns null all immediate children are jsp:attribute actions the action's jsp:body is empty
  `boolean`
  `implementsBodyTag()`
  `boolean`
  `implementsDynamicAttributes()`
  `boolean`
  `implementsIterationTag()`
  `boolean`
  `implementsJspIdConsumer()`
  `boolean`
  `implementsSimpleTag()`
  `boolean`
  `implementsTryCatchFinally()`
  `boolean`
  `isTagFile()`
  `void`
  `setAtETag(Node.Nodes eTag)`
  `void`
  `setAtSTag(Node.Nodes sTag)`
  `void`
  `setCustomTagParent(Node.CustomTag n)`
  `void`
  `setJspAttributes(Node.JspAttribute[] jspAttrs)`
  `void`
  `setNumCount(Integer count)`
  `void`
  `setScriptingVars(List<Object> vec, int scope)`
  `void`
  `setTagData(TagData tagData)`
  `void`
  `setTagHandlerClass(Class<?> hc)`
  `void`
  `setTagHandlerPoolName(String s)`
  `void`
  `setTagPluginContext(TagPluginContext tagPluginContext)`
  `void`
  `setUseTagPlugin(boolean use)`
  `boolean`
  `useTagPlugin()`

  ### Methods inherited from class Node.ChildInfoBase

  `getChildInfo`

  ### Methods inherited from class Node

  `getAttributes, getAttributeValue, getBeginJavaLine, getBody, getEndJavaLine, getInnerClassName, getLocalName, getNamedAttributeNode, getNamedAttributeNodes, getNonTaglibXmlnsAttributes, getParent, getQName, getRoot, getStart, getTaglibAttributes, getText, getTextAttribute, setAttributes, setBeginJavaLine, setBody, setEndJavaLine, setInnerClassName`

  ### Methods inherited from class Object

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

- ## Method Details

  - ### accept

    public void accept(Node.Visitor v) throws JasperException
    Throws:
      `JasperException`

  - ### getURI

    public String getURI()
    Returns:
      The URI namespace that this custom action belongs to

  - ### getPrefix

    public String getPrefix()
    Returns:
      The tag prefix

  - ### setJspAttributes

    public void setJspAttributes(Node.JspAttribute[] jspAttrs)

  - ### getJspAttributes

    public Node.JspAttribute[] getJspAttributes()

  - ### setTagData

    public void setTagData(TagData tagData)

  - ### getTagData

    public TagData getTagData()

  - ### setTagHandlerPoolName

    public void setTagHandlerPoolName(String s)

  - ### getTagHandlerPoolName

    public String getTagHandlerPoolName()

  - ### getTagInfo

    public TagInfo getTagInfo()

  - ### getTagFileInfo

    public TagFileInfo getTagFileInfo()

  - ### isTagFile

    public boolean isTagFile()

  - ### getTagHandlerClass

    public Class<?> getTagHandlerClass()

  - ### setTagHandlerClass

    public void setTagHandlerClass(Class<?> hc)

  - ### implementsIterationTag

    public boolean implementsIterationTag()

  - ### implementsBodyTag

    public boolean implementsBodyTag()

  - ### implementsTryCatchFinally

    public boolean implementsTryCatchFinally()

  - ### implementsJspIdConsumer

    public boolean implementsJspIdConsumer()

  - ### implementsSimpleTag

    public boolean implementsSimpleTag()

  - ### implementsDynamicAttributes

    public boolean implementsDynamicAttributes()

  - ### getTagVariableInfos

    public TagVariableInfo[] getTagVariableInfos()

  - ### getVariableInfos

    public VariableInfo[] getVariableInfos()

  - ### setCustomTagParent

    public void setCustomTagParent(Node.CustomTag n)

  - ### getCustomTagParent

    public Node.CustomTag getCustomTagParent()

  - ### setNumCount

    public void setNumCount(Integer count)

  - ### getNumCount

    public Integer getNumCount()

  - ### setScriptingVars

    public void setScriptingVars(List<Object> vec, int scope)

  - ### getScriptingVars

    public List<Object> getScriptingVars(int scope)

  - ### getCustomNestingLevel

    public int getCustomNestingLevel()

  - ### checkIfAttributeIsJspFragment

    public boolean checkIfAttributeIsJspFragment(String name)
    Checks to see if the attribute of the given name is of type JspFragment.
    Parameters:
      `name` - The attribute to check
    Returns:
      `true` if it is a JspFragment

  - ### setUseTagPlugin

    public void setUseTagPlugin(boolean use)

  - ### useTagPlugin

    public boolean useTagPlugin()

  - ### setTagPluginContext

    public void setTagPluginContext(TagPluginContext tagPluginContext)

  - ### getTagPluginContext

    public TagPluginContext getTagPluginContext()

  - ### setAtSTag

    public void setAtSTag(Node.Nodes sTag)

  - ### getAtSTag

    public Node.Nodes getAtSTag()

  - ### setAtETag

    public void setAtETag(Node.Nodes eTag)

  - ### getAtETag

    public Node.Nodes getAtETag()

  - ### hasEmptyBody

    public boolean hasEmptyBody()
    A custom action is considered to have an empty body if any of the following hold true:
    - getBody() returns null
    - all immediate children are jsp:attribute actions
    - the action's jsp:body is empty
    Returns:
      `true` if this custom action has an empty body, and `false` otherwise.