This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/asf-staging by this push:
new 30d078929e Deploy documentation staging from
695b7c770dcbe490fd02a78767763c7c53bd8b12
695b7c770dcbe490fd02a78767763c7c53bd8b12
30d078929e is described below
commit 30d078929eeb0089d397aa24abe1849e5619acb2
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Nov 5 21:02:41 2025 +0000
Deploy documentation staging from 695b7c770dcbe490fd02a78767763c7c53bd8b12
695b7c770dcbe490fd02a78767763c7c53bd8b12
---
site/xref/org/apache/juneau/Context.html | 247 ++++++++-------
.../juneau/common/reflect/AnnotationProvider2.html | 336 ++++++++++++---------
.../apache/juneau/common/utils/PredicateUtils.html | 52 +++-
3 files changed, 362 insertions(+), 273 deletions(-)
diff --git a/site/xref/org/apache/juneau/Context.html
b/site/xref/org/apache/juneau/Context.html
index 6aee083ce8..d37bccb368 100644
--- a/site/xref/org/apache/juneau/Context.html
+++ b/site/xref/org/apache/juneau/Context.html
@@ -903,133 +903,130 @@
<a class="jxr_linenumber" name="L895" href="#L895">895</a>
<a class="jxr_linenumber" name="L896" href="#L896">896</a> @Override <em
class="jxr_comment">/* Overridden from MetaProvider */</em>
<a class="jxr_linenumber" name="L897" href="#L897">897</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> <strong
class="jxr_keyword">void</strong> forEachDeclaredAnnotation(Class<A>
type, Class<?> onClass, Predicate<A> filter, Consumer<A>
action) {
-<a class="jxr_linenumber" name="L898" href="#L898">898</a> <em
class="jxr_comment">// getAnnotationProvider().find(type,
onClass).map(x -> x.inner()).filter(x -> filter.test(x)).forEach(x ->
action.accept(x));</em>
-<a class="jxr_linenumber" name="L899" href="#L899">899</a> <strong
class="jxr_keyword">if</strong> (nn(type) && nn(onClass))
-<a class="jxr_linenumber" name="L900" href="#L900">900</a>
<strong class="jxr_keyword">for</strong> (<strong
class="jxr_keyword">var</strong> a : declaredAnnotations(type, onClass))
-<a class="jxr_linenumber" name="L901" href="#L901">901</a>
consumeIf(filter, action, a);
-<a class="jxr_linenumber" name="L902" href="#L902">902</a> }
-<a class="jxr_linenumber" name="L903" href="#L903">903</a>
-<a class="jxr_linenumber" name="L904" href="#L904">904</a> <em
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L905" href="#L905">905</a> <em
class="jxr_javadoccomment"> * Returns a session to use for this
context.</em>
+<a class="jxr_linenumber" name="L898" href="#L898">898</a>
getAnnotationProvider().findDeclaredParentFirst(type, onClass).map(x ->
x.<strong class="jxr_keyword">inner</strong>()).filter(x -> filter ==
<strong class="jxr_keyword">null</strong> || filter.test(x)).forEach(x ->
action.accept(x));
+<a class="jxr_linenumber" name="L899" href="#L899">899</a> }
+<a class="jxr_linenumber" name="L900" href="#L900">900</a>
+<a class="jxr_linenumber" name="L901" href="#L901">901</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L902" href="#L902">902</a> <em
class="jxr_javadoccomment"> * Returns a session to use for this
context.</em>
+<a class="jxr_linenumber" name="L903" href="#L903">903</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L904" href="#L904">904</a> <em
class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L905" href="#L905">905</a> <em
class="jxr_javadoccomment"> * Note that subclasses may opt to return a
reusable non-modifiable session.</em>
<a class="jxr_linenumber" name="L906" href="#L906">906</a> <em
class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L907" href="#L907">907</a> <em
class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L908" href="#L908">908</a> <em
class="jxr_javadoccomment"> * Note that subclasses may opt to return a
reusable non-modifiable session.</em>
-<a class="jxr_linenumber" name="L909" href="#L909">909</a> <em
class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L910" href="#L910">910</a> <em
class="jxr_javadoccomment"> * @return A new session object.</em>
-<a class="jxr_linenumber" name="L911" href="#L911">911</a> <em
class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L912" href="#L912">912</a> <strong
class="jxr_keyword">public</strong> <a name="ContextSession"
href="../../../org/apache/juneau/ContextSession.html#ContextSession">ContextSession</a>
getSession() { <strong class="jxr_keyword">return</strong>
createSession().build(); }
-<a class="jxr_linenumber" name="L913" href="#L913">913</a>
-<a class="jxr_linenumber" name="L914" href="#L914">914</a> <em
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L915" href="#L915">915</a> <em
class="jxr_javadoccomment"> * Returns <jk>true</jk> if
<c>getAnnotation(a,c)</c> returns a non-null value.</em>
-<a class="jxr_linenumber" name="L916" href="#L916">916</a> <em
class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L917" href="#L917">917</a> <em
class="jxr_javadoccomment"> * @param <A> The annotation being
checked for.</em>
-<a class="jxr_linenumber" name="L918" href="#L918">918</a> <em
class="jxr_javadoccomment"> * @param type The annotation being checked
for.</em>
-<a class="jxr_linenumber" name="L919" href="#L919">919</a> <em
class="jxr_javadoccomment"> * @param onClass The class being checked
on.</em>
-<a class="jxr_linenumber" name="L920" href="#L920">920</a> <em
class="jxr_javadoccomment"> * @return <jk>true</jk> if the
annotation exists on the specified class.</em>
-<a class="jxr_linenumber" name="L921" href="#L921">921</a> <em
class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L922" href="#L922">922</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> <strong
class="jxr_keyword">boolean</strong> hasAnnotation(Class<A> type,
Class<?> onClass) {
-<a class="jxr_linenumber" name="L923" href="#L923">923</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().find(type,
onClass).map(x -> x.<strong
class="jxr_keyword">inner</strong>()).findFirst().isPresent();
-<a class="jxr_linenumber" name="L924" href="#L924">924</a> }
-<a class="jxr_linenumber" name="L925" href="#L925">925</a>
-<a class="jxr_linenumber" name="L926" href="#L926">926</a> <em
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L927" href="#L927">927</a> <em
class="jxr_javadoccomment"> * Returns <jk>true</jk> if
<c>getAnnotation(a,c)</c> returns a non-null value.</em>
-<a class="jxr_linenumber" name="L928" href="#L928">928</a> <em
class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L929" href="#L929">929</a> <em
class="jxr_javadoccomment"> * @param <A> The annotation being
checked for.</em>
-<a class="jxr_linenumber" name="L930" href="#L930">930</a> <em
class="jxr_javadoccomment"> * @param type The annotation being checked
for.</em>
-<a class="jxr_linenumber" name="L931" href="#L931">931</a> <em
class="jxr_javadoccomment"> * @param onConstructor The constructor being
checked on.</em>
-<a class="jxr_linenumber" name="L932" href="#L932">932</a> <em
class="jxr_javadoccomment"> * @return <jk>true</jk> if the
annotation exists on the specified field.</em>
-<a class="jxr_linenumber" name="L933" href="#L933">933</a> <em
class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L934" href="#L934">934</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> <strong
class="jxr_keyword">boolean</strong> hasAnnotation(Class<A> type,
Constructor<?> onConstructor) {
-<a class="jxr_linenumber" name="L935" href="#L935">935</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().find(type,
onConstructor).map(x -> x.<strong
class="jxr_keyword">inner</strong>()).findFirst().isPresent();
-<a class="jxr_linenumber" name="L936" href="#L936">936</a> }
-<a class="jxr_linenumber" name="L937" href="#L937">937</a>
-<a class="jxr_linenumber" name="L938" href="#L938">938</a> <em
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L939" href="#L939">939</a> <em
class="jxr_javadoccomment"> * Returns <jk>true</jk> if
<c>getAnnotation(a,f)</c> returns a non-null value.</em>
-<a class="jxr_linenumber" name="L940" href="#L940">940</a> <em
class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L941" href="#L941">941</a> <em
class="jxr_javadoccomment"> * @param <A> The annotation being
checked for.</em>
-<a class="jxr_linenumber" name="L942" href="#L942">942</a> <em
class="jxr_javadoccomment"> * @param type The annotation being checked
for.</em>
-<a class="jxr_linenumber" name="L943" href="#L943">943</a> <em
class="jxr_javadoccomment"> * @param onField The field being checked
on.</em>
-<a class="jxr_linenumber" name="L944" href="#L944">944</a> <em
class="jxr_javadoccomment"> * @return <jk>true</jk> if the
annotation exists on the specified field.</em>
-<a class="jxr_linenumber" name="L945" href="#L945">945</a> <em
class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L946" href="#L946">946</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> <strong
class="jxr_keyword">boolean</strong> hasAnnotation(Class<A> type, Field
onField) {
-<a class="jxr_linenumber" name="L947" href="#L947">947</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().find(type,
onField).map(x -> x.<strong
class="jxr_keyword">inner</strong>()).findFirst().isPresent();
-<a class="jxr_linenumber" name="L948" href="#L948">948</a> }
-<a class="jxr_linenumber" name="L949" href="#L949">949</a>
-<a class="jxr_linenumber" name="L950" href="#L950">950</a> <em
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L951" href="#L951">951</a> <em
class="jxr_javadoccomment"> * Returns <jk>true</jk> if
<c>getAnnotation(a,m)</c> returns a non-null value.</em>
-<a class="jxr_linenumber" name="L952" href="#L952">952</a> <em
class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L953" href="#L953">953</a> <em
class="jxr_javadoccomment"> * @param <A> The annotation being
checked for.</em>
-<a class="jxr_linenumber" name="L954" href="#L954">954</a> <em
class="jxr_javadoccomment"> * @param type The annotation being checked
for.</em>
-<a class="jxr_linenumber" name="L955" href="#L955">955</a> <em
class="jxr_javadoccomment"> * @param onMethod The method being checked
on.</em>
-<a class="jxr_linenumber" name="L956" href="#L956">956</a> <em
class="jxr_javadoccomment"> * @return <jk>true</jk> if the
annotation exists on the specified method.</em>
-<a class="jxr_linenumber" name="L957" href="#L957">957</a> <em
class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L958" href="#L958">958</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> <strong
class="jxr_keyword">boolean</strong> hasAnnotation(Class<A> type, Method
onMethod) {
-<a class="jxr_linenumber" name="L959" href="#L959">959</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().find(type,
onMethod).map(x -> x.<strong
class="jxr_keyword">inner</strong>()).findFirst().isPresent();
-<a class="jxr_linenumber" name="L960" href="#L960">960</a> }
-<a class="jxr_linenumber" name="L961" href="#L961">961</a>
-<a class="jxr_linenumber" name="L962" href="#L962">962</a> <em
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L963" href="#L963">963</a> <em
class="jxr_javadoccomment"> * Debug mode.</em>
-<a class="jxr_linenumber" name="L964" href="#L964">964</a> <em
class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L965" href="#L965">965</a> <em
class="jxr_javadoccomment"> * @see Context.Builder#debug()</em>
-<a class="jxr_linenumber" name="L966" href="#L966">966</a> <em
class="jxr_javadoccomment"> * @return</em>
-<a class="jxr_linenumber" name="L967" href="#L967">967</a> <em
class="jxr_javadoccomment"> * <jk>true</jk> if debug mode
is enabled.</em>
-<a class="jxr_linenumber" name="L968" href="#L968">968</a> <em
class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L969" href="#L969">969</a> <strong
class="jxr_keyword">public</strong> <strong
class="jxr_keyword">boolean</strong> isDebug() { <strong
class="jxr_keyword">return</strong> debug; }
-<a class="jxr_linenumber" name="L970" href="#L970">970</a>
-<a class="jxr_linenumber" name="L971" href="#L971">971</a> @Override <em
class="jxr_comment">/* Overridden from MetaProvider */</em>
-<a class="jxr_linenumber" name="L972" href="#L972">972</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> A
lastAnnotation(Class<A> type, Class<?> onClass, Predicate<A>
filter) {
-<a class="jxr_linenumber" name="L973" href="#L973">973</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().find(type,
onClass).map(x -> x.<strong class="jxr_keyword">inner</strong>()).filter(x
-> filter.test(x)).findFirst().orElse(<strong
class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L974" href="#L974">974</a> }
-<a class="jxr_linenumber" name="L975" href="#L975">975</a>
-<a class="jxr_linenumber" name="L976" href="#L976">976</a> @Override <em
class="jxr_comment">/* Overridden from MetaProvider */</em>
-<a class="jxr_linenumber" name="L977" href="#L977">977</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> A
lastAnnotation(Class<A> type, Constructor<?> onConstructor,
Predicate<A> filter) {
-<a class="jxr_linenumber" name="L978" href="#L978">978</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().find(type,
onConstructor).map(x -> x.<strong
class="jxr_keyword">inner</strong>()).filter(x ->
filter.test(x)).findFirst().orElse(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L979" href="#L979">979</a> }
-<a class="jxr_linenumber" name="L980" href="#L980">980</a>
-<a class="jxr_linenumber" name="L981" href="#L981">981</a> @Override <em
class="jxr_comment">/* Overridden from MetaProvider */</em>
-<a class="jxr_linenumber" name="L982" href="#L982">982</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> A
lastAnnotation(Class<A> type, Field onField, Predicate<A> filter) {
-<a class="jxr_linenumber" name="L983" href="#L983">983</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().find(type,
onField).map(x -> x.<strong class="jxr_keyword">inner</strong>()).filter(x
-> filter.test(x)).findFirst().orElse(<strong
class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L984" href="#L984">984</a> }
-<a class="jxr_linenumber" name="L985" href="#L985">985</a>
-<a class="jxr_linenumber" name="L986" href="#L986">986</a> @Override <em
class="jxr_comment">/* Overridden from MetaProvider */</em>
-<a class="jxr_linenumber" name="L987" href="#L987">987</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> A
lastAnnotation(Class<A> type, Method onMethod, Predicate<A> filter)
{
-<a class="jxr_linenumber" name="L988" href="#L988">988</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().find(type,
onMethod).map(x -> x.<strong class="jxr_keyword">inner</strong>()).filter(x
-> filter.test(x)).findFirst().orElse(<strong
class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L989" href="#L989">989</a> }
-<a class="jxr_linenumber" name="L990" href="#L990">990</a>
-<a class="jxr_linenumber" name="L991" href="#L991">991</a> @Override <em
class="jxr_comment">/* Overridden from MetaProvider */</em>
-<a class="jxr_linenumber" name="L992" href="#L992">992</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> A
lastDeclaredAnnotation(Class<A> type, Class<?> onClass,
Predicate<A> filter) {
-<a class="jxr_linenumber" name="L993" href="#L993">993</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().findDeclared(type,
onClass).map(x -> x.<strong class="jxr_keyword">inner</strong>()).filter(x
-> filter.test(x)).findFirst().orElse(<strong
class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L994" href="#L994">994</a> }
-<a class="jxr_linenumber" name="L995" href="#L995">995</a>
-<a class="jxr_linenumber" name="L996" href="#L996">996</a> @Override <em
class="jxr_comment">/* Overridden from Object */</em>
-<a class="jxr_linenumber" name="L997" href="#L997">997</a> <strong
class="jxr_keyword">public</strong> String toString() {
-<a class="jxr_linenumber" name="L998" href="#L998">998</a> <strong
class="jxr_keyword">return</strong> Utils2.toPropertyMap(<strong
class="jxr_keyword">this</strong>).asReadableString();
-<a class="jxr_linenumber" name="L999" href="#L999">999</a> }
-<a class="jxr_linenumber" name="L1000" href="#L1000">1000</a>
-<a class="jxr_linenumber" name="L1001" href="#L1001">1001</a>
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="L1002" href="#L1002">1002</a> <strong
class="jxr_keyword">private</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> A[]
declaredAnnotations(Class<A> type, Class<?> onClass) {
-<a class="jxr_linenumber" name="L1003" href="#L1003">1003</a> <strong
class="jxr_keyword">return</strong>
(A[])declaredClassAnnotationCache.get(onClass, type);
-<a class="jxr_linenumber" name="L1004" href="#L1004">1004</a> }
-<a class="jxr_linenumber" name="L1005" href="#L1005">1005</a>
-<a class="jxr_linenumber" name="L1006" href="#L1006">1006</a> <em
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1007" href="#L1007">1007</a> <em
class="jxr_javadoccomment"> * Perform optional initialization on builder
before it is used.</em>
+<a class="jxr_linenumber" name="L907" href="#L907">907</a> <em
class="jxr_javadoccomment"> * @return A new session object.</em>
+<a class="jxr_linenumber" name="L908" href="#L908">908</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L909" href="#L909">909</a> <strong
class="jxr_keyword">public</strong> <a name="ContextSession"
href="../../../org/apache/juneau/ContextSession.html#ContextSession">ContextSession</a>
getSession() { <strong class="jxr_keyword">return</strong>
createSession().build(); }
+<a class="jxr_linenumber" name="L910" href="#L910">910</a>
+<a class="jxr_linenumber" name="L911" href="#L911">911</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L912" href="#L912">912</a> <em
class="jxr_javadoccomment"> * Returns <jk>true</jk> if
<c>getAnnotation(a,c)</c> returns a non-null value.</em>
+<a class="jxr_linenumber" name="L913" href="#L913">913</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L914" href="#L914">914</a> <em
class="jxr_javadoccomment"> * @param <A> The annotation being
checked for.</em>
+<a class="jxr_linenumber" name="L915" href="#L915">915</a> <em
class="jxr_javadoccomment"> * @param type The annotation being checked
for.</em>
+<a class="jxr_linenumber" name="L916" href="#L916">916</a> <em
class="jxr_javadoccomment"> * @param onClass The class being checked
on.</em>
+<a class="jxr_linenumber" name="L917" href="#L917">917</a> <em
class="jxr_javadoccomment"> * @return <jk>true</jk> if the
annotation exists on the specified class.</em>
+<a class="jxr_linenumber" name="L918" href="#L918">918</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L919" href="#L919">919</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> <strong
class="jxr_keyword">boolean</strong> hasAnnotation(Class<A> type,
Class<?> onClass) {
+<a class="jxr_linenumber" name="L920" href="#L920">920</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().find(type,
onClass).map(x -> x.<strong
class="jxr_keyword">inner</strong>()).findFirst().isPresent();
+<a class="jxr_linenumber" name="L921" href="#L921">921</a> }
+<a class="jxr_linenumber" name="L922" href="#L922">922</a>
+<a class="jxr_linenumber" name="L923" href="#L923">923</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L924" href="#L924">924</a> <em
class="jxr_javadoccomment"> * Returns <jk>true</jk> if
<c>getAnnotation(a,c)</c> returns a non-null value.</em>
+<a class="jxr_linenumber" name="L925" href="#L925">925</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L926" href="#L926">926</a> <em
class="jxr_javadoccomment"> * @param <A> The annotation being
checked for.</em>
+<a class="jxr_linenumber" name="L927" href="#L927">927</a> <em
class="jxr_javadoccomment"> * @param type The annotation being checked
for.</em>
+<a class="jxr_linenumber" name="L928" href="#L928">928</a> <em
class="jxr_javadoccomment"> * @param onConstructor The constructor being
checked on.</em>
+<a class="jxr_linenumber" name="L929" href="#L929">929</a> <em
class="jxr_javadoccomment"> * @return <jk>true</jk> if the
annotation exists on the specified field.</em>
+<a class="jxr_linenumber" name="L930" href="#L930">930</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L931" href="#L931">931</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> <strong
class="jxr_keyword">boolean</strong> hasAnnotation(Class<A> type,
Constructor<?> onConstructor) {
+<a class="jxr_linenumber" name="L932" href="#L932">932</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().find(type,
onConstructor).map(x -> x.<strong
class="jxr_keyword">inner</strong>()).findFirst().isPresent();
+<a class="jxr_linenumber" name="L933" href="#L933">933</a> }
+<a class="jxr_linenumber" name="L934" href="#L934">934</a>
+<a class="jxr_linenumber" name="L935" href="#L935">935</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L936" href="#L936">936</a> <em
class="jxr_javadoccomment"> * Returns <jk>true</jk> if
<c>getAnnotation(a,f)</c> returns a non-null value.</em>
+<a class="jxr_linenumber" name="L937" href="#L937">937</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L938" href="#L938">938</a> <em
class="jxr_javadoccomment"> * @param <A> The annotation being
checked for.</em>
+<a class="jxr_linenumber" name="L939" href="#L939">939</a> <em
class="jxr_javadoccomment"> * @param type The annotation being checked
for.</em>
+<a class="jxr_linenumber" name="L940" href="#L940">940</a> <em
class="jxr_javadoccomment"> * @param onField The field being checked
on.</em>
+<a class="jxr_linenumber" name="L941" href="#L941">941</a> <em
class="jxr_javadoccomment"> * @return <jk>true</jk> if the
annotation exists on the specified field.</em>
+<a class="jxr_linenumber" name="L942" href="#L942">942</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L943" href="#L943">943</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> <strong
class="jxr_keyword">boolean</strong> hasAnnotation(Class<A> type, Field
onField) {
+<a class="jxr_linenumber" name="L944" href="#L944">944</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().find(type,
onField).map(x -> x.<strong
class="jxr_keyword">inner</strong>()).findFirst().isPresent();
+<a class="jxr_linenumber" name="L945" href="#L945">945</a> }
+<a class="jxr_linenumber" name="L946" href="#L946">946</a>
+<a class="jxr_linenumber" name="L947" href="#L947">947</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L948" href="#L948">948</a> <em
class="jxr_javadoccomment"> * Returns <jk>true</jk> if
<c>getAnnotation(a,m)</c> returns a non-null value.</em>
+<a class="jxr_linenumber" name="L949" href="#L949">949</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L950" href="#L950">950</a> <em
class="jxr_javadoccomment"> * @param <A> The annotation being
checked for.</em>
+<a class="jxr_linenumber" name="L951" href="#L951">951</a> <em
class="jxr_javadoccomment"> * @param type The annotation being checked
for.</em>
+<a class="jxr_linenumber" name="L952" href="#L952">952</a> <em
class="jxr_javadoccomment"> * @param onMethod The method being checked
on.</em>
+<a class="jxr_linenumber" name="L953" href="#L953">953</a> <em
class="jxr_javadoccomment"> * @return <jk>true</jk> if the
annotation exists on the specified method.</em>
+<a class="jxr_linenumber" name="L954" href="#L954">954</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L955" href="#L955">955</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> <strong
class="jxr_keyword">boolean</strong> hasAnnotation(Class<A> type, Method
onMethod) {
+<a class="jxr_linenumber" name="L956" href="#L956">956</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().find(type,
onMethod).map(x -> x.<strong
class="jxr_keyword">inner</strong>()).findFirst().isPresent();
+<a class="jxr_linenumber" name="L957" href="#L957">957</a> }
+<a class="jxr_linenumber" name="L958" href="#L958">958</a>
+<a class="jxr_linenumber" name="L959" href="#L959">959</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L960" href="#L960">960</a> <em
class="jxr_javadoccomment"> * Debug mode.</em>
+<a class="jxr_linenumber" name="L961" href="#L961">961</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L962" href="#L962">962</a> <em
class="jxr_javadoccomment"> * @see Context.Builder#debug()</em>
+<a class="jxr_linenumber" name="L963" href="#L963">963</a> <em
class="jxr_javadoccomment"> * @return</em>
+<a class="jxr_linenumber" name="L964" href="#L964">964</a> <em
class="jxr_javadoccomment"> * <jk>true</jk> if debug mode
is enabled.</em>
+<a class="jxr_linenumber" name="L965" href="#L965">965</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L966" href="#L966">966</a> <strong
class="jxr_keyword">public</strong> <strong
class="jxr_keyword">boolean</strong> isDebug() { <strong
class="jxr_keyword">return</strong> debug; }
+<a class="jxr_linenumber" name="L967" href="#L967">967</a>
+<a class="jxr_linenumber" name="L968" href="#L968">968</a> @Override <em
class="jxr_comment">/* Overridden from MetaProvider */</em>
+<a class="jxr_linenumber" name="L969" href="#L969">969</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> A
lastAnnotation(Class<A> type, Class<?> onClass, Predicate<A>
filter) {
+<a class="jxr_linenumber" name="L970" href="#L970">970</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().find(type,
onClass).map(x -> x.<strong class="jxr_keyword">inner</strong>()).filter(x
-> filter.test(x)).findFirst().orElse(<strong
class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L971" href="#L971">971</a> }
+<a class="jxr_linenumber" name="L972" href="#L972">972</a>
+<a class="jxr_linenumber" name="L973" href="#L973">973</a> @Override <em
class="jxr_comment">/* Overridden from MetaProvider */</em>
+<a class="jxr_linenumber" name="L974" href="#L974">974</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> A
lastAnnotation(Class<A> type, Constructor<?> onConstructor,
Predicate<A> filter) {
+<a class="jxr_linenumber" name="L975" href="#L975">975</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().find(type,
onConstructor).map(x -> x.<strong
class="jxr_keyword">inner</strong>()).filter(x ->
filter.test(x)).findFirst().orElse(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L976" href="#L976">976</a> }
+<a class="jxr_linenumber" name="L977" href="#L977">977</a>
+<a class="jxr_linenumber" name="L978" href="#L978">978</a> @Override <em
class="jxr_comment">/* Overridden from MetaProvider */</em>
+<a class="jxr_linenumber" name="L979" href="#L979">979</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> A
lastAnnotation(Class<A> type, Field onField, Predicate<A> filter) {
+<a class="jxr_linenumber" name="L980" href="#L980">980</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().find(type,
onField).map(x -> x.<strong class="jxr_keyword">inner</strong>()).filter(x
-> filter.test(x)).findFirst().orElse(<strong
class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L981" href="#L981">981</a> }
+<a class="jxr_linenumber" name="L982" href="#L982">982</a>
+<a class="jxr_linenumber" name="L983" href="#L983">983</a> @Override <em
class="jxr_comment">/* Overridden from MetaProvider */</em>
+<a class="jxr_linenumber" name="L984" href="#L984">984</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> A
lastAnnotation(Class<A> type, Method onMethod, Predicate<A> filter)
{
+<a class="jxr_linenumber" name="L985" href="#L985">985</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().find(type,
onMethod).map(x -> x.<strong class="jxr_keyword">inner</strong>()).filter(x
-> filter.test(x)).findFirst().orElse(<strong
class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L986" href="#L986">986</a> }
+<a class="jxr_linenumber" name="L987" href="#L987">987</a>
+<a class="jxr_linenumber" name="L988" href="#L988">988</a> @Override <em
class="jxr_comment">/* Overridden from MetaProvider */</em>
+<a class="jxr_linenumber" name="L989" href="#L989">989</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> A
lastDeclaredAnnotation(Class<A> type, Class<?> onClass,
Predicate<A> filter) {
+<a class="jxr_linenumber" name="L990" href="#L990">990</a> <strong
class="jxr_keyword">return</strong> getAnnotationProvider().findDeclared(type,
onClass).map(x -> x.<strong class="jxr_keyword">inner</strong>()).filter(x
-> filter.test(x)).findFirst().orElse(<strong
class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L991" href="#L991">991</a> }
+<a class="jxr_linenumber" name="L992" href="#L992">992</a>
+<a class="jxr_linenumber" name="L993" href="#L993">993</a> @Override <em
class="jxr_comment">/* Overridden from Object */</em>
+<a class="jxr_linenumber" name="L994" href="#L994">994</a> <strong
class="jxr_keyword">public</strong> String toString() {
+<a class="jxr_linenumber" name="L995" href="#L995">995</a> <strong
class="jxr_keyword">return</strong> Utils2.toPropertyMap(<strong
class="jxr_keyword">this</strong>).asReadableString();
+<a class="jxr_linenumber" name="L996" href="#L996">996</a> }
+<a class="jxr_linenumber" name="L997" href="#L997">997</a>
+<a class="jxr_linenumber" name="L998" href="#L998">998</a>
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="L999" href="#L999">999</a> <strong
class="jxr_keyword">private</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation> A[]
declaredAnnotations(Class<A> type, Class<?> onClass) {
+<a class="jxr_linenumber" name="L1000" href="#L1000">1000</a> <strong
class="jxr_keyword">return</strong>
(A[])declaredClassAnnotationCache.get(onClass, type);
+<a class="jxr_linenumber" name="L1001" href="#L1001">1001</a> }
+<a class="jxr_linenumber" name="L1002" href="#L1002">1002</a>
+<a class="jxr_linenumber" name="L1003" href="#L1003">1003</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1004" href="#L1004">1004</a> <em
class="jxr_javadoccomment"> * Perform optional initialization on builder
before it is used.</em>
+<a class="jxr_linenumber" name="L1005" href="#L1005">1005</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L1006" href="#L1006">1006</a> <em
class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L1007" href="#L1007">1007</a> <em
class="jxr_javadoccomment"> * Default behavior is a no-op.</em>
<a class="jxr_linenumber" name="L1008" href="#L1008">1008</a> <em
class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L1009" href="#L1009">1009</a> <em
class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L1010" href="#L1010">1010</a> <em
class="jxr_javadoccomment"> * Default behavior is a no-op.</em>
-<a class="jxr_linenumber" name="L1011" href="#L1011">1011</a> <em
class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L1012" href="#L1012">1012</a> <em
class="jxr_javadoccomment"> * @param builder The builder to initialize.</em>
-<a class="jxr_linenumber" name="L1013" href="#L1013">1013</a> <em
class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L1014" href="#L1014">1014</a> <strong
class="jxr_keyword">protected</strong> <strong
class="jxr_keyword">void</strong> init(Builder builder) {}
-<a class="jxr_linenumber" name="L1015" href="#L1015">1015</a>
-<a class="jxr_linenumber" name="L1016" href="#L1016">1016</a> <em
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1017" href="#L1017">1017</a> <em
class="jxr_javadoccomment"> * Returns the properties on this bean as a map
for debugging.</em>
-<a class="jxr_linenumber" name="L1018" href="#L1018">1018</a> <em
class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L1019" href="#L1019">1019</a> <em
class="jxr_javadoccomment"> * @return The properties on this bean as a map
for debugging.</em>
-<a class="jxr_linenumber" name="L1020" href="#L1020">1020</a> <em
class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L1021" href="#L1021">1021</a> <strong
class="jxr_keyword">protected</strong> <a name="JsonMap"
href="../../../org/apache/juneau/collections/JsonMap.html#JsonMap">JsonMap</a>
properties() {
-<a class="jxr_linenumber" name="L1022" href="#L1022">1022</a> <strong
class="jxr_keyword">return</strong> filteredMap(<span
class="jxr_string">"annotations"</span>, annotations, <span
class="jxr_string">"debug"</span>, debug);
-<a class="jxr_linenumber" name="L1023" href="#L1023">1023</a> }
-<a class="jxr_linenumber" name="L1024" href="#L1024">1024</a> }
+<a class="jxr_linenumber" name="L1009" href="#L1009">1009</a> <em
class="jxr_javadoccomment"> * @param builder The builder to initialize.</em>
+<a class="jxr_linenumber" name="L1010" href="#L1010">1010</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L1011" href="#L1011">1011</a> <strong
class="jxr_keyword">protected</strong> <strong
class="jxr_keyword">void</strong> init(Builder builder) {}
+<a class="jxr_linenumber" name="L1012" href="#L1012">1012</a>
+<a class="jxr_linenumber" name="L1013" href="#L1013">1013</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1014" href="#L1014">1014</a> <em
class="jxr_javadoccomment"> * Returns the properties on this bean as a map
for debugging.</em>
+<a class="jxr_linenumber" name="L1015" href="#L1015">1015</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L1016" href="#L1016">1016</a> <em
class="jxr_javadoccomment"> * @return The properties on this bean as a map
for debugging.</em>
+<a class="jxr_linenumber" name="L1017" href="#L1017">1017</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L1018" href="#L1018">1018</a> <strong
class="jxr_keyword">protected</strong> <a name="JsonMap"
href="../../../org/apache/juneau/collections/JsonMap.html#JsonMap">JsonMap</a>
properties() {
+<a class="jxr_linenumber" name="L1019" href="#L1019">1019</a> <strong
class="jxr_keyword">return</strong> filteredMap(<span
class="jxr_string">"annotations"</span>, annotations, <span
class="jxr_string">"debug"</span>, debug);
+<a class="jxr_linenumber" name="L1020" href="#L1020">1020</a> }
+<a class="jxr_linenumber" name="L1021" href="#L1021">1021</a> }
</pre>
<hr/>
<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache
Software Foundation</a></div>
diff --git
a/site/xref/org/apache/juneau/common/reflect/AnnotationProvider2.html
b/site/xref/org/apache/juneau/common/reflect/AnnotationProvider2.html
index f13a96fc12..d4f1ce628a 100644
--- a/site/xref/org/apache/juneau/common/reflect/AnnotationProvider2.html
+++ b/site/xref/org/apache/juneau/common/reflect/AnnotationProvider2.html
@@ -280,163 +280,205 @@
<a class="jxr_linenumber" name="L272" href="#L272">272</a> <strong
class="jxr_keyword">return</strong> classDeclaredAnnotations.get(onClass);
<a class="jxr_linenumber" name="L273" href="#L273">273</a> }
<a class="jxr_linenumber" name="L274" href="#L274">274</a>
-<a class="jxr_linenumber" name="L275" href="#L275">275</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation>
Stream<AnnotationInfo<A>> findDeclared(Class<A> type,
Class<?> onClass) {
-<a class="jxr_linenumber" name="L276" href="#L276">276</a>
assertArgNotNull(<span class="jxr_string">"type"</span>, type);
-<a class="jxr_linenumber" name="L277" href="#L277">277</a>
assertArgNotNull(<span class="jxr_string">"onClass"</span>, onClass);
-<a class="jxr_linenumber" name="L278" href="#L278">278</a> <strong
class="jxr_keyword">return</strong> findDeclared(onClass).stream()
-<a class="jxr_linenumber" name="L279" href="#L279">279</a>
.filter(a -> a.isType(type))
-<a class="jxr_linenumber" name="L280" href="#L280">280</a>
.map(a -> (AnnotationInfo<A>)a);
-<a class="jxr_linenumber" name="L281" href="#L281">281</a> }
-<a class="jxr_linenumber" name="L282" href="#L282">282</a>
-<a class="jxr_linenumber" name="L283" href="#L283">283</a> <strong
class="jxr_keyword">public</strong>
List<AnnotationInfo<Annotation>> find(Method onMethod) {
-<a class="jxr_linenumber" name="L284" href="#L284">284</a>
assertArgNotNull(<span class="jxr_string">"onMethod"</span>, onMethod);
-<a class="jxr_linenumber" name="L285" href="#L285">285</a> <strong
class="jxr_keyword">return</strong> methodAnnotations.get(onMethod);
-<a class="jxr_linenumber" name="L286" href="#L286">286</a> }
-<a class="jxr_linenumber" name="L287" href="#L287">287</a>
-<a class="jxr_linenumber" name="L288" href="#L288">288</a>
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="L289" href="#L289">289</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation>
Stream<AnnotationInfo<A>> find(Class<A> type, Method
onMethod) {
-<a class="jxr_linenumber" name="L290" href="#L290">290</a>
assertArgNotNull(<span class="jxr_string">"type"</span>, type);
-<a class="jxr_linenumber" name="L291" href="#L291">291</a>
assertArgNotNull(<span class="jxr_string">"onMethod"</span>, onMethod);
-<a class="jxr_linenumber" name="L292" href="#L292">292</a> <strong
class="jxr_keyword">return</strong> find(onMethod).stream()
-<a class="jxr_linenumber" name="L293" href="#L293">293</a>
.filter(a -> a.isType(type))
-<a class="jxr_linenumber" name="L294" href="#L294">294</a>
.map(a -> (AnnotationInfo<A>)a);
-<a class="jxr_linenumber" name="L295" href="#L295">295</a> }
-<a class="jxr_linenumber" name="L296" href="#L296">296</a>
-<a class="jxr_linenumber" name="L297" href="#L297">297</a> <strong
class="jxr_keyword">public</strong>
List<AnnotationInfo<Annotation>> find(Field onField) {
-<a class="jxr_linenumber" name="L298" href="#L298">298</a>
assertArgNotNull(<span class="jxr_string">"onField"</span>, onField);
-<a class="jxr_linenumber" name="L299" href="#L299">299</a> <strong
class="jxr_keyword">return</strong> fieldAnnotations.get(onField);
-<a class="jxr_linenumber" name="L300" href="#L300">300</a> }
-<a class="jxr_linenumber" name="L301" href="#L301">301</a>
-<a class="jxr_linenumber" name="L302" href="#L302">302</a>
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="L303" href="#L303">303</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation>
Stream<AnnotationInfo<A>> find(Class<A> type, Field onField) {
-<a class="jxr_linenumber" name="L304" href="#L304">304</a>
assertArgNotNull(<span class="jxr_string">"type"</span>, type);
-<a class="jxr_linenumber" name="L305" href="#L305">305</a>
assertArgNotNull(<span class="jxr_string">"onField"</span>, onField);
-<a class="jxr_linenumber" name="L306" href="#L306">306</a> <strong
class="jxr_keyword">return</strong> find(onField).stream()
-<a class="jxr_linenumber" name="L307" href="#L307">307</a>
.filter(a -> a.isType(type))
-<a class="jxr_linenumber" name="L308" href="#L308">308</a>
.map(a -> (AnnotationInfo<A>)a);
-<a class="jxr_linenumber" name="L309" href="#L309">309</a> }
-<a class="jxr_linenumber" name="L310" href="#L310">310</a>
-<a class="jxr_linenumber" name="L311" href="#L311">311</a> <strong
class="jxr_keyword">public</strong>
List<AnnotationInfo<Annotation>> find(Constructor<?>
onConstructor) {
-<a class="jxr_linenumber" name="L312" href="#L312">312</a>
assertArgNotNull(<span class="jxr_string">"onConstructor"</span>,
onConstructor);
-<a class="jxr_linenumber" name="L313" href="#L313">313</a> <strong
class="jxr_keyword">return</strong> constructorAnnotations.get(onConstructor);
-<a class="jxr_linenumber" name="L314" href="#L314">314</a> }
-<a class="jxr_linenumber" name="L315" href="#L315">315</a>
+<a class="jxr_linenumber" name="L275" href="#L275">275</a>
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="L276" href="#L276">276</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation>
Stream<AnnotationInfo<A>> findDeclared(Class<A> type,
Class<?> onClass) {
+<a class="jxr_linenumber" name="L277" href="#L277">277</a>
assertArgNotNull(<span class="jxr_string">"type"</span>, type);
+<a class="jxr_linenumber" name="L278" href="#L278">278</a>
assertArgNotNull(<span class="jxr_string">"onClass"</span>, onClass);
+<a class="jxr_linenumber" name="L279" href="#L279">279</a> <strong
class="jxr_keyword">return</strong> findDeclared(onClass).stream()
+<a class="jxr_linenumber" name="L280" href="#L280">280</a>
.filter(a -> a.isType(type))
+<a class="jxr_linenumber" name="L281" href="#L281">281</a>
.map(a -> (AnnotationInfo<A>)a);
+<a class="jxr_linenumber" name="L282" href="#L282">282</a> }
+<a class="jxr_linenumber" name="L283" href="#L283">283</a>
+<a class="jxr_linenumber" name="L284" href="#L284">284</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L285" href="#L285">285</a> <em
class="jxr_javadoccomment"> * Finds all declared annotations on the
specified class in parent-to-child order (reversed).</em>
+<a class="jxr_linenumber" name="L286" href="#L286">286</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L287" href="#L287">287</a> <em
class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L288" href="#L288">288</a> <em
class="jxr_javadoccomment"> * This method returns annotations in the
opposite order from {@link #findDeclared(Class)}.</em>
+<a class="jxr_linenumber" name="L289" href="#L289">289</a> <em
class="jxr_javadoccomment"> * It processes parent/declared annotations
first (lower priority), then runtime annotations (higher priority).</em>
+<a class="jxr_linenumber" name="L290" href="#L290">290</a> <em
class="jxr_javadoccomment"> * This is useful when you want to process
multiple annotation values where child annotations</em>
+<a class="jxr_linenumber" name="L291" href="#L291">291</a> <em
class="jxr_javadoccomment"> * can override values from parent
annotations.</em>
+<a class="jxr_linenumber" name="L292" href="#L292">292</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L293" href="#L293">293</a> <em
class="jxr_javadoccomment"> * @param onClass The class to search on.</em>
+<a class="jxr_linenumber" name="L294" href="#L294">294</a> <em
class="jxr_javadoccomment"> * @return A stream of {@link AnnotationInfo}
objects in parent-to-child order.</em>
+<a class="jxr_linenumber" name="L295" href="#L295">295</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L296" href="#L296">296</a> <strong
class="jxr_keyword">public</strong>
Stream<AnnotationInfo<Annotation>>
findDeclaredParentFirst(Class<?> onClass) {
+<a class="jxr_linenumber" name="L297" href="#L297">297</a>
assertArgNotNull(<span class="jxr_string">"onClass"</span>, onClass);
+<a class="jxr_linenumber" name="L298" href="#L298">298</a> <strong
class="jxr_keyword">var</strong> list = classDeclaredAnnotations.get(onClass);
+<a class="jxr_linenumber" name="L299" href="#L299">299</a> <em
class="jxr_comment">// Iterate backwards to get parent-to-child order</em>
+<a class="jxr_linenumber" name="L300" href="#L300">300</a> <strong
class="jxr_keyword">return</strong> java.util.stream.IntStream.range(0,
list.size())
+<a class="jxr_linenumber" name="L301" href="#L301">301</a>
.map(i -> list.size() - 1 - i)
+<a class="jxr_linenumber" name="L302" href="#L302">302</a>
.mapToObj(list::get);
+<a class="jxr_linenumber" name="L303" href="#L303">303</a> }
+<a class="jxr_linenumber" name="L304" href="#L304">304</a>
+<a class="jxr_linenumber" name="L305" href="#L305">305</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L306" href="#L306">306</a> <em
class="jxr_javadoccomment"> * Finds all declared annotations of the
specified type on the specified class in parent-to-child order (reversed).</em>
+<a class="jxr_linenumber" name="L307" href="#L307">307</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L308" href="#L308">308</a> <em
class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L309" href="#L309">309</a> <em
class="jxr_javadoccomment"> * This method returns annotations in the
opposite order from {@link #findDeclared(Class, Class)}.</em>
+<a class="jxr_linenumber" name="L310" href="#L310">310</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L311" href="#L311">311</a> <em
class="jxr_javadoccomment"> * @param <A> The annotation type to
find.</em>
+<a class="jxr_linenumber" name="L312" href="#L312">312</a> <em
class="jxr_javadoccomment"> * @param type The annotation type to find.</em>
+<a class="jxr_linenumber" name="L313" href="#L313">313</a> <em
class="jxr_javadoccomment"> * @param onClass The class to search on.</em>
+<a class="jxr_linenumber" name="L314" href="#L314">314</a> <em
class="jxr_javadoccomment"> * @return A stream of {@link AnnotationInfo}
objects in parent-to-child order.</em>
+<a class="jxr_linenumber" name="L315" href="#L315">315</a> <em
class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L316" href="#L316">316</a>
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="L317" href="#L317">317</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation>
Stream<AnnotationInfo<A>> find(Class<A> type,
Constructor<?> onConstructor) {
+<a class="jxr_linenumber" name="L317" href="#L317">317</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation>
Stream<AnnotationInfo<A>> findDeclaredParentFirst(Class<A>
type, Class<?> onClass) {
<a class="jxr_linenumber" name="L318" href="#L318">318</a>
assertArgNotNull(<span class="jxr_string">"type"</span>, type);
-<a class="jxr_linenumber" name="L319" href="#L319">319</a>
assertArgNotNull(<span class="jxr_string">"onConstructor"</span>,
onConstructor);
-<a class="jxr_linenumber" name="L320" href="#L320">320</a> <strong
class="jxr_keyword">return</strong> find(onConstructor).stream()
+<a class="jxr_linenumber" name="L319" href="#L319">319</a>
assertArgNotNull(<span class="jxr_string">"onClass"</span>, onClass);
+<a class="jxr_linenumber" name="L320" href="#L320">320</a> <strong
class="jxr_keyword">return</strong> findDeclaredParentFirst(onClass)
<a class="jxr_linenumber" name="L321" href="#L321">321</a>
.filter(a -> a.isType(type))
<a class="jxr_linenumber" name="L322" href="#L322">322</a>
.map(a -> (AnnotationInfo<A>)a);
<a class="jxr_linenumber" name="L323" href="#L323">323</a> }
<a class="jxr_linenumber" name="L324" href="#L324">324</a>
-<a class="jxr_linenumber" name="L325" href="#L325">325</a> <em
class="jxr_comment">//-----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="L326" href="#L326">326</a> <em
class="jxr_comment">// Private implementation</em>
-<a class="jxr_linenumber" name="L327" href="#L327">327</a> <em
class="jxr_comment">//-----------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="L328" href="#L328">328</a>
-<a class="jxr_linenumber" name="L329" href="#L329">329</a> <em
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L330" href="#L330">330</a> <em
class="jxr_javadoccomment"> * Finds all annotations on the specified class
in child-to-parent order.</em>
-<a class="jxr_linenumber" name="L331" href="#L331">331</a> <em
class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L332" href="#L332">332</a> <em
class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L333" href="#L333">333</a> <em
class="jxr_javadoccomment"> * Annotations are appended in the following
order:</em>
-<a class="jxr_linenumber" name="L334" href="#L334">334</a> <em
class="jxr_javadoccomment"> * <ol></em>
-<a class="jxr_linenumber" name="L335" href="#L335">335</a> <em
class="jxr_javadoccomment"> * <li>On this class.</em>
-<a class="jxr_linenumber" name="L336" href="#L336">336</a> <em
class="jxr_javadoccomment"> * <li>On parent classes ordered
child-to-parent.</em>
-<a class="jxr_linenumber" name="L337" href="#L337">337</a> <em
class="jxr_javadoccomment"> * <li>On interfaces ordered
child-to-parent.</em>
-<a class="jxr_linenumber" name="L338" href="#L338">338</a> <em
class="jxr_javadoccomment"> * <li>On the package of this
class.</em>
-<a class="jxr_linenumber" name="L339" href="#L339">339</a> <em
class="jxr_javadoccomment"> * </ol></em>
-<a class="jxr_linenumber" name="L340" href="#L340">340</a> <em
class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L341" href="#L341">341</a> <em
class="jxr_javadoccomment"> * @param forClass The class to find
annotations on.</em>
-<a class="jxr_linenumber" name="L342" href="#L342">342</a> <em
class="jxr_javadoccomment"> * @return A list of {@link AnnotationInfo}
objects in child-to-parent order.</em>
-<a class="jxr_linenumber" name="L343" href="#L343">343</a> <em
class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L344" href="#L344">344</a> <strong
class="jxr_keyword">private</strong>
List<AnnotationInfo<Annotation>>
findClassAnnotations(Class<?> forClass) {
-<a class="jxr_linenumber" name="L345" href="#L345">345</a> <strong
class="jxr_keyword">var</strong> ci = ClassInfo.of(forClass);
-<a class="jxr_linenumber" name="L346" href="#L346">346</a> <strong
class="jxr_keyword">var</strong> list = <strong
class="jxr_keyword">new</strong>
ArrayList<AnnotationInfo<Annotation>>();
-<a class="jxr_linenumber" name="L347" href="#L347">347</a>
-<a class="jxr_linenumber" name="L348" href="#L348">348</a> <em
class="jxr_comment">// On all parent classes and interfaces (properly traversed
to avoid duplicates)</em>
-<a class="jxr_linenumber" name="L349" href="#L349">349</a> <strong
class="jxr_keyword">var</strong> parentsAndInterfaces =
ci.getParentsAndInterfaces();
-<a class="jxr_linenumber" name="L350" href="#L350">350</a> <strong
class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i =
0; i < parentsAndInterfaces.size(); i++)
-<a class="jxr_linenumber" name="L351" href="#L351">351</a>
findDeclaredAnnotations(list, parentsAndInterfaces.get(i).<strong
class="jxr_keyword">inner</strong>());
+<a class="jxr_linenumber" name="L325" href="#L325">325</a> <strong
class="jxr_keyword">public</strong>
List<AnnotationInfo<Annotation>> find(Method onMethod) {
+<a class="jxr_linenumber" name="L326" href="#L326">326</a>
assertArgNotNull(<span class="jxr_string">"onMethod"</span>, onMethod);
+<a class="jxr_linenumber" name="L327" href="#L327">327</a> <strong
class="jxr_keyword">return</strong> methodAnnotations.get(onMethod);
+<a class="jxr_linenumber" name="L328" href="#L328">328</a> }
+<a class="jxr_linenumber" name="L329" href="#L329">329</a>
+<a class="jxr_linenumber" name="L330" href="#L330">330</a>
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="L331" href="#L331">331</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation>
Stream<AnnotationInfo<A>> find(Class<A> type, Method
onMethod) {
+<a class="jxr_linenumber" name="L332" href="#L332">332</a>
assertArgNotNull(<span class="jxr_string">"type"</span>, type);
+<a class="jxr_linenumber" name="L333" href="#L333">333</a>
assertArgNotNull(<span class="jxr_string">"onMethod"</span>, onMethod);
+<a class="jxr_linenumber" name="L334" href="#L334">334</a> <strong
class="jxr_keyword">return</strong> find(onMethod).stream()
+<a class="jxr_linenumber" name="L335" href="#L335">335</a>
.filter(a -> a.isType(type))
+<a class="jxr_linenumber" name="L336" href="#L336">336</a>
.map(a -> (AnnotationInfo<A>)a);
+<a class="jxr_linenumber" name="L337" href="#L337">337</a> }
+<a class="jxr_linenumber" name="L338" href="#L338">338</a>
+<a class="jxr_linenumber" name="L339" href="#L339">339</a> <strong
class="jxr_keyword">public</strong>
List<AnnotationInfo<Annotation>> find(Field onField) {
+<a class="jxr_linenumber" name="L340" href="#L340">340</a>
assertArgNotNull(<span class="jxr_string">"onField"</span>, onField);
+<a class="jxr_linenumber" name="L341" href="#L341">341</a> <strong
class="jxr_keyword">return</strong> fieldAnnotations.get(onField);
+<a class="jxr_linenumber" name="L342" href="#L342">342</a> }
+<a class="jxr_linenumber" name="L343" href="#L343">343</a>
+<a class="jxr_linenumber" name="L344" href="#L344">344</a>
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="L345" href="#L345">345</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation>
Stream<AnnotationInfo<A>> find(Class<A> type, Field onField) {
+<a class="jxr_linenumber" name="L346" href="#L346">346</a>
assertArgNotNull(<span class="jxr_string">"type"</span>, type);
+<a class="jxr_linenumber" name="L347" href="#L347">347</a>
assertArgNotNull(<span class="jxr_string">"onField"</span>, onField);
+<a class="jxr_linenumber" name="L348" href="#L348">348</a> <strong
class="jxr_keyword">return</strong> find(onField).stream()
+<a class="jxr_linenumber" name="L349" href="#L349">349</a>
.filter(a -> a.isType(type))
+<a class="jxr_linenumber" name="L350" href="#L350">350</a>
.map(a -> (AnnotationInfo<A>)a);
+<a class="jxr_linenumber" name="L351" href="#L351">351</a> }
<a class="jxr_linenumber" name="L352" href="#L352">352</a>
-<a class="jxr_linenumber" name="L353" href="#L353">353</a> <em
class="jxr_comment">// On the package of this class</em>
-<a class="jxr_linenumber" name="L354" href="#L354">354</a> <strong
class="jxr_keyword">var</strong> pkg = ci.getPackage();
-<a class="jxr_linenumber" name="L355" href="#L355">355</a> <strong
class="jxr_keyword">if</strong> (nn(pkg)) {
-<a class="jxr_linenumber" name="L356" href="#L356">356</a>
<strong class="jxr_keyword">var</strong> pi = PackageInfo.of(pkg.<strong
class="jxr_keyword">inner</strong>());
-<a class="jxr_linenumber" name="L357" href="#L357">357</a>
<strong class="jxr_keyword">for</strong> (<strong
class="jxr_keyword">var</strong> a : pkg.<strong
class="jxr_keyword">inner</strong>().getAnnotations())
-<a class="jxr_linenumber" name="L358" href="#L358">358</a>
<strong class="jxr_keyword">for</strong> (<strong
class="jxr_keyword">var</strong> a2 : splitRepeated(a))
-<a class="jxr_linenumber" name="L359" href="#L359">359</a>
list.add(AnnotationInfo.of(pi, a2));
-<a class="jxr_linenumber" name="L360" href="#L360">360</a> }
-<a class="jxr_linenumber" name="L361" href="#L361">361</a>
-<a class="jxr_linenumber" name="L362" href="#L362">362</a> <strong
class="jxr_keyword">return</strong> u(list);
-<a class="jxr_linenumber" name="L363" href="#L363">363</a> }
-<a class="jxr_linenumber" name="L364" href="#L364">364</a>
-<a class="jxr_linenumber" name="L365" href="#L365">365</a> <strong
class="jxr_keyword">private</strong>
List<AnnotationInfo<Annotation>>
findClassDeclaredAnnotations(Class<?> forClass) {
-<a class="jxr_linenumber" name="L366" href="#L366">366</a> <strong
class="jxr_keyword">var</strong> list = <strong
class="jxr_keyword">new</strong>
ArrayList<AnnotationInfo<Annotation>>();
-<a class="jxr_linenumber" name="L367" href="#L367">367</a>
-<a class="jxr_linenumber" name="L368" href="#L368">368</a> <em
class="jxr_comment">// On this class</em>
-<a class="jxr_linenumber" name="L369" href="#L369">369</a>
findDeclaredAnnotations(list, forClass);
+<a class="jxr_linenumber" name="L353" href="#L353">353</a> <strong
class="jxr_keyword">public</strong>
List<AnnotationInfo<Annotation>> find(Constructor<?>
onConstructor) {
+<a class="jxr_linenumber" name="L354" href="#L354">354</a>
assertArgNotNull(<span class="jxr_string">"onConstructor"</span>,
onConstructor);
+<a class="jxr_linenumber" name="L355" href="#L355">355</a> <strong
class="jxr_keyword">return</strong> constructorAnnotations.get(onConstructor);
+<a class="jxr_linenumber" name="L356" href="#L356">356</a> }
+<a class="jxr_linenumber" name="L357" href="#L357">357</a>
+<a class="jxr_linenumber" name="L358" href="#L358">358</a>
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="L359" href="#L359">359</a> <strong
class="jxr_keyword">public</strong> <A <strong
class="jxr_keyword">extends</strong> Annotation>
Stream<AnnotationInfo<A>> find(Class<A> type,
Constructor<?> onConstructor) {
+<a class="jxr_linenumber" name="L360" href="#L360">360</a>
assertArgNotNull(<span class="jxr_string">"type"</span>, type);
+<a class="jxr_linenumber" name="L361" href="#L361">361</a>
assertArgNotNull(<span class="jxr_string">"onConstructor"</span>,
onConstructor);
+<a class="jxr_linenumber" name="L362" href="#L362">362</a> <strong
class="jxr_keyword">return</strong> find(onConstructor).stream()
+<a class="jxr_linenumber" name="L363" href="#L363">363</a>
.filter(a -> a.isType(type))
+<a class="jxr_linenumber" name="L364" href="#L364">364</a>
.map(a -> (AnnotationInfo<A>)a);
+<a class="jxr_linenumber" name="L365" href="#L365">365</a> }
+<a class="jxr_linenumber" name="L366" href="#L366">366</a>
+<a class="jxr_linenumber" name="L367" href="#L367">367</a> <em
class="jxr_comment">//-----------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L368" href="#L368">368</a> <em
class="jxr_comment">// Private implementation</em>
+<a class="jxr_linenumber" name="L369" href="#L369">369</a> <em
class="jxr_comment">//-----------------------------------------------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="L370" href="#L370">370</a>
-<a class="jxr_linenumber" name="L371" href="#L371">371</a> <strong
class="jxr_keyword">return</strong> u(list);
-<a class="jxr_linenumber" name="L372" href="#L372">372</a> }
-<a class="jxr_linenumber" name="L373" href="#L373">373</a>
-<a class="jxr_linenumber" name="L374" href="#L374">374</a> <strong
class="jxr_keyword">private</strong>
List<AnnotationInfo<Annotation>> findMethodAnnotations(Method
forMethod) {
-<a class="jxr_linenumber" name="L375" href="#L375">375</a> <strong
class="jxr_keyword">var</strong> list = <strong
class="jxr_keyword">new</strong>
ArrayList<AnnotationInfo<Annotation>>();
-<a class="jxr_linenumber" name="L376" href="#L376">376</a>
-<a class="jxr_linenumber" name="L377" href="#L377">377</a>
MethodInfo.of(forMethod).getMatchingMethods().forEach(m -> {
-<a class="jxr_linenumber" name="L378" href="#L378">378</a>
runtimeAnnotations.findMatching(m.<strong
class="jxr_keyword">inner</strong>()).forEach(a ->
list.add(AnnotationInfo.of(m, a)));
-<a class="jxr_linenumber" name="L379" href="#L379">379</a>
list.addAll(m.getDeclaredAnnotationInfos());
-<a class="jxr_linenumber" name="L380" href="#L380">380</a> });
-<a class="jxr_linenumber" name="L381" href="#L381">381</a>
-<a class="jxr_linenumber" name="L382" href="#L382">382</a> <strong
class="jxr_keyword">return</strong> u(list);
-<a class="jxr_linenumber" name="L383" href="#L383">383</a> }
-<a class="jxr_linenumber" name="L384" href="#L384">384</a>
-<a class="jxr_linenumber" name="L385" href="#L385">385</a> <strong
class="jxr_keyword">private</strong>
List<AnnotationInfo<Annotation>> findFieldAnnotations(Field
forField) {
-<a class="jxr_linenumber" name="L386" href="#L386">386</a> <strong
class="jxr_keyword">var</strong> list = <strong
class="jxr_keyword">new</strong>
ArrayList<AnnotationInfo<Annotation>>();
-<a class="jxr_linenumber" name="L387" href="#L387">387</a>
-<a class="jxr_linenumber" name="L388" href="#L388">388</a>
FieldInfo fi = FieldInfo.of(forField);
-<a class="jxr_linenumber" name="L389" href="#L389">389</a>
runtimeAnnotations.findMatching(forField).forEach(a ->
list.add(AnnotationInfo.of(fi, a)));
-<a class="jxr_linenumber" name="L390" href="#L390">390</a>
list.addAll(fi.getAnnotationInfos());
-<a class="jxr_linenumber" name="L391" href="#L391">391</a>
-<a class="jxr_linenumber" name="L392" href="#L392">392</a> <strong
class="jxr_keyword">return</strong> u(list);
-<a class="jxr_linenumber" name="L393" href="#L393">393</a> }
+<a class="jxr_linenumber" name="L371" href="#L371">371</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L372" href="#L372">372</a> <em
class="jxr_javadoccomment"> * Finds all annotations on the specified class
in child-to-parent order.</em>
+<a class="jxr_linenumber" name="L373" href="#L373">373</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L374" href="#L374">374</a> <em
class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L375" href="#L375">375</a> <em
class="jxr_javadoccomment"> * Annotations are appended in the following
order:</em>
+<a class="jxr_linenumber" name="L376" href="#L376">376</a> <em
class="jxr_javadoccomment"> * <ol></em>
+<a class="jxr_linenumber" name="L377" href="#L377">377</a> <em
class="jxr_javadoccomment"> * <li>On this class.</em>
+<a class="jxr_linenumber" name="L378" href="#L378">378</a> <em
class="jxr_javadoccomment"> * <li>On parent classes ordered
child-to-parent.</em>
+<a class="jxr_linenumber" name="L379" href="#L379">379</a> <em
class="jxr_javadoccomment"> * <li>On interfaces ordered
child-to-parent.</em>
+<a class="jxr_linenumber" name="L380" href="#L380">380</a> <em
class="jxr_javadoccomment"> * <li>On the package of this
class.</em>
+<a class="jxr_linenumber" name="L381" href="#L381">381</a> <em
class="jxr_javadoccomment"> * </ol></em>
+<a class="jxr_linenumber" name="L382" href="#L382">382</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L383" href="#L383">383</a> <em
class="jxr_javadoccomment"> * @param forClass The class to find
annotations on.</em>
+<a class="jxr_linenumber" name="L384" href="#L384">384</a> <em
class="jxr_javadoccomment"> * @return A list of {@link AnnotationInfo}
objects in child-to-parent order.</em>
+<a class="jxr_linenumber" name="L385" href="#L385">385</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L386" href="#L386">386</a> <strong
class="jxr_keyword">private</strong>
List<AnnotationInfo<Annotation>>
findClassAnnotations(Class<?> forClass) {
+<a class="jxr_linenumber" name="L387" href="#L387">387</a> <strong
class="jxr_keyword">var</strong> ci = ClassInfo.of(forClass);
+<a class="jxr_linenumber" name="L388" href="#L388">388</a> <strong
class="jxr_keyword">var</strong> list = <strong
class="jxr_keyword">new</strong>
ArrayList<AnnotationInfo<Annotation>>();
+<a class="jxr_linenumber" name="L389" href="#L389">389</a>
+<a class="jxr_linenumber" name="L390" href="#L390">390</a> <em
class="jxr_comment">// On all parent classes and interfaces (properly traversed
to avoid duplicates)</em>
+<a class="jxr_linenumber" name="L391" href="#L391">391</a> <strong
class="jxr_keyword">var</strong> parentsAndInterfaces =
ci.getParentsAndInterfaces();
+<a class="jxr_linenumber" name="L392" href="#L392">392</a> <strong
class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i =
0; i < parentsAndInterfaces.size(); i++)
+<a class="jxr_linenumber" name="L393" href="#L393">393</a>
findDeclaredAnnotations(list, parentsAndInterfaces.get(i).<strong
class="jxr_keyword">inner</strong>());
<a class="jxr_linenumber" name="L394" href="#L394">394</a>
-<a class="jxr_linenumber" name="L395" href="#L395">395</a> <strong
class="jxr_keyword">private</strong>
List<AnnotationInfo<Annotation>>
findConstructorAnnotations(Constructor<?> forConstructor) {
-<a class="jxr_linenumber" name="L396" href="#L396">396</a> <strong
class="jxr_keyword">var</strong> list = <strong
class="jxr_keyword">new</strong>
ArrayList<AnnotationInfo<Annotation>>();
-<a class="jxr_linenumber" name="L397" href="#L397">397</a>
-<a class="jxr_linenumber" name="L398" href="#L398">398</a>
ConstructorInfo ci = ConstructorInfo.of(forConstructor);
-<a class="jxr_linenumber" name="L399" href="#L399">399</a>
runtimeAnnotations.findMatching(forConstructor).forEach(a ->
list.add(AnnotationInfo.of(ci, a)));
-<a class="jxr_linenumber" name="L400" href="#L400">400</a>
list.addAll(ci.getDeclaredAnnotationInfos());
-<a class="jxr_linenumber" name="L401" href="#L401">401</a>
-<a class="jxr_linenumber" name="L402" href="#L402">402</a> <strong
class="jxr_keyword">return</strong> u(list);
-<a class="jxr_linenumber" name="L403" href="#L403">403</a> }
-<a class="jxr_linenumber" name="L404" href="#L404">404</a>
-<a class="jxr_linenumber" name="L405" href="#L405">405</a> <em
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L406" href="#L406">406</a> <em
class="jxr_javadoccomment"> * Finds all declared annotations on the
specified class and appends them to the list.</em>
-<a class="jxr_linenumber" name="L407" href="#L407">407</a> <em
class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L408" href="#L408">408</a> <em
class="jxr_javadoccomment"> * @param appendTo The list to append to.</em>
-<a class="jxr_linenumber" name="L409" href="#L409">409</a> <em
class="jxr_javadoccomment"> * @param forClass The class to find declared
annotations on.</em>
-<a class="jxr_linenumber" name="L410" href="#L410">410</a> <em
class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L411" href="#L411">411</a> <strong
class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong>
findDeclaredAnnotations(List<AnnotationInfo<Annotation>> appendTo,
Class<?> forClass) {
-<a class="jxr_linenumber" name="L412" href="#L412">412</a> <strong
class="jxr_keyword">var</strong> ci = ClassInfo.of(forClass);
-<a class="jxr_linenumber" name="L413" href="#L413">413</a>
runtimeAnnotations.findMatching(forClass).forEach(x ->
appendTo.add(AnnotationInfo.of(ClassInfo.of(forClass), x)));
-<a class="jxr_linenumber" name="L414" href="#L414">414</a> <strong
class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> a :
forClass.getDeclaredAnnotations())
-<a class="jxr_linenumber" name="L415" href="#L415">415</a>
<strong class="jxr_keyword">for</strong> (<strong
class="jxr_keyword">var</strong> a2 : splitRepeated(a))
-<a class="jxr_linenumber" name="L416" href="#L416">416</a>
appendTo.add(AnnotationInfo.of(ci, a2));
-<a class="jxr_linenumber" name="L417" href="#L417">417</a> }
+<a class="jxr_linenumber" name="L395" href="#L395">395</a> <em
class="jxr_comment">// On the package of this class</em>
+<a class="jxr_linenumber" name="L396" href="#L396">396</a> <strong
class="jxr_keyword">var</strong> pkg = ci.getPackage();
+<a class="jxr_linenumber" name="L397" href="#L397">397</a> <strong
class="jxr_keyword">if</strong> (nn(pkg)) {
+<a class="jxr_linenumber" name="L398" href="#L398">398</a>
<strong class="jxr_keyword">var</strong> pi = PackageInfo.of(pkg.<strong
class="jxr_keyword">inner</strong>());
+<a class="jxr_linenumber" name="L399" href="#L399">399</a>
<strong class="jxr_keyword">for</strong> (<strong
class="jxr_keyword">var</strong> a : pkg.<strong
class="jxr_keyword">inner</strong>().getAnnotations())
+<a class="jxr_linenumber" name="L400" href="#L400">400</a>
<strong class="jxr_keyword">for</strong> (<strong
class="jxr_keyword">var</strong> a2 : splitRepeated(a))
+<a class="jxr_linenumber" name="L401" href="#L401">401</a>
list.add(AnnotationInfo.of(pi, a2));
+<a class="jxr_linenumber" name="L402" href="#L402">402</a> }
+<a class="jxr_linenumber" name="L403" href="#L403">403</a>
+<a class="jxr_linenumber" name="L404" href="#L404">404</a> <strong
class="jxr_keyword">return</strong> u(list);
+<a class="jxr_linenumber" name="L405" href="#L405">405</a> }
+<a class="jxr_linenumber" name="L406" href="#L406">406</a>
+<a class="jxr_linenumber" name="L407" href="#L407">407</a> <strong
class="jxr_keyword">private</strong>
List<AnnotationInfo<Annotation>>
findClassDeclaredAnnotations(Class<?> forClass) {
+<a class="jxr_linenumber" name="L408" href="#L408">408</a> <strong
class="jxr_keyword">var</strong> list = <strong
class="jxr_keyword">new</strong>
ArrayList<AnnotationInfo<Annotation>>();
+<a class="jxr_linenumber" name="L409" href="#L409">409</a>
+<a class="jxr_linenumber" name="L410" href="#L410">410</a> <em
class="jxr_comment">// On this class</em>
+<a class="jxr_linenumber" name="L411" href="#L411">411</a>
findDeclaredAnnotations(list, forClass);
+<a class="jxr_linenumber" name="L412" href="#L412">412</a>
+<a class="jxr_linenumber" name="L413" href="#L413">413</a> <strong
class="jxr_keyword">return</strong> u(list);
+<a class="jxr_linenumber" name="L414" href="#L414">414</a> }
+<a class="jxr_linenumber" name="L415" href="#L415">415</a>
+<a class="jxr_linenumber" name="L416" href="#L416">416</a> <strong
class="jxr_keyword">private</strong>
List<AnnotationInfo<Annotation>> findMethodAnnotations(Method
forMethod) {
+<a class="jxr_linenumber" name="L417" href="#L417">417</a> <strong
class="jxr_keyword">var</strong> list = <strong
class="jxr_keyword">new</strong>
ArrayList<AnnotationInfo<Annotation>>();
<a class="jxr_linenumber" name="L418" href="#L418">418</a>
-<a class="jxr_linenumber" name="L419" href="#L419">419</a> <em
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L420" href="#L420">420</a> <em
class="jxr_javadoccomment"> * Finds all annotations on the specified
package and appends them to the list.</em>
-<a class="jxr_linenumber" name="L421" href="#L421">421</a> <em
class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L422" href="#L422">422</a> <em
class="jxr_javadoccomment"> * @param appendTo The list to append to.</em>
-<a class="jxr_linenumber" name="L423" href="#L423">423</a> <em
class="jxr_javadoccomment"> * @param forPackage The package to find
annotations on.</em>
-<a class="jxr_linenumber" name="L424" href="#L424">424</a> <em
class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L425" href="#L425">425</a> <strong
class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong>
findDeclaredAnnotations(List<AnnotationInfo<Annotation>> appendTo,
Package forPackage) {
-<a class="jxr_linenumber" name="L426" href="#L426">426</a> <strong
class="jxr_keyword">var</strong> pi = PackageInfo.of(forPackage);
-<a class="jxr_linenumber" name="L427" href="#L427">427</a> <strong
class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> a :
forPackage.getAnnotations())
-<a class="jxr_linenumber" name="L428" href="#L428">428</a>
<strong class="jxr_keyword">for</strong> (<strong
class="jxr_keyword">var</strong> a2 : splitRepeated(a))
-<a class="jxr_linenumber" name="L429" href="#L429">429</a>
appendTo.add(AnnotationInfo.of(pi, a2));
-<a class="jxr_linenumber" name="L430" href="#L430">430</a> }
-<a class="jxr_linenumber" name="L431" href="#L431">431</a> }
+<a class="jxr_linenumber" name="L419" href="#L419">419</a>
MethodInfo.of(forMethod).getMatchingMethods().forEach(m -> {
+<a class="jxr_linenumber" name="L420" href="#L420">420</a>
runtimeAnnotations.findMatching(m.<strong
class="jxr_keyword">inner</strong>()).forEach(a ->
list.add(AnnotationInfo.of(m, a)));
+<a class="jxr_linenumber" name="L421" href="#L421">421</a>
list.addAll(m.getDeclaredAnnotationInfos());
+<a class="jxr_linenumber" name="L422" href="#L422">422</a> });
+<a class="jxr_linenumber" name="L423" href="#L423">423</a>
+<a class="jxr_linenumber" name="L424" href="#L424">424</a> <strong
class="jxr_keyword">return</strong> u(list);
+<a class="jxr_linenumber" name="L425" href="#L425">425</a> }
+<a class="jxr_linenumber" name="L426" href="#L426">426</a>
+<a class="jxr_linenumber" name="L427" href="#L427">427</a> <strong
class="jxr_keyword">private</strong>
List<AnnotationInfo<Annotation>> findFieldAnnotations(Field
forField) {
+<a class="jxr_linenumber" name="L428" href="#L428">428</a> <strong
class="jxr_keyword">var</strong> list = <strong
class="jxr_keyword">new</strong>
ArrayList<AnnotationInfo<Annotation>>();
+<a class="jxr_linenumber" name="L429" href="#L429">429</a>
+<a class="jxr_linenumber" name="L430" href="#L430">430</a>
FieldInfo fi = FieldInfo.of(forField);
+<a class="jxr_linenumber" name="L431" href="#L431">431</a>
runtimeAnnotations.findMatching(forField).forEach(a ->
list.add(AnnotationInfo.of(fi, a)));
+<a class="jxr_linenumber" name="L432" href="#L432">432</a>
list.addAll(fi.getAnnotationInfos());
+<a class="jxr_linenumber" name="L433" href="#L433">433</a>
+<a class="jxr_linenumber" name="L434" href="#L434">434</a> <strong
class="jxr_keyword">return</strong> u(list);
+<a class="jxr_linenumber" name="L435" href="#L435">435</a> }
+<a class="jxr_linenumber" name="L436" href="#L436">436</a>
+<a class="jxr_linenumber" name="L437" href="#L437">437</a> <strong
class="jxr_keyword">private</strong>
List<AnnotationInfo<Annotation>>
findConstructorAnnotations(Constructor<?> forConstructor) {
+<a class="jxr_linenumber" name="L438" href="#L438">438</a> <strong
class="jxr_keyword">var</strong> list = <strong
class="jxr_keyword">new</strong>
ArrayList<AnnotationInfo<Annotation>>();
+<a class="jxr_linenumber" name="L439" href="#L439">439</a>
+<a class="jxr_linenumber" name="L440" href="#L440">440</a>
ConstructorInfo ci = ConstructorInfo.of(forConstructor);
+<a class="jxr_linenumber" name="L441" href="#L441">441</a>
runtimeAnnotations.findMatching(forConstructor).forEach(a ->
list.add(AnnotationInfo.of(ci, a)));
+<a class="jxr_linenumber" name="L442" href="#L442">442</a>
list.addAll(ci.getDeclaredAnnotationInfos());
+<a class="jxr_linenumber" name="L443" href="#L443">443</a>
+<a class="jxr_linenumber" name="L444" href="#L444">444</a> <strong
class="jxr_keyword">return</strong> u(list);
+<a class="jxr_linenumber" name="L445" href="#L445">445</a> }
+<a class="jxr_linenumber" name="L446" href="#L446">446</a>
+<a class="jxr_linenumber" name="L447" href="#L447">447</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L448" href="#L448">448</a> <em
class="jxr_javadoccomment"> * Finds all declared annotations on the
specified class and appends them to the list.</em>
+<a class="jxr_linenumber" name="L449" href="#L449">449</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L450" href="#L450">450</a> <em
class="jxr_javadoccomment"> * @param appendTo The list to append to.</em>
+<a class="jxr_linenumber" name="L451" href="#L451">451</a> <em
class="jxr_javadoccomment"> * @param forClass The class to find declared
annotations on.</em>
+<a class="jxr_linenumber" name="L452" href="#L452">452</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L453" href="#L453">453</a> <strong
class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong>
findDeclaredAnnotations(List<AnnotationInfo<Annotation>> appendTo,
Class<?> forClass) {
+<a class="jxr_linenumber" name="L454" href="#L454">454</a> <strong
class="jxr_keyword">var</strong> ci = ClassInfo.of(forClass);
+<a class="jxr_linenumber" name="L455" href="#L455">455</a>
runtimeAnnotations.findMatching(forClass).forEach(x ->
appendTo.add(AnnotationInfo.of(ClassInfo.of(forClass), x)));
+<a class="jxr_linenumber" name="L456" href="#L456">456</a> <strong
class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> a :
forClass.getDeclaredAnnotations())
+<a class="jxr_linenumber" name="L457" href="#L457">457</a>
<strong class="jxr_keyword">for</strong> (<strong
class="jxr_keyword">var</strong> a2 : splitRepeated(a))
+<a class="jxr_linenumber" name="L458" href="#L458">458</a>
appendTo.add(AnnotationInfo.of(ci, a2));
+<a class="jxr_linenumber" name="L459" href="#L459">459</a> }
+<a class="jxr_linenumber" name="L460" href="#L460">460</a>
+<a class="jxr_linenumber" name="L461" href="#L461">461</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L462" href="#L462">462</a> <em
class="jxr_javadoccomment"> * Finds all annotations on the specified
package and appends them to the list.</em>
+<a class="jxr_linenumber" name="L463" href="#L463">463</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L464" href="#L464">464</a> <em
class="jxr_javadoccomment"> * @param appendTo The list to append to.</em>
+<a class="jxr_linenumber" name="L465" href="#L465">465</a> <em
class="jxr_javadoccomment"> * @param forPackage The package to find
annotations on.</em>
+<a class="jxr_linenumber" name="L466" href="#L466">466</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L467" href="#L467">467</a> <strong
class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong>
findDeclaredAnnotations(List<AnnotationInfo<Annotation>> appendTo,
Package forPackage) {
+<a class="jxr_linenumber" name="L468" href="#L468">468</a> <strong
class="jxr_keyword">var</strong> pi = PackageInfo.of(forPackage);
+<a class="jxr_linenumber" name="L469" href="#L469">469</a> <strong
class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> a :
forPackage.getAnnotations())
+<a class="jxr_linenumber" name="L470" href="#L470">470</a>
<strong class="jxr_keyword">for</strong> (<strong
class="jxr_keyword">var</strong> a2 : splitRepeated(a))
+<a class="jxr_linenumber" name="L471" href="#L471">471</a>
appendTo.add(AnnotationInfo.of(pi, a2));
+<a class="jxr_linenumber" name="L472" href="#L472">472</a> }
+<a class="jxr_linenumber" name="L473" href="#L473">473</a> }
</pre>
<hr/>
<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache
Software Foundation</a></div>
diff --git a/site/xref/org/apache/juneau/common/utils/PredicateUtils.html
b/site/xref/org/apache/juneau/common/utils/PredicateUtils.html
index 68cacae71d..75f0a55728 100644
--- a/site/xref/org/apache/juneau/common/utils/PredicateUtils.html
+++ b/site/xref/org/apache/juneau/common/utils/PredicateUtils.html
@@ -132,7 +132,57 @@
<a class="jxr_linenumber" name="L124" href="#L124">124</a> <strong
class="jxr_keyword">if</strong> (test(predicate, value))
<a class="jxr_linenumber" name="L125" href="#L125">125</a>
consumer.accept(value);
<a class="jxr_linenumber" name="L126" href="#L126">126</a> }
-<a class="jxr_linenumber" name="L127" href="#L127">127</a> }
+<a class="jxr_linenumber" name="L127" href="#L127">127</a>
+<a class="jxr_linenumber" name="L128" href="#L128">128</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L129" href="#L129">129</a> <em
class="jxr_javadoccomment"> * Returns a function that prints the input
value to stderr and returns it unchanged.</em>
+<a class="jxr_linenumber" name="L130" href="#L130">130</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L131" href="#L131">131</a> <em
class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L132" href="#L132">132</a> <em
class="jxr_javadoccomment"> * Useful for debugging streams by inserting
into a stream pipeline with {@code .map(peek())}.</em>
+<a class="jxr_linenumber" name="L133" href="#L133">133</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L134" href="#L134">134</a> <em
class="jxr_javadoccomment"> * <h5
class='section'>Example:</h5></em>
+<a class="jxr_linenumber" name="L135" href="#L135">135</a> <em
class="jxr_javadoccomment"> * <p class='bjava'></em>
+<a class="jxr_linenumber" name="L136" href="#L136">136</a> <em
class="jxr_javadoccomment"> * list.stream()</em>
+<a class="jxr_linenumber" name="L137" href="#L137">137</a> <em
class="jxr_javadoccomment"> * .map(peek())</em>
+<a class="jxr_linenumber" name="L138" href="#L138">138</a> <em
class="jxr_javadoccomment"> * .filter(x -&gt; x !=
<jk>null</jk>)</em>
+<a class="jxr_linenumber" name="L139" href="#L139">139</a> <em
class="jxr_javadoccomment"> *
.collect(Collectors.toList());</em>
+<a class="jxr_linenumber" name="L140" href="#L140">140</a> <em
class="jxr_javadoccomment"> * </p></em>
+<a class="jxr_linenumber" name="L141" href="#L141">141</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L142" href="#L142">142</a> <em
class="jxr_javadoccomment"> * @param <T> The type of value.</em>
+<a class="jxr_linenumber" name="L143" href="#L143">143</a> <em
class="jxr_javadoccomment"> * @return A function that prints and returns
the value.</em>
+<a class="jxr_linenumber" name="L144" href="#L144">144</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L145" href="#L145">145</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong>
<T> Function<T,T> peek() {
+<a class="jxr_linenumber" name="L146" href="#L146">146</a> <strong
class="jxr_keyword">return</strong> v -> {
+<a class="jxr_linenumber" name="L147" href="#L147">147</a>
System.err.println(v);
+<a class="jxr_linenumber" name="L148" href="#L148">148</a>
<strong class="jxr_keyword">return</strong> v;
+<a class="jxr_linenumber" name="L149" href="#L149">149</a> };
+<a class="jxr_linenumber" name="L150" href="#L150">150</a> }
+<a class="jxr_linenumber" name="L151" href="#L151">151</a>
+<a class="jxr_linenumber" name="L152" href="#L152">152</a> <em
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L153" href="#L153">153</a> <em
class="jxr_javadoccomment"> * Returns a function that prints the input
value to stderr using a custom formatter and returns it unchanged.</em>
+<a class="jxr_linenumber" name="L154" href="#L154">154</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L155" href="#L155">155</a> <em
class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L156" href="#L156">156</a> <em
class="jxr_javadoccomment"> * Useful for debugging streams by inserting
into a stream pipeline with {@code .map(peek(...))}.</em>
+<a class="jxr_linenumber" name="L157" href="#L157">157</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L158" href="#L158">158</a> <em
class="jxr_javadoccomment"> * <h5
class='section'>Example:</h5></em>
+<a class="jxr_linenumber" name="L159" href="#L159">159</a> <em
class="jxr_javadoccomment"> * <p class='bjava'></em>
+<a class="jxr_linenumber" name="L160" href="#L160">160</a> <em
class="jxr_javadoccomment"> * list.stream()</em>
+<a class="jxr_linenumber" name="L161" href="#L161">161</a> <em
class="jxr_javadoccomment"> *
.map(peek(<js>"Processing: {0}"</js>, x -&gt; x.getName()))</em>
+<a class="jxr_linenumber" name="L162" href="#L162">162</a> <em
class="jxr_javadoccomment"> * .filter(x -&gt; x !=
<jk>null</jk>)</em>
+<a class="jxr_linenumber" name="L163" href="#L163">163</a> <em
class="jxr_javadoccomment"> *
.collect(Collectors.toList());</em>
+<a class="jxr_linenumber" name="L164" href="#L164">164</a> <em
class="jxr_javadoccomment"> * </p></em>
+<a class="jxr_linenumber" name="L165" href="#L165">165</a> <em
class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L166" href="#L166">166</a> <em
class="jxr_javadoccomment"> * @param <T> The type of value.</em>
+<a class="jxr_linenumber" name="L167" href="#L167">167</a> <em
class="jxr_javadoccomment"> * @param message A format string using {@code
{0}} as placeholder for the formatted value.</em>
+<a class="jxr_linenumber" name="L168" href="#L168">168</a> <em
class="jxr_javadoccomment"> * @param formatter A function to
extract/format the value for display.</em>
+<a class="jxr_linenumber" name="L169" href="#L169">169</a> <em
class="jxr_javadoccomment"> * @return A function that prints and returns
the value.</em>
+<a class="jxr_linenumber" name="L170" href="#L170">170</a> <em
class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L171" href="#L171">171</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong>
<T> Function<T,T> peek(String message, Function<T,?>
formatter) {
+<a class="jxr_linenumber" name="L172" href="#L172">172</a> <strong
class="jxr_keyword">return</strong> v -> {
+<a class="jxr_linenumber" name="L173" href="#L173">173</a>
System.err.println(message.replace(<span class="jxr_string">"{0}"</span>,
String.valueOf(formatter.apply(v))));
+<a class="jxr_linenumber" name="L174" href="#L174">174</a>
<strong class="jxr_keyword">return</strong> v;
+<a class="jxr_linenumber" name="L175" href="#L175">175</a> };
+<a class="jxr_linenumber" name="L176" href="#L176">176</a> }
+<a class="jxr_linenumber" name="L177" href="#L177">177</a> }
</pre>
<hr/>
<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache
Software Foundation</a></div>