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>atBeginScriptingVarsprivate java.util.ArrayList<java.lang.Object>atEndScriptingVarsprivate Node.NodesatETagprivate Node.NodesatSTagThe following two fields are used for holding the Java scriptlets that the tag plugins may generate.private Node.ChildInfochildInfoprivate intcustomNestingLevelprivate Node.CustomTagcustomTagParentprivate booleanimplementsBodyTagprivate booleanimplementsDynamicAttributesprivate booleanimplementsIterationTagprivate booleanimplementsSimpleTagprivate booleanimplementsTryCatchFinallyprivate Node.JspAttribute[]jspAttrsprivate intjspIdprivate doublejspVersionprivate java.util.ArrayList<java.lang.Object>nestedScriptingVarsprivate java.lang.IntegernumCountprivate java.lang.Stringprefixprivate javax.servlet.jsp.tagext.TagDatatagDataprivate javax.servlet.jsp.tagext.TagFileInfotagFileInfoprivate java.lang.ClasstagHandlerClassprivate java.lang.StringtagHandlerPoolNameprivate javax.servlet.jsp.tagext.TagInfotagInfoprivate TagPluginContexttagPluginContextprivate java.util.HashMap<java.lang.String,java.lang.String>tempVarsprivate java.lang.Stringuriprivate booleanuseTagPluginprivate javax.servlet.jsp.tagext.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, javax.servlet.jsp.tagext.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, javax.servlet.jsp.tagext.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, javax.servlet.jsp.tagext.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, javax.servlet.jsp.tagext.TagInfo tagInfo, java.lang.Class tagHandlerClass)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(Node.Visitor v)Selects and invokes a method in the visitor class based on the node type.booleancheckIfAttributeIsJspFragment(java.lang.String name)Checks to see if the attribute of the given name is of type JspFragment.Node.NodesgetAtETag()Node.NodesgetAtSTag()Node.ChildInfogetChildInfo()intgetCustomNestingLevel()Node.CustomTaggetCustomTagParent()Node.JspAttribute[]getJspAttributes()intgetJspId()doublegetJspVersion()java.lang.IntegergetNumCount()java.lang.StringgetPrefix()java.util.ArrayList<java.lang.Object>getScriptingVars(int scope)javax.servlet.jsp.tagext.TagDatagetTagData()javax.servlet.jsp.tagext.TagFileInfogetTagFileInfo()java.lang.ClassgetTagHandlerClass()java.lang.StringgetTagHandlerPoolName()javax.servlet.jsp.tagext.TagInfogetTagInfo()TagPluginContextgetTagPluginContext()javax.servlet.jsp.tagext.TagVariableInfo[]getTagVariableInfos()java.lang.StringgetTempScriptingVar(java.lang.String scriptingVar)java.lang.StringgetURI()javax.servlet.jsp.tagext.VariableInfo[]getVariableInfos()booleanhasEmptyBody()Returns true if this custom action has an empty body, and false otherwise.booleanimplementsBodyTag()booleanimplementsDynamicAttributes()booleanimplementsIterationTag()booleanimplementsSimpleTag()booleanimplementsTryCatchFinally()booleanisTagFile()private intmakeCustomNestingLevel()voidsetAtETag(Node.Nodes eTag)voidsetAtSTag(Node.Nodes sTag)voidsetCustomTagParent(Node.CustomTag n)voidsetJspAttributes(Node.JspAttribute[] jspAttrs)voidsetJspId(int jspId)voidsetNumCount(java.lang.Integer count)voidsetScriptingVars(java.util.ArrayList<java.lang.Object> vec, int scope)voidsetTagData(javax.servlet.jsp.tagext.TagData tagData)voidsetTagHandlerClass(java.lang.Class hc)voidsetTagHandlerPoolName(java.lang.String s)voidsetTagPluginContext(TagPluginContext tagPluginContext)voidsetTempScriptingVar(java.lang.String scriptingVar, java.lang.String tempScriptingVar)voidsetUseTagPlugin(boolean use)booleanuseTagPlugin()-
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 javax.servlet.jsp.tagext.TagData tagData
-
tagHandlerPoolName
private java.lang.String tagHandlerPoolName
-
tagInfo
private javax.servlet.jsp.tagext.TagInfo tagInfo
-
tagFileInfo
private javax.servlet.jsp.tagext.TagFileInfo tagFileInfo
-
tagHandlerClass
private java.lang.Class tagHandlerClass
-
varInfos
private javax.servlet.jsp.tagext.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, javax.servlet.jsp.tagext.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, javax.servlet.jsp.tagext.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, javax.servlet.jsp.tagext.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, javax.servlet.jsp.tagext.TagFileInfo tagFileInfo)
-
-
Method Detail
-
accept
public void accept(Node.Visitor v) throws JasperException
Description copied from class:NodeSelects 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:
acceptin 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(javax.servlet.jsp.tagext.TagData tagData)
-
getTagData
public javax.servlet.jsp.tagext.TagData getTagData()
-
setTagHandlerPoolName
public void setTagHandlerPoolName(java.lang.String s)
-
getTagHandlerPoolName
public java.lang.String getTagHandlerPoolName()
-
getTagInfo
public javax.servlet.jsp.tagext.TagInfo getTagInfo()
-
getTagFileInfo
public javax.servlet.jsp.tagext.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 javax.servlet.jsp.tagext.TagVariableInfo[] getTagVariableInfos()
-
getVariableInfos
public javax.servlet.jsp.tagext.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)
-
-