<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>TagPluginContext</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="TagPluginContext";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPlugin.html" title="interface in org.apache.jasper.compiler.tagplugin"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/jasper/compiler/tagplugin/TagPluginContext.html" target="_top">Frames</a></li>
<li><a href="TagPluginContext.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.jasper.compiler.tagplugin</div>
<h2 title="Interface TagPluginContext" class="title">Interface TagPluginContext</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public interface <span class="typeNameLabel">TagPluginContext</span></pre>
<div class="block">This interface allows the plugin author to make inqueries about the
 properties of the current tag, and to use Jasper resources to generate
 direct Java codes in place of tag handler invocations.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPluginContext.html#dontUseTagPlugin--">dontUseTagPlugin</a></span>()</code>
<div class="block">Abandon optimization for this tag handler, and instruct
 Jasper to generate the tag handler calls, as usual.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPluginContext.html#generateAttribute-java.lang.String-">generateAttribute</a></span>(java.lang.String&nbsp;attribute)</code>
<div class="block">Generate codesto evaluate value of a attribute in the custom tag
 The codes is a Java expression.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPluginContext.html#generateBody--">generateBody</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPluginContext.html#generateDeclaration-java.lang.String-java.lang.String-">generateDeclaration</a></span>(java.lang.String&nbsp;id,
                   java.lang.String&nbsp;text)</code>
<div class="block">Generate a declaration in the of the generated class.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPluginContext.html#generateImport-java.lang.String-">generateImport</a></span>(java.lang.String&nbsp;s)</code>
<div class="block">Generate an import statement</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPluginContext.html#generateJavaSource-java.lang.String-">generateJavaSource</a></span>(java.lang.String&nbsp;s)</code>
<div class="block">Generate Java source codes</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPluginContext.html#getConstantAttribute-java.lang.String-">getConstantAttribute</a></span>(java.lang.String&nbsp;attribute)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPluginContext.html" title="interface in org.apache.jasper.compiler.tagplugin">TagPluginContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPluginContext.html#getParentContext--">getParentContext</a></span>()</code>
<div class="block">Get the PluginContext for the parent of this custom tag.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPluginContext.html#getPluginAttribute-java.lang.String-">getPluginAttribute</a></span>(java.lang.String&nbsp;attr)</code>
<div class="block">Get the value of an attribute in the current tagplugin context.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPluginContext.html#getTemporaryVariableName--">getTemporaryVariableName</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPluginContext.html#isAttributeSpecified-java.lang.String-">isAttributeSpecified</a></span>(java.lang.String&nbsp;attribute)</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPluginContext.html#isConstantAttribute-java.lang.String-">isConstantAttribute</a></span>(java.lang.String&nbsp;attribute)</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPluginContext.html#isScriptless--">isScriptless</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPluginContext.html#setPluginAttribute-java.lang.String-java.lang.Object-">setPluginAttribute</a></span>(java.lang.String&nbsp;attr,
                  java.lang.Object&nbsp;value)</code>
<div class="block">Associate the attribute with a value in the current tagplugin context.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="isScriptless--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isScriptless</h4>
<pre>boolean&nbsp;isScriptless()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the body of the tag is scriptless.</dd>
</dl>
</li>
</ul>
<a name="isAttributeSpecified-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAttributeSpecified</h4>
<pre>boolean&nbsp;isAttributeSpecified(java.lang.String&nbsp;attribute)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>attribute</code> - Name of the attribute</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the attribute is specified in the tag</dd>
</dl>
</li>
</ul>
<a name="getTemporaryVariableName--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemporaryVariableName</h4>
<pre>java.lang.String&nbsp;getTemporaryVariableName()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>An unique temporary variable name that the plugin can use.</dd>
</dl>
</li>
</ul>
<a name="generateImport-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>generateImport</h4>
<pre>void&nbsp;generateImport(java.lang.String&nbsp;s)</pre>
<div class="block">Generate an import statement</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - Name of the import class, '*' allowed.</dd>
</dl>
</li>
</ul>
<a name="generateDeclaration-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>generateDeclaration</h4>
<pre>void&nbsp;generateDeclaration(java.lang.String&nbsp;id,
                         java.lang.String&nbsp;text)</pre>
<div class="block">Generate a declaration in the of the generated class.  This can be
 used to declare an innter class, a method, or a class variable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - An unique ID identifying the declaration.  It is not
           part of the declaration, and is used to ensure that the
           declaration will only appear once.  If this method is
           invoked with the same id more than once in the translation
           unit, only the first declaration will be taken.</dd>
<dd><code>text</code> - The text of the declaration.</dd>
</dl>
</li>
</ul>
<a name="generateJavaSource-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>generateJavaSource</h4>
<pre>void&nbsp;generateJavaSource(java.lang.String&nbsp;s)</pre>
<div class="block">Generate Java source codes</div>
</li>
</ul>
<a name="isConstantAttribute-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isConstantAttribute</h4>
<pre>boolean&nbsp;isConstantAttribute(java.lang.String&nbsp;attribute)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the attribute is specified and its value is a
         translation-time constant.</dd>
</dl>
</li>
</ul>
<a name="getConstantAttribute-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConstantAttribute</h4>
<pre>java.lang.String&nbsp;getConstantAttribute(java.lang.String&nbsp;attribute)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A string that is the value of a constant attribute.  Undefined
         if the attribute is not a (translation-time) constant.
         null if the attribute is not specified.</dd>
</dl>
</li>
</ul>
<a name="generateAttribute-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>generateAttribute</h4>
<pre>void&nbsp;generateAttribute(java.lang.String&nbsp;attribute)</pre>
<div class="block">Generate codesto evaluate value of a attribute in the custom tag
 The codes is a Java expression.
 NOTE: Currently cannot handle attributes that are fragments.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>attribute</code> - The specified attribute</dd>
</dl>
</li>
</ul>
<a name="generateBody--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>generateBody</h4>
<pre>void&nbsp;generateBody()</pre>
</li>
</ul>
<a name="dontUseTagPlugin--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dontUseTagPlugin</h4>
<pre>void&nbsp;dontUseTagPlugin()</pre>
<div class="block">Abandon optimization for this tag handler, and instruct
 Jasper to generate the tag handler calls, as usual.
 Should be invoked if errors are detected, or when the tag body
 is deemed too compilicated for optimization.</div>
</li>
</ul>
<a name="getParentContext--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParentContext</h4>
<pre><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPluginContext.html" title="interface in org.apache.jasper.compiler.tagplugin">TagPluginContext</a>&nbsp;getParentContext()</pre>
<div class="block">Get the PluginContext for the parent of this custom tag.  NOTE:
 The operations available for PluginContext so obtained is limited
 to getPluginAttribute and setPluginAttribute, and queries (e.g.
 isScriptless().  There should be no calls to generate*().</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The pluginContext for the parent node.
         null if the parent is not a custom tag, or if the pluginConxt
         if not available (because useTagPlugin is false, e.g).</dd>
</dl>
</li>
</ul>
<a name="setPluginAttribute-java.lang.String-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPluginAttribute</h4>
<pre>void&nbsp;setPluginAttribute(java.lang.String&nbsp;attr,
                        java.lang.Object&nbsp;value)</pre>
<div class="block">Associate the attribute with a value in the current tagplugin context.
 The plugin attributes can be used for communication among tags that
 must work together as a group.  See <c:when> for an example.</div>
</li>
</ul>
<a name="getPluginAttribute-java.lang.String-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getPluginAttribute</h4>
<pre>java.lang.Object&nbsp;getPluginAttribute(java.lang.String&nbsp;attr)</pre>
<div class="block">Get the value of an attribute in the current tagplugin context.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/jasper/compiler/tagplugin/TagPlugin.html" title="interface in org.apache.jasper.compiler.tagplugin"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/jasper/compiler/tagplugin/TagPluginContext.html" target="_top">Frames</a></li>
<li><a href="TagPluginContext.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
