blob: b78958905f7b009915b908744497424476d66b37 [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>AnnotationFinder</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="AnnotationFinder";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10};
var tabs = {65535:["t0","All 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>Prev&nbsp;Class</li>
<li><a href="../../../../org/apache/openejb/util/AnnotationFinder.Filter.html" title="interface in org.apache.openejb.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/openejb/util/AnnotationFinder.html" target="_top">Frames</a></li>
<li><a href="AnnotationFinder.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><a href="#nested.class.summary">Nested</a>&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.openejb.util</div>
<h2 title="Class AnnotationFinder" class="title">Class AnnotationFinder</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.openejb.util.AnnotationFinder</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">AnnotationFinder</span>
extends java.lang.Object</pre>
<div class="block">ClassFinder searches the classpath of the specified classloader for
packages, classes, constructors, methods, or fields with specific annotations.
For security reasons ASM is used to find the annotations. Classes are not
loaded unless they match the requirements of a called findAnnotated* method.
Once loaded, these classes are cached.
The getClassesNotLoaded() method can be used immediately after any find*
method to get a list of classes which matched the find requirements (i.e.
contained the annotation), but were unable to be loaded.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openejb/util/AnnotationFinder.Filter.html" title="interface in org.apache.openejb.util">AnnotationFinder.Filter</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openejb/util/AnnotationFinder.FoundException.html" title="class in org.apache.openejb.util">AnnotationFinder.FoundException</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openejb/util/AnnotationFinder.NotFoundException.html" title="class in org.apache.openejb.util">AnnotationFinder.NotFoundException</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openejb/util/AnnotationFinder.Visitor.html" title="class in org.apache.openejb.util">AnnotationFinder.Visitor</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- =========== 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/openejb/util/AnnotationFinder.html#classes">classes</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/openejb/util/AnnotationFinder.html#AnnotationFinder-java.lang.ClassLoader-">AnnotationFinder</a></span>(java.lang.ClassLoader&nbsp;classLoader)</code>
<div class="block">Creates a ClassFinder that will search the urls in the specified classloader
excluding the urls in the classloader's parent.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/openejb/util/AnnotationFinder.html#AnnotationFinder-java.lang.ClassLoader-boolean-">AnnotationFinder</a></span>(java.lang.ClassLoader&nbsp;classLoader,
boolean&nbsp;excludeParent)</code>
<div class="block">Creates a ClassFinder that will search the urls in the specified classloader.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/openejb/util/AnnotationFinder.html#AnnotationFinder-java.lang.ClassLoader-java.lang.ClassLoader-">AnnotationFinder</a></span>(java.lang.ClassLoader&nbsp;classLoader,
java.lang.ClassLoader&nbsp;exclude)</code>
<div class="block">Creates a ClassFinder that will search the urls in the specified classloader excluding
the urls in the 'exclude' classloader.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/openejb/util/AnnotationFinder.html#AnnotationFinder-java.lang.ClassLoader-java.util.Collection-">AnnotationFinder</a></span>(java.lang.ClassLoader&nbsp;classLoader,
java.util.Collection&lt;java.net.URL&gt;&nbsp;urls)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/openejb/util/AnnotationFinder.html#AnnotationFinder-java.lang.ClassLoader-java.net.URL-">AnnotationFinder</a></span>(java.lang.ClassLoader&nbsp;classLoader,
java.net.URL&nbsp;url)</code>&nbsp;</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="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>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openejb/util/AnnotationFinder.html#find-org.apache.openejb.util.AnnotationFinder.Filter-">find</a></span>(<a href="../../../../org/apache/openejb/util/AnnotationFinder.Filter.html" title="interface in org.apache.openejb.util">AnnotationFinder.Filter</a>&nbsp;filter)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.util.List&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openejb/util/AnnotationFinder.html#getClassesNotLoaded--">getClassesNotLoaded</a></span>()</code>
<div class="block">Returns a list of classes that could not be loaded in last invoked findAnnotated* method.</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="classes">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>classes</h4>
<pre>public static&nbsp;int classes</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AnnotationFinder-java.lang.ClassLoader-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AnnotationFinder</h4>
<pre>public&nbsp;AnnotationFinder(java.lang.ClassLoader&nbsp;classLoader)
throws java.lang.Exception</pre>
<div class="block">Creates a ClassFinder that will search the urls in the specified classloader
excluding the urls in the classloader's parent.
To include the parent classloader, use:
new ClassFinder(classLoader, false);
To exclude the parent's parent, use:
new ClassFinder(classLoader, classLoader.getParent().getParent());</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>classLoader</code> - source of classes to scan</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if something goes wrong</dd>
</dl>
</li>
</ul>
<a name="AnnotationFinder-java.lang.ClassLoader-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AnnotationFinder</h4>
<pre>public&nbsp;AnnotationFinder(java.lang.ClassLoader&nbsp;classLoader,
boolean&nbsp;excludeParent)
throws java.lang.Exception</pre>
<div class="block">Creates a ClassFinder that will search the urls in the specified classloader.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>classLoader</code> - source of classes to scan</dd>
<dd><code>excludeParent</code> - Allegedly excludes classes from parent classloader, whatever that might mean</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if something goes wrong.</dd>
</dl>
</li>
</ul>
<a name="AnnotationFinder-java.lang.ClassLoader-java.lang.ClassLoader-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AnnotationFinder</h4>
<pre>public&nbsp;AnnotationFinder(java.lang.ClassLoader&nbsp;classLoader,
java.lang.ClassLoader&nbsp;exclude)
throws java.lang.Exception</pre>
<div class="block">Creates a ClassFinder that will search the urls in the specified classloader excluding
the urls in the 'exclude' classloader.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>classLoader</code> - source of classes to scan</dd>
<dd><code>exclude</code> - source of classes to exclude from scanning</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if something goes wrong</dd>
</dl>
</li>
</ul>
<a name="AnnotationFinder-java.lang.ClassLoader-java.net.URL-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AnnotationFinder</h4>
<pre>public&nbsp;AnnotationFinder(java.lang.ClassLoader&nbsp;classLoader,
java.net.URL&nbsp;url)</pre>
</li>
</ul>
<a name="AnnotationFinder-java.lang.ClassLoader-java.util.Collection-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AnnotationFinder</h4>
<pre>public&nbsp;AnnotationFinder(java.lang.ClassLoader&nbsp;classLoader,
java.util.Collection&lt;java.net.URL&gt;&nbsp;urls)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getClassesNotLoaded--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getClassesNotLoaded</h4>
<pre>public&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;getClassesNotLoaded()</pre>
<div class="block">Returns a list of classes that could not be loaded in last invoked findAnnotated* method.
The list will only contain entries of classes whose byte code matched the requirements
of last invoked find* method, but were unable to be loaded and included in the results.
The list returned is unmodifiable. Once obtained, the returned list will be a live view of the
results from the last findAnnotated* method call.
This method is not thread safe.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an unmodifiable live view of classes that could not be loaded in previous findAnnotated* call.</dd>
</dl>
</li>
</ul>
<a name="find-org.apache.openejb.util.AnnotationFinder.Filter-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>find</h4>
<pre>public&nbsp;boolean&nbsp;find(<a href="../../../../org/apache/openejb/util/AnnotationFinder.Filter.html" title="interface in org.apache.openejb.util">AnnotationFinder.Filter</a>&nbsp;filter)</pre>
</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>Prev&nbsp;Class</li>
<li><a href="../../../../org/apache/openejb/util/AnnotationFinder.Filter.html" title="interface in org.apache.openejb.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/openejb/util/AnnotationFinder.html" target="_top">Frames</a></li>
<li><a href="AnnotationFinder.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><a href="#nested.class.summary">Nested</a>&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>