blob: ccd2898935116eacf84081b0d92d35627bea9be0 [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>TldScanner</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="TldScanner";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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/runtime/TagHandlerPool.html" title="class in org.apache.jasper.runtime"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/jasper/runtime/VariableMapperImpl.html" title="class in org.apache.jasper.runtime"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/jasper/runtime/TldScanner.html" target="_top">Frames</a></li>
<li><a href="TldScanner.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><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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.runtime</div>
<h2 title="Class TldScanner" class="title">Class TldScanner</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.jasper.runtime.TldScanner</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../javax/servlet/ServletContainerInitializer.html" title="interface in javax.servlet">ServletContainerInitializer</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">TldScanner</span>
extends java.lang.Object
implements <a href="../../../../javax/servlet/ServletContainerInitializer.html" title="interface in javax.servlet">ServletContainerInitializer</a></pre>
<div class="block">A container for all tag libraries that are defined "globally"
for the web application.
Tag Libraries can be defined globally in one of two ways:
1. Via <taglib> elements in web.xml:
the uri and location of the tag-library are specified in
the <taglib> element.
2. Via packaged jar files that contain .tld files
within the META-INF directory, or some subdirectory
of it. The taglib is 'global' if it has the <uri>
element defined.
A mapping between the taglib URI and its associated TaglibraryInfoImpl
is maintained in this container.
Actually, that's what we'd like to do. However, because of the
way the classes TagLibraryInfo and TagInfo have been defined,
it is not currently possible to share an instance of TagLibraryInfo
across page invocations. A bug has been submitted to the spec lead.
In the mean time, all we do is save the 'location' where the
TLD associated with a taglib URI can be found.
When a JSP page has a taglib directive, the mappings in this container
are first searched (see method getLocation()).
If a mapping is found, then the location of the TLD is returned.
If no mapping is found, then the uri specified
in the taglib directive is to be interpreted as the location for
the TLD of this tag library.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/TldScanner.html#ABS_URI">ABS_URI</a></span></code>
<div class="block">The types of URI one may specify for a tag library</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/TldScanner.html#NOROOT_REL_URI">NOROOT_REL_URI</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/TldScanner.html#ROOT_REL_URI">ROOT_REL_URI</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/TldScanner.html#TldScanner--">TldScanner</a></span>()</code>
<div class="block">Default Constructor.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/TldScanner.html#TldScanner-javax.servlet.ServletContext-boolean-">TldScanner</a></span>(<a href="../../../../javax/servlet/ServletContext.html" title="interface in javax.servlet">ServletContext</a>&nbsp;ctxt,
boolean&nbsp;isValidationEnabled)</code>
<div class="block">Constructor used in Jasper</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== 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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete 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>java.lang.String[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/TldScanner.html#getLocation-java.lang.String-">getLocation</a></span>(java.lang.String&nbsp;uri)</code>
<div class="block">Gets the 'location' of the TLD associated with the given taglib 'uri'.</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/runtime/TldScanner.html#onStartup-java.util.Set-javax.servlet.ServletContext-">onStartup</a></span>(java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;c,
<a href="../../../../javax/servlet/ServletContext.html" title="interface in javax.servlet">ServletContext</a>&nbsp;ctxt)</code>
<div class="block">Notifies this <tt>ServletContainerInitializer</tt> of the startup
of the application represented by the given <tt>ServletContext</tt>.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/jasper/runtime/TldScanner.html#uriType-java.lang.String-">uriType</a></span>(java.lang.String&nbsp;uri)</code>
<div class="block">Returns the type of a URI:
ABS_URI
ROOT_REL_URI
NOROOT_REL_URI</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="ABS_URI">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ABS_URI</h4>
<pre>public static final&nbsp;int ABS_URI</pre>
<div class="block">The types of URI one may specify for a tag library</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.jasper.runtime.TldScanner.ABS_URI">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ROOT_REL_URI">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ROOT_REL_URI</h4>
<pre>public static final&nbsp;int ROOT_REL_URI</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.jasper.runtime.TldScanner.ROOT_REL_URI">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NOROOT_REL_URI">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>NOROOT_REL_URI</h4>
<pre>public static final&nbsp;int NOROOT_REL_URI</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.jasper.runtime.TldScanner.NOROOT_REL_URI">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="TldScanner--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TldScanner</h4>
<pre>public&nbsp;TldScanner()</pre>
<div class="block">Default Constructor.
This is only used for implementing ServletContainerInitializer.
ServletContext will be supplied in the method onStartUp;</div>
</li>
</ul>
<a name="TldScanner-javax.servlet.ServletContext-boolean-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>TldScanner</h4>
<pre>public&nbsp;TldScanner(<a href="../../../../javax/servlet/ServletContext.html" title="interface in javax.servlet">ServletContext</a>&nbsp;ctxt,
boolean&nbsp;isValidationEnabled)</pre>
<div class="block">Constructor used in Jasper</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="onStartup-java.util.Set-javax.servlet.ServletContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onStartup</h4>
<pre>public&nbsp;void&nbsp;onStartup(java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;c,
<a href="../../../../javax/servlet/ServletContext.html" title="interface in javax.servlet">ServletContext</a>&nbsp;ctxt)
throws <a href="../../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/servlet/ServletContainerInitializer.html#onStartup-java.util.Set-javax.servlet.ServletContext-">ServletContainerInitializer</a></code></span></div>
<div class="block">Notifies this <tt>ServletContainerInitializer</tt> of the startup
of the application represented by the given <tt>ServletContext</tt>.
<p>If this <tt>ServletContainerInitializer</tt> is bundled in a JAR
file inside the <tt>WEB-INF/lib</tt> directory of an application,
its <tt>onStartup</tt> method will be invoked only once during the
startup of the bundling application. If this
<tt>ServletContainerInitializer</tt> is bundled inside a JAR file
outside of any <tt>WEB-INF/lib</tt> directory, but still
discoverable as described above, its <tt>onStartup</tt> method
will be invoked every time an application is started.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../javax/servlet/ServletContainerInitializer.html#onStartup-java.util.Set-javax.servlet.ServletContext-">onStartup</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/servlet/ServletContainerInitializer.html" title="interface in javax.servlet">ServletContainerInitializer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>c</code> - the Set of application classes that extend, implement, or
have been annotated with the class types specified by the
<a href="../../../../javax/servlet/annotation/HandlesTypes.html" title="annotation in javax.servlet.annotation"><code>HandlesTypes</code></a> annotation,
or <tt>null</tt> if there are no matches, or this
<tt>ServletContainerInitializer</tt> has not been annotated with
<tt>HandlesTypes</tt></dd>
<dd><code>ctxt</code> - the <tt>ServletContext</tt> of the web application that
is being started and in which the classes contained in <tt>c</tt>
were found</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../javax/servlet/ServletException.html" title="class in javax.servlet">ServletException</a></code> - if an error has occurred</dd>
</dl>
</li>
</ul>
<a name="getLocation-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocation</h4>
<pre>public&nbsp;java.lang.String[]&nbsp;getLocation(java.lang.String&nbsp;uri)
throws <a href="../../../../org/apache/jasper/JasperException.html" title="class in org.apache.jasper">JasperException</a></pre>
<div class="block">Gets the 'location' of the TLD associated with the given taglib 'uri'.
Returns null if the uri is not associated with any tag library 'exposed'
in the web application. A tag library is 'exposed' either explicitly in
web.xml or implicitly via the uri tag in the TLD of a taglib deployed
in a jar file (WEB-INF/lib).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>uri</code> - The taglib uri</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>An array of two Strings: The first element denotes the real
path to the TLD. If the path to the TLD points to a jar file, then the
second element denotes the name of the TLD entry in the jar file.
Returns null if the uri is not associated with any tag library 'exposed'
in the web application.
This method may be called when the scanning is in one of states:
1. Called from jspc script, then a full tld scan is required.
2. The is the first call after servlet initialization, then system jars
that are knwon to have tlds but not listeners need to be scanned.
3. Sebsequent calls, no need to scans.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/jasper/JasperException.html" title="class in org.apache.jasper">JasperException</a></code></dd>
</dl>
</li>
</ul>
<a name="uriType-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>uriType</h4>
<pre>public static&nbsp;int&nbsp;uriType(java.lang.String&nbsp;uri)</pre>
<div class="block">Returns the type of a URI:
ABS_URI
ROOT_REL_URI
NOROOT_REL_URI</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/runtime/TagHandlerPool.html" title="class in org.apache.jasper.runtime"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/jasper/runtime/VariableMapperImpl.html" title="class in org.apache.jasper.runtime"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/jasper/runtime/TldScanner.html" target="_top">Frames</a></li>
<li><a href="TldScanner.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><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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>