blob: bd6905c5d42ff601c2bc735ac4221489dfb130e2 [file] [log] [blame]
<!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>