Package org.apache.jasper.compiler
Class Node.CustomTag
- java.lang.Object
-
- org.apache.jasper.compiler.Node
-
- org.apache.jasper.compiler.Node.CustomTag
-
- All Implemented Interfaces:
TagConstants
- Enclosing class:
- Node
public static class Node.CustomTag extends Node
Represents a custom tag
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.jasper.compiler.Node
Node.AttributeDirective, Node.AttributeGenerator, Node.ChildInfo, 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 Modifier and Type Field Description private java.util.ArrayList<java.lang.Object>
atBeginScriptingVars
private java.util.ArrayList<java.lang.Object>
atEndScriptingVars
private Node.Nodes
atETag
private Node.Nodes
atSTag
The following two fields are used for holding the Java scriptlets that the tag plugins may generate.private Node.ChildInfo
childInfo
private int
customNestingLevel
private Node.CustomTag
customTagParent
private boolean
implementsBodyTag
private boolean
implementsDynamicAttributes
private boolean
implementsIterationTag
private boolean
implementsSimpleTag
private boolean
implementsTryCatchFinally
private Node.JspAttribute[]
jspAttrs
private int
jspId
private double
jspVersion
private java.util.ArrayList<java.lang.Object>
nestedScriptingVars
private java.lang.Integer
numCount
private java.lang.String
prefix
private TagData
tagData
private TagFileInfo
tagFileInfo
private java.lang.Class
tagHandlerClass
private java.lang.String
tagHandlerPoolName
private TagInfo
tagInfo
private TagPluginContext
tagPluginContext
private java.util.HashMap<java.lang.String,java.lang.String>
tempVars
private java.lang.String
uri
private boolean
useTagPlugin
private VariableInfo[]
varInfos
-
Fields inherited from class org.apache.jasper.compiler.Node
attrs, beginJavaLine, body, endJavaLine, innerClassName, localName, namedAttributeNodes, nonTaglibXmlnsAttrs, parent, qName, startMark, taglibAttrs, 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
-
-
Constructor Summary
Constructors Constructor Description CustomTag(java.lang.String jspVersion, java.lang.String qName, java.lang.String prefix, java.lang.String localName, java.lang.String uri, org.xml.sax.Attributes attrs, Mark start, Node parent, TagFileInfo tagFileInfo)
CustomTag(java.lang.String jspVersion, java.lang.String qName, java.lang.String prefix, java.lang.String localName, java.lang.String uri, org.xml.sax.Attributes attrs, Mark start, Node parent, TagInfo tagInfo, java.lang.Class tagHandlerClass)
CustomTag(java.lang.String jspVersion, java.lang.String qName, java.lang.String prefix, java.lang.String localName, java.lang.String uri, org.xml.sax.Attributes attrs, org.xml.sax.Attributes nonTaglibXmlnsAttrs, org.xml.sax.Attributes taglibAttrs, Mark start, Node parent, TagFileInfo tagFileInfo)
CustomTag(java.lang.String jspVersion, java.lang.String qName, java.lang.String prefix, java.lang.String localName, java.lang.String uri, org.xml.sax.Attributes attrs, org.xml.sax.Attributes nonTaglibXmlnsAttrs, org.xml.sax.Attributes taglibAttrs, Mark start, Node parent, TagInfo tagInfo, java.lang.Class tagHandlerClass)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accept(Node.Visitor v)
Selects and invokes a method in the visitor class based on the node type.boolean
checkIfAttributeIsJspFragment(java.lang.String name)
Checks to see if the attribute of the given name is of type JspFragment.Node.Nodes
getAtETag()
Node.Nodes
getAtSTag()
Node.ChildInfo
getChildInfo()
int
getCustomNestingLevel()
Node.CustomTag
getCustomTagParent()
Node.JspAttribute[]
getJspAttributes()
int
getJspId()
double
getJspVersion()
java.lang.Integer
getNumCount()
java.lang.String
getPrefix()
java.util.ArrayList<java.lang.Object>
getScriptingVars(int scope)
TagData
getTagData()
TagFileInfo
getTagFileInfo()
java.lang.Class
getTagHandlerClass()
java.lang.String
getTagHandlerPoolName()
TagInfo
getTagInfo()
TagPluginContext
getTagPluginContext()
TagVariableInfo[]
getTagVariableInfos()
java.lang.String
getTempScriptingVar(java.lang.String scriptingVar)
java.lang.String
getURI()
VariableInfo[]
getVariableInfos()
boolean
hasEmptyBody()
Returns true if this custom action has an empty body, and false otherwise.boolean
implementsBodyTag()
boolean
implementsDynamicAttributes()
boolean
implementsIterationTag()
boolean
implementsSimpleTag()
boolean
implementsTryCatchFinally()
boolean
isTagFile()
private int
makeCustomNestingLevel()
void
setAtETag(Node.Nodes eTag)
void
setAtSTag(Node.Nodes sTag)
void
setCustomTagParent(Node.CustomTag n)
void
setJspAttributes(Node.JspAttribute[] jspAttrs)
void
setJspId(int jspId)
void
setNumCount(java.lang.Integer count)
void
setScriptingVars(java.util.ArrayList<java.lang.Object> vec, int scope)
void
setTagData(TagData tagData)
void
setTagHandlerClass(java.lang.Class hc)
void
setTagHandlerPoolName(java.lang.String s)
void
setTagPluginContext(TagPluginContext tagPluginContext)
void
setTempScriptingVar(java.lang.String scriptingVar, java.lang.String tempScriptingVar)
void
setUseTagPlugin(boolean use)
boolean
useTagPlugin()
-
Methods inherited from class org.apache.jasper.compiler.Node
getAttributes, getAttributeValue, getBeginJavaLine, getBody, getEndJavaLine, getInnerClassName, getLocalName, getNamedAttributeNode, getNamedAttributeNodes, getNonTaglibXmlnsAttributes, getParent, getQName, getRoot, getStart, getTaglibAttributes, getText, getTextAttribute, isDummy, setAttributes, setBeginJavaLine, setBody, setEndJavaLine, setInnerClassName
-
-
-
-
Field Detail
-
jspVersion
private double jspVersion
-
uri
private java.lang.String uri
-
prefix
private java.lang.String prefix
-
jspAttrs
private Node.JspAttribute[] jspAttrs
-
tagData
private TagData tagData
-
tagHandlerPoolName
private java.lang.String tagHandlerPoolName
-
tagInfo
private TagInfo tagInfo
-
tagFileInfo
private TagFileInfo tagFileInfo
-
tagHandlerClass
private java.lang.Class tagHandlerClass
-
varInfos
private VariableInfo[] varInfos
-
customNestingLevel
private int customNestingLevel
-
childInfo
private Node.ChildInfo childInfo
-
implementsIterationTag
private boolean implementsIterationTag
-
implementsBodyTag
private boolean implementsBodyTag
-
implementsTryCatchFinally
private boolean implementsTryCatchFinally
-
implementsSimpleTag
private boolean implementsSimpleTag
-
implementsDynamicAttributes
private boolean implementsDynamicAttributes
-
atBeginScriptingVars
private java.util.ArrayList<java.lang.Object> atBeginScriptingVars
-
atEndScriptingVars
private java.util.ArrayList<java.lang.Object> atEndScriptingVars
-
nestedScriptingVars
private java.util.ArrayList<java.lang.Object> nestedScriptingVars
-
customTagParent
private Node.CustomTag customTagParent
-
numCount
private java.lang.Integer numCount
-
useTagPlugin
private boolean useTagPlugin
-
tagPluginContext
private TagPluginContext tagPluginContext
-
jspId
private int jspId
-
tempVars
private java.util.HashMap<java.lang.String,java.lang.String> tempVars
-
atSTag
private Node.Nodes atSTag
The following two fields are used for holding the Java scriptlets that the tag plugins may generate. Meaningful only if useTagPlugin is true; Could move them into TagPluginContextImpl, but we'll need to cast tagPluginContext to TagPluginContextImpl all the time...
-
atETag
private Node.Nodes atETag
-
-
Constructor Detail
-
CustomTag
public CustomTag(java.lang.String jspVersion, java.lang.String qName, java.lang.String prefix, java.lang.String localName, java.lang.String uri, org.xml.sax.Attributes attrs, Mark start, Node parent, TagInfo tagInfo, java.lang.Class tagHandlerClass)
-
CustomTag
public CustomTag(java.lang.String jspVersion, java.lang.String qName, java.lang.String prefix, java.lang.String localName, java.lang.String uri, org.xml.sax.Attributes attrs, org.xml.sax.Attributes nonTaglibXmlnsAttrs, org.xml.sax.Attributes taglibAttrs, Mark start, Node parent, TagInfo tagInfo, java.lang.Class tagHandlerClass)
-
CustomTag
public CustomTag(java.lang.String jspVersion, java.lang.String qName, java.lang.String prefix, java.lang.String localName, java.lang.String uri, org.xml.sax.Attributes attrs, Mark start, Node parent, TagFileInfo tagFileInfo)
-
CustomTag
public CustomTag(java.lang.String jspVersion, java.lang.String qName, java.lang.String prefix, java.lang.String localName, java.lang.String uri, org.xml.sax.Attributes attrs, org.xml.sax.Attributes nonTaglibXmlnsAttrs, org.xml.sax.Attributes taglibAttrs, Mark start, Node parent, TagFileInfo tagFileInfo)
-
-
Method Detail
-
accept
public void accept(Node.Visitor v) throws JasperException
Description copied from class:Node
Selects and invokes a method in the visitor class based on the node type. This is abstract and should be overrode by the extending classes.- Specified by:
accept
in classNode
- Parameters:
v
- The visitor class- Throws:
JasperException
-
getJspVersion
public double getJspVersion()
- Returns:
- The jspVersion of the tag
-
getURI
public java.lang.String getURI()
- Returns:
- The URI namespace that this custom action belongs to
-
getPrefix
public java.lang.String getPrefix()
- Returns:
- The tag prefix
-
setJspAttributes
public void setJspAttributes(Node.JspAttribute[] jspAttrs)
-
getJspAttributes
public Node.JspAttribute[] getJspAttributes()
-
getChildInfo
public Node.ChildInfo getChildInfo()
-
setTagData
public void setTagData(TagData tagData)
-
getTagData
public TagData getTagData()
-
setTagHandlerPoolName
public void setTagHandlerPoolName(java.lang.String s)
-
getTagHandlerPoolName
public java.lang.String getTagHandlerPoolName()
-
getTagInfo
public TagInfo getTagInfo()
-
getTagFileInfo
public TagFileInfo getTagFileInfo()
-
isTagFile
public boolean isTagFile()
-
getTagHandlerClass
public java.lang.Class getTagHandlerClass()
-
setTagHandlerClass
public void setTagHandlerClass(java.lang.Class hc)
-
implementsIterationTag
public boolean implementsIterationTag()
-
implementsBodyTag
public boolean implementsBodyTag()
-
implementsTryCatchFinally
public boolean implementsTryCatchFinally()
-
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(java.lang.Integer count)
-
getNumCount
public java.lang.Integer getNumCount()
-
setScriptingVars
public void setScriptingVars(java.util.ArrayList<java.lang.Object> vec, int scope)
-
getScriptingVars
public java.util.ArrayList<java.lang.Object> getScriptingVars(int scope)
-
getCustomNestingLevel
public int getCustomNestingLevel()
-
checkIfAttributeIsJspFragment
public boolean checkIfAttributeIsJspFragment(java.lang.String name)
Checks to see if the attribute of the given name is of type 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()
-
setJspId
public void setJspId(int jspId)
-
getJspId
public int getJspId()
-
makeCustomNestingLevel
private int makeCustomNestingLevel()
-
hasEmptyBody
public boolean hasEmptyBody()
Returns true if this custom action has an empty body, and false otherwise. A custom action is considered to have an empty body if the following holds true: - getBody() returns null, or - all immediate children are jsp:attribute actions, or - the action's jsp:body is empty.
-
getTempScriptingVar
public java.lang.String getTempScriptingVar(java.lang.String scriptingVar)
-
setTempScriptingVar
public void setTempScriptingVar(java.lang.String scriptingVar, java.lang.String tempScriptingVar)
-
-