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 ebf5ba2c81 Deploy documentation staging from 
429ce6ddf7f15ae0f6ebd4fd4f9a582aa07916b2 
429ce6ddf7f15ae0f6ebd4fd4f9a582aa07916b2
ebf5ba2c81 is described below

commit ebf5ba2c81647ddf104250bbbeab9e7cafdaebda
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Dec 8 18:59:23 2025 +0000

    Deploy documentation staging from 429ce6ddf7f15ae0f6ebd4fd4f9a582aa07916b2 
429ce6ddf7f15ae0f6ebd4fd4f9a582aa07916b2
---
 site/xref/org/apache/juneau/ClassMeta.html | 939 +++++++++++++++--------------
 1 file changed, 470 insertions(+), 469 deletions(-)

diff --git a/site/xref/org/apache/juneau/ClassMeta.html 
b/site/xref/org/apache/juneau/ClassMeta.html
index 102a75a553..45caa52391 100644
--- a/site/xref/org/apache/juneau/ClassMeta.html
+++ b/site/xref/org/apache/juneau/ClassMeta.html
@@ -162,7 +162,7 @@
 <a class="jxr_linenumber" name="L154" href="#L154">154</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
Map&lt;Class&lt;?&gt;,Mutater&lt;?,T&gt;&gt; fromMutaters = <strong 
class="jxr_keyword">new</strong> ConcurrentHashMap&lt;&gt;();
 <a class="jxr_linenumber" name="L155" href="#L155">155</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
OptionalSupplier&lt;MethodInfo&gt; fromStringMethod;               <em 
class="jxr_comment">// Static fromString(String) or equivalent method</em>
 <a class="jxr_linenumber" name="L156" href="#L156">156</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
OptionalSupplier&lt;ClassInfoTyped&lt;? <strong 
class="jxr_keyword">extends</strong> T&gt;&gt; implClass;     <em 
class="jxr_comment">// The implementation class to use if this is an 
interface.</em>
-<a class="jxr_linenumber" name="L157" href="#L157">157</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
Supplier&lt;Tuple2&lt;ClassMeta&lt;?&gt;,ClassMeta&lt;?&gt;&gt;&gt; 
keyValueTypes;   <em class="jxr_comment">// Key and value types for MAP 
types.</em>
+<a class="jxr_linenumber" name="L157" href="#L157">157</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
Supplier&lt;KeyValueTypes&gt; keyValueTypes;                        <em 
class="jxr_comment">// Key and value types for MAP types.</em>
 <a class="jxr_linenumber" name="L158" href="#L158">158</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
<a name="SimpleReadWriteLock" 
href="../../../org/apache/juneau/commons/utils/SimpleReadWriteLock.html#SimpleReadWriteLock">SimpleReadWriteLock</a>
 lock = <strong class="jxr_keyword">new</strong> <a name="SimpleReadWriteLock" 
href="../../../org/apache/juneau/commons/utils/SimpleReadWriteLock.html#SimpleReadWriteLock">SimpleReadWriteLock</a>(false);
 <a class="jxr_linenumber" name="L159" href="#L159">159</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
OptionalSupplier&lt;MarshalledFilter&gt; marshalledFilter;
 <a class="jxr_linenumber" name="L160" href="#L160">160</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
Supplier&lt;Property&lt;T,Object&gt;&gt; nameProperty;                   <em 
class="jxr_comment">// The method to set the name on an object (if it has 
one).</em>
@@ -173,16 +173,16 @@
 <a class="jxr_linenumber" name="L165" href="#L165">165</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
OptionalSupplier&lt;ConstructorInfo&gt; stringConstructor;         <em 
class="jxr_comment">// The X(String) constructor (if it has one).</em>
 <a class="jxr_linenumber" name="L166" href="#L166">166</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
Supplier&lt;List&lt;ObjectSwap&lt;T,?&gt;&gt;&gt; swaps;                       
<em class="jxr_comment">// The object POJO swaps associated with this bean (if 
it has any).</em>
 <a class="jxr_linenumber" name="L167" href="#L167">167</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
Map&lt;Class&lt;?&gt;,Mutater&lt;T,?&gt;&gt; toMutaters = <strong 
class="jxr_keyword">new</strong> ConcurrentHashMap&lt;&gt;();
-<a class="jxr_linenumber" name="L168" href="#L168">168</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
OptionalSupplier&lt;Tuple2&lt;BeanMeta&lt;T&gt;,String&gt;&gt; beanMeta;
+<a class="jxr_linenumber" name="L168" href="#L168">168</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
OptionalSupplier&lt;BeanMetaValue&lt;T&gt;&gt; beanMeta;
 <a class="jxr_linenumber" name="L169" href="#L169">169</a> 
 <a class="jxr_linenumber" name="L170" href="#L170">170</a>     record 
KeyValueTypes(ClassMeta&lt;?&gt; keyType, ClassMeta&lt;?&gt; valueType) {
 <a class="jxr_linenumber" name="L171" href="#L171">171</a>             
Optional&lt;ClassMeta&lt;?&gt;&gt; optKeyType() { <strong 
class="jxr_keyword">return</strong> opt(keyType()); }
-<a class="jxr_linenumber" name="L172" href="#L172">172</a>             
Optional&lt;ClassMeta&lt;?&gt;&gt; optValueType() { <strong 
class="jxr_keyword">return</strong> Optional.of(valueType()); }
+<a class="jxr_linenumber" name="L172" href="#L172">172</a>             
Optional&lt;ClassMeta&lt;?&gt;&gt; optValueType() { <strong 
class="jxr_keyword">return</strong> opt(valueType()); }
 <a class="jxr_linenumber" name="L173" href="#L173">173</a>     }
 <a class="jxr_linenumber" name="L174" href="#L174">174</a> 
 <a class="jxr_linenumber" name="L175" href="#L175">175</a>     record 
BeanMetaValue&lt;T&gt;(BeanMeta&lt;T&gt; beanMeta, String notABeanReason) {
-<a class="jxr_linenumber" name="L176" href="#L176">176</a>             <strong 
class="jxr_keyword">public</strong> Optional&lt;BeanMeta&lt;T&gt;&gt; 
optBeanMeta() { <strong class="jxr_keyword">return</strong> opt(beanMeta()); }
-<a class="jxr_linenumber" name="L177" href="#L177">177</a>             <strong 
class="jxr_keyword">public</strong> Optional&lt;String&gt; optNotABeanReason() 
{ <strong class="jxr_keyword">return</strong> opt(notABeanReason()); }
+<a class="jxr_linenumber" name="L176" href="#L176">176</a>             
Optional&lt;BeanMeta&lt;T&gt;&gt; optBeanMeta() { <strong 
class="jxr_keyword">return</strong> opt(beanMeta()); }
+<a class="jxr_linenumber" name="L177" href="#L177">177</a>             
Optional&lt;String&gt; optNotABeanReason() { <strong 
class="jxr_keyword">return</strong> opt(notABeanReason()); }
 <a class="jxr_linenumber" name="L178" href="#L178">178</a>     }
 <a class="jxr_linenumber" name="L179" href="#L179">179</a> 
 <a class="jxr_linenumber" name="L180" href="#L180">180</a>     <em 
class="jxr_javadoccomment">/**</em>
@@ -339,7 +339,7 @@
 <a class="jxr_linenumber" name="L331" href="#L331">331</a>             <strong 
class="jxr_keyword">this</strong>.fromStringMethod = mainType.fromStringMethod;
 <a class="jxr_linenumber" name="L332" href="#L332">332</a>             <strong 
class="jxr_keyword">this</strong>.beanContext = mainType.beanContext;
 <a class="jxr_linenumber" name="L333" href="#L333">333</a>             <strong 
class="jxr_keyword">this</strong>.elementType = elementType != <strong 
class="jxr_keyword">null</strong> ? memoize(()-&gt;elementType) : 
mainType.elementType;
-<a class="jxr_linenumber" name="L334" href="#L334">334</a>             <strong 
class="jxr_keyword">this</strong>.keyValueTypes = (keyType != <strong 
class="jxr_keyword">null</strong> || valueType != <strong 
class="jxr_keyword">null</strong>) ? memoize(()-&gt;Tuple2.of(keyType, 
valueType)) : mainType.keyValueTypes;
+<a class="jxr_linenumber" name="L334" href="#L334">334</a>             <strong 
class="jxr_keyword">this</strong>.keyValueTypes = (keyType != <strong 
class="jxr_keyword">null</strong> || valueType != <strong 
class="jxr_keyword">null</strong>) ? memoize(()-&gt;<strong 
class="jxr_keyword">new</strong> KeyValueTypes(keyType, valueType)) : 
mainType.keyValueTypes;
 <a class="jxr_linenumber" name="L335" href="#L335">335</a>             <strong 
class="jxr_keyword">this</strong>.beanMeta = mainType.beanMeta;
 <a class="jxr_linenumber" name="L336" href="#L336">336</a>             <strong 
class="jxr_keyword">this</strong>.swaps = mainType.swaps;
 <a class="jxr_linenumber" name="L337" href="#L337">337</a>             <strong 
class="jxr_keyword">this</strong>.exampleMethod = mainType.exampleMethod;
@@ -483,7 +483,7 @@
 <a class="jxr_linenumber" name="L475" href="#L475">475</a> <em 
class="jxr_javadoccomment">      *      this class.</em>
 <a class="jxr_linenumber" name="L476" href="#L476">476</a> <em 
class="jxr_javadoccomment">      */</em>
 <a class="jxr_linenumber" name="L477" href="#L477">477</a>     <strong 
class="jxr_keyword">public</strong> BeanMeta&lt;T&gt; getBeanMeta() {
-<a class="jxr_linenumber" name="L478" href="#L478">478</a>             <strong 
class="jxr_keyword">return</strong> beanMeta.get().getA();
+<a class="jxr_linenumber" name="L478" href="#L478">478</a>             <strong 
class="jxr_keyword">return</strong> beanMeta.get().beanMeta();
 <a class="jxr_linenumber" name="L479" href="#L479">479</a>     }
 <a class="jxr_linenumber" name="L480" href="#L480">480</a> 
 <a class="jxr_linenumber" name="L481" href="#L481">481</a>     <em 
class="jxr_javadoccomment">/**</em>
@@ -633,7 +633,7 @@
 <a class="jxr_linenumber" name="L625" href="#L625">625</a> <em 
class="jxr_javadoccomment">      * @return The key class type, or 
&lt;jk&gt;null&lt;/jk&gt; if this class is not a Map.</em>
 <a class="jxr_linenumber" name="L626" href="#L626">626</a> <em 
class="jxr_javadoccomment">      */</em>
 <a class="jxr_linenumber" name="L627" href="#L627">627</a>     <strong 
class="jxr_keyword">public</strong> ClassMeta&lt;?&gt; getKeyType() {
-<a class="jxr_linenumber" name="L628" href="#L628">628</a>             <strong 
class="jxr_keyword">return</strong> keyValueTypes.get().getA();
+<a class="jxr_linenumber" name="L628" href="#L628">628</a>             <strong 
class="jxr_keyword">return</strong> keyValueTypes.get().keyType();
 <a class="jxr_linenumber" name="L629" href="#L629">629</a>     }
 <a class="jxr_linenumber" name="L630" href="#L630">630</a> 
 <a class="jxr_linenumber" name="L631" href="#L631">631</a>     <em 
class="jxr_javadoccomment">/**</em>
@@ -651,7 +651,7 @@
 <a class="jxr_linenumber" name="L643" href="#L643">643</a> <em 
class="jxr_javadoccomment">      * @return The reason why this class is not a 
bean, or &lt;jk&gt;null&lt;/jk&gt; if it is a bean.</em>
 <a class="jxr_linenumber" name="L644" href="#L644">644</a> <em 
class="jxr_javadoccomment">      */</em>
 <a class="jxr_linenumber" name="L645" href="#L645">645</a>     <strong 
class="jxr_keyword">public</strong> <strong 
class="jxr_keyword">synchronized</strong> String getNotABeanReason() {
-<a class="jxr_linenumber" name="L646" href="#L646">646</a>             <strong 
class="jxr_keyword">return</strong> beanMeta.get().getB();
+<a class="jxr_linenumber" name="L646" href="#L646">646</a>             <strong 
class="jxr_keyword">return</strong> beanMeta.get().notABeanReason();
 <a class="jxr_linenumber" name="L647" href="#L647">647</a>     }
 <a class="jxr_linenumber" name="L648" href="#L648">648</a> 
 <a class="jxr_linenumber" name="L649" href="#L649">649</a>     <em 
class="jxr_javadoccomment">/**</em>
@@ -820,7 +820,7 @@
 <a class="jxr_linenumber" name="L812" href="#L812">812</a> <em 
class="jxr_javadoccomment">      * @return The value class type, or 
&lt;jk&gt;null&lt;/jk&gt; if this class is not a Map.</em>
 <a class="jxr_linenumber" name="L813" href="#L813">813</a> <em 
class="jxr_javadoccomment">      */</em>
 <a class="jxr_linenumber" name="L814" href="#L814">814</a>     <strong 
class="jxr_keyword">public</strong> ClassMeta&lt;?&gt; getValueType() {
-<a class="jxr_linenumber" name="L815" href="#L815">815</a>             <strong 
class="jxr_keyword">return</strong> keyValueTypes.get().getB();
+<a class="jxr_linenumber" name="L815" href="#L815">815</a>             <strong 
class="jxr_keyword">return</strong> keyValueTypes.get().valueType();
 <a class="jxr_linenumber" name="L816" href="#L816">816</a>     }
 <a class="jxr_linenumber" name="L817" href="#L817">817</a> 
 <a class="jxr_linenumber" name="L818" href="#L818">818</a>     <em 
class="jxr_javadoccomment">/**</em>
@@ -1342,466 +1342,467 @@
 <a class="jxr_linenumber" name="L1334" href="#L1334">1334</a>          <strong 
class="jxr_keyword">return</strong> BeanFilter.create(<strong 
class="jxr_keyword">inner</strong>()).applyAnnotations(reverse(l.stream().map(AnnotationInfo::<strong
 class="jxr_keyword">inner</strong>).toList())).build();
 <a class="jxr_linenumber" name="L1335" href="#L1335">1335</a>  }
 <a class="jxr_linenumber" name="L1336" href="#L1336">1336</a> 
-<a class="jxr_linenumber" name="L1337" href="#L1337">1337</a>  <strong 
class="jxr_keyword">private</strong> Tuple2&lt;BeanMeta&lt;T&gt;,String&gt; 
findBeanMeta() {
+<a class="jxr_linenumber" name="L1337" href="#L1337">1337</a>  <strong 
class="jxr_keyword">private</strong> BeanMetaValue&lt;T&gt; findBeanMeta() {
 <a class="jxr_linenumber" name="L1338" href="#L1338">1338</a>          <strong 
class="jxr_keyword">if</strong> (! cat.isUnknown())
-<a class="jxr_linenumber" name="L1339" href="#L1339">1339</a>                  
<strong class="jxr_keyword">return</strong> Tuple2.of(<strong 
class="jxr_keyword">null</strong>, <span class="jxr_string">"Known non-bean 
type"</span>);
-<a class="jxr_linenumber" name="L1340" href="#L1340">1340</a>          <strong 
class="jxr_keyword">return</strong> BeanMeta.create(<strong 
class="jxr_keyword">this</strong>, beanFilter.get(), <strong 
class="jxr_keyword">null</strong>, implClass.map(x -&gt; 
x.getPublicConstructor(x2 -&gt; x2.hasNumParameters(0)).orElse(<strong 
class="jxr_keyword">null</strong>)).orElse(<strong 
class="jxr_keyword">null</strong>));
-<a class="jxr_linenumber" name="L1341" href="#L1341">1341</a>  }
-<a class="jxr_linenumber" name="L1342" href="#L1342">1342</a> 
-<a class="jxr_linenumber" name="L1343" href="#L1343">1343</a>  <strong 
class="jxr_keyword">private</strong> 
Tuple2&lt;ClassMeta&lt;?&gt;,ClassMeta&lt;?&gt;&gt; findKeyValueTypes() {
-<a class="jxr_linenumber" name="L1344" href="#L1344">1344</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(MAP) &amp;&amp; ! cat.is(BEANMAP)) {
-<a class="jxr_linenumber" name="L1345" href="#L1345">1345</a>                  
<em class="jxr_comment">// If this is a MAP, see if it's parameterized (e.g. 
AddressBook extends HashMap&lt;String,Person&gt;)</em>
-<a class="jxr_linenumber" name="L1346" href="#L1346">1346</a>                  
<strong class="jxr_keyword">var</strong> parameters = 
beanContext.findParameters(<strong class="jxr_keyword">inner</strong>(), 
<strong class="jxr_keyword">inner</strong>());
-<a class="jxr_linenumber" name="L1347" href="#L1347">1347</a>                  
<strong class="jxr_keyword">if</strong> (nn(parameters) &amp;&amp; 
parameters.length == 2) {
-<a class="jxr_linenumber" name="L1348" href="#L1348">1348</a>                  
        <strong class="jxr_keyword">return</strong> Tuple2.of(parameters[0], 
parameters[1]);
-<a class="jxr_linenumber" name="L1349" href="#L1349">1349</a>                  
}
-<a class="jxr_linenumber" name="L1350" href="#L1350">1350</a>                  
<strong class="jxr_keyword">return</strong> 
Tuple2.of(beanContext.getClassMeta(Object.<strong 
class="jxr_keyword">class</strong>), beanContext.getClassMeta(Object.<strong 
class="jxr_keyword">class</strong>));
-<a class="jxr_linenumber" name="L1351" href="#L1351">1351</a>          }
-<a class="jxr_linenumber" name="L1352" href="#L1352">1352</a>          <strong 
class="jxr_keyword">return</strong> Tuple2.of(<strong 
class="jxr_keyword">null</strong>,<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1353" href="#L1353">1353</a>  }
-<a class="jxr_linenumber" name="L1354" href="#L1354">1354</a> 
-<a class="jxr_linenumber" name="L1355" href="#L1355">1355</a>  <strong 
class="jxr_keyword">private</strong> ClassMeta&lt;?&gt; findElementType() {
-<a class="jxr_linenumber" name="L1356" href="#L1356">1356</a>          <strong 
class="jxr_keyword">if</strong> (beanContext == <strong 
class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L1357" href="#L1357">1357</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1358" href="#L1358">1358</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(ARRAY)) {
-<a class="jxr_linenumber" name="L1359" href="#L1359">1359</a>                  
<strong class="jxr_keyword">return</strong> beanContext.getClassMeta(<strong 
class="jxr_keyword">inner</strong>().getComponentType(), false);
-<a class="jxr_linenumber" name="L1360" href="#L1360">1360</a>          } 
<strong class="jxr_keyword">else</strong> <strong 
class="jxr_keyword">if</strong> (cat.is(COLLECTION) || is(Optional.<strong 
class="jxr_keyword">class</strong>)) {
-<a class="jxr_linenumber" name="L1361" href="#L1361">1361</a>                  
<em class="jxr_comment">// If this is a COLLECTION, see if it's parameterized 
(e.g. AddressBook extends LinkedList&lt;Person&gt;)</em>
-<a class="jxr_linenumber" name="L1362" href="#L1362">1362</a>                  
<strong class="jxr_keyword">var</strong> parameters = 
beanContext.findParameters(<strong class="jxr_keyword">inner</strong>(), 
<strong class="jxr_keyword">inner</strong>());
-<a class="jxr_linenumber" name="L1363" href="#L1363">1363</a>                  
<strong class="jxr_keyword">if</strong> (nn(parameters) &amp;&amp; 
parameters.length == 1) {
-<a class="jxr_linenumber" name="L1364" href="#L1364">1364</a>                  
        <strong class="jxr_keyword">return</strong> parameters[0];
-<a class="jxr_linenumber" name="L1365" href="#L1365">1365</a>                  
}
-<a class="jxr_linenumber" name="L1366" href="#L1366">1366</a>                  
<strong class="jxr_keyword">return</strong> 
beanContext.getClassMeta(Object.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="L1367" href="#L1367">1367</a>          }
-<a class="jxr_linenumber" name="L1368" href="#L1368">1368</a>          <strong 
class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1369" href="#L1369">1369</a>  }
-<a class="jxr_linenumber" name="L1370" href="#L1370">1370</a> 
-<a class="jxr_linenumber" name="L1371" href="#L1371">1371</a>  
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="L1372" href="#L1372">1372</a>  <strong 
class="jxr_keyword">private</strong> BuilderSwap&lt;T,?&gt; findBuilderSwap() {
-<a class="jxr_linenumber" name="L1373" href="#L1373">1373</a>          <strong 
class="jxr_keyword">var</strong> bc = beanContext;
-<a class="jxr_linenumber" name="L1374" href="#L1374">1374</a>          <strong 
class="jxr_keyword">if</strong> (bc == <strong 
class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L1375" href="#L1375">1375</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1376" href="#L1376">1376</a>          <strong 
class="jxr_keyword">return</strong> 
(BuilderSwap&lt;T,?&gt;)BuilderSwap.findSwapFromObjectClass(bc, <strong 
class="jxr_keyword">inner</strong>(), bc.getBeanConstructorVisibility(), 
bc.getBeanMethodVisibility());
-<a class="jxr_linenumber" name="L1377" href="#L1377">1377</a>  }
-<a class="jxr_linenumber" name="L1378" href="#L1378">1378</a> 
-<a class="jxr_linenumber" name="L1379" href="#L1379">1379</a>  
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="L1380" href="#L1380">1380</a>  <strong 
class="jxr_keyword">private</strong> List&lt;ObjectSwap&lt;T,?&gt;&gt; 
findSwaps() {
-<a class="jxr_linenumber" name="L1381" href="#L1381">1381</a>          <strong 
class="jxr_keyword">if</strong> (beanContext == <strong 
class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L1382" href="#L1382">1382</a>                  
<strong class="jxr_keyword">return</strong> l();
-<a class="jxr_linenumber" name="L1383" href="#L1383">1383</a> 
-<a class="jxr_linenumber" name="L1384" href="#L1384">1384</a>          <strong 
class="jxr_keyword">var</strong> list = <strong 
class="jxr_keyword">new</strong> ArrayList&lt;ObjectSwap&lt;T,?&gt;&gt;();
-<a class="jxr_linenumber" name="L1385" href="#L1385">1385</a>          <strong 
class="jxr_keyword">var</strong> swapArray = beanContext.getSwaps();
-<a class="jxr_linenumber" name="L1386" href="#L1386">1386</a>          <strong 
class="jxr_keyword">if</strong> (swapArray != <strong 
class="jxr_keyword">null</strong> &amp;&amp; swapArray.length &gt; 0) {
-<a class="jxr_linenumber" name="L1387" href="#L1387">1387</a>                  
<strong class="jxr_keyword">var</strong> innerClass = <strong 
class="jxr_keyword">inner</strong>();
-<a class="jxr_linenumber" name="L1388" href="#L1388">1388</a>                  
<strong class="jxr_keyword">for</strong> (<strong 
class="jxr_keyword">var</strong> f : swapArray)
-<a class="jxr_linenumber" name="L1389" href="#L1389">1389</a>                  
        <strong class="jxr_keyword">if</strong> 
(f.getNormalClass().isParentOf(innerClass))
-<a class="jxr_linenumber" name="L1390" href="#L1390">1390</a>                  
                list.add((ObjectSwap&lt;T,?&gt;)f);
-<a class="jxr_linenumber" name="L1391" href="#L1391">1391</a>          }
-<a class="jxr_linenumber" name="L1392" href="#L1392">1392</a> 
-<a class="jxr_linenumber" name="L1393" href="#L1393">1393</a>          <strong 
class="jxr_keyword">var</strong> ap = beanContext.getAnnotationProvider();
-<a class="jxr_linenumber" name="L1394" href="#L1394">1394</a>          
ap.find(Swap.<strong class="jxr_keyword">class</strong>, <strong 
class="jxr_keyword">this</strong>).stream().map(AnnotationInfo::<strong 
class="jxr_keyword">inner</strong>).forEach(x -&gt; list.add(createSwap(x)));
-<a class="jxr_linenumber" name="L1395" href="#L1395">1395</a>          <strong 
class="jxr_keyword">var</strong> ds = DefaultSwaps.find(<strong 
class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="L1396" href="#L1396">1396</a>          <strong 
class="jxr_keyword">if</strong> (ds == <strong 
class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L1397" href="#L1397">1397</a>                  
ds = AutoObjectSwap.find(beanContext, <strong 
class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="L1398" href="#L1398">1398</a>          <strong 
class="jxr_keyword">if</strong> (ds == <strong 
class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L1399" href="#L1399">1399</a>                  
ds = AutoNumberSwap.find(beanContext, <strong 
class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="L1400" href="#L1400">1400</a>          <strong 
class="jxr_keyword">if</strong> (ds == <strong 
class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L1401" href="#L1401">1401</a>                  
ds = AutoMapSwap.find(beanContext, <strong class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="L1402" href="#L1402">1402</a>          <strong 
class="jxr_keyword">if</strong> (ds == <strong 
class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L1403" href="#L1403">1403</a>                  
ds = AutoListSwap.find(beanContext, <strong class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="L1404" href="#L1404">1404</a> 
-<a class="jxr_linenumber" name="L1405" href="#L1405">1405</a>          <strong 
class="jxr_keyword">if</strong> (nn(ds))
-<a class="jxr_linenumber" name="L1406" href="#L1406">1406</a>                  
list.add((ObjectSwap&lt;T,?&gt;)ds);
-<a class="jxr_linenumber" name="L1407" href="#L1407">1407</a> 
-<a class="jxr_linenumber" name="L1408" href="#L1408">1408</a>          <strong 
class="jxr_keyword">return</strong> u(list);
-<a class="jxr_linenumber" name="L1409" href="#L1409">1409</a>  }
-<a class="jxr_linenumber" name="L1410" href="#L1410">1410</a> 
-<a class="jxr_linenumber" name="L1411" href="#L1411">1411</a>  <strong 
class="jxr_keyword">private</strong> List&lt;ObjectSwap&lt;?,?&gt;&gt; 
findChildSwaps() {
-<a class="jxr_linenumber" name="L1412" href="#L1412">1412</a>          <strong 
class="jxr_keyword">if</strong> (beanContext == <strong 
class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L1413" href="#L1413">1413</a>                  
<strong class="jxr_keyword">return</strong> l();
-<a class="jxr_linenumber" name="L1414" href="#L1414">1414</a>          <strong 
class="jxr_keyword">var</strong> swapArray = beanContext.getSwaps();
-<a class="jxr_linenumber" name="L1415" href="#L1415">1415</a>          <strong 
class="jxr_keyword">if</strong> (swapArray == <strong 
class="jxr_keyword">null</strong> || swapArray.length == 0)
-<a class="jxr_linenumber" name="L1416" href="#L1416">1416</a>                  
<strong class="jxr_keyword">return</strong> l();
-<a class="jxr_linenumber" name="L1417" href="#L1417">1417</a>          <strong 
class="jxr_keyword">var</strong> list = <strong 
class="jxr_keyword">new</strong> ArrayList&lt;ObjectSwap&lt;?,?&gt;&gt;();
-<a class="jxr_linenumber" name="L1418" href="#L1418">1418</a>          <strong 
class="jxr_keyword">var</strong> innerClass = <strong 
class="jxr_keyword">inner</strong>();
-<a class="jxr_linenumber" name="L1419" href="#L1419">1419</a>          <strong 
class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> f : 
swapArray)
-<a class="jxr_linenumber" name="L1420" href="#L1420">1420</a>                  
<strong class="jxr_keyword">if</strong> 
(f.getNormalClass().isChildOf(innerClass))
-<a class="jxr_linenumber" name="L1421" href="#L1421">1421</a>                  
        list.add(f);
-<a class="jxr_linenumber" name="L1422" href="#L1422">1422</a>          <strong 
class="jxr_keyword">return</strong> u(list);
-<a class="jxr_linenumber" name="L1423" href="#L1423">1423</a>  }
-<a class="jxr_linenumber" name="L1424" href="#L1424">1424</a> 
-<a class="jxr_linenumber" name="L1425" href="#L1425">1425</a>  <strong 
class="jxr_keyword">private</strong> BidiMap&lt;Object,String&gt; 
findEnumValues() {
-<a class="jxr_linenumber" name="L1426" href="#L1426">1426</a>          <strong 
class="jxr_keyword">if</strong> (! isEnum())
-<a class="jxr_linenumber" name="L1427" href="#L1427">1427</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1428" href="#L1428">1428</a> 
-<a class="jxr_linenumber" name="L1429" href="#L1429">1429</a>          <strong 
class="jxr_keyword">var</strong> bc = beanContext;
-<a class="jxr_linenumber" name="L1430" href="#L1430">1430</a>          <strong 
class="jxr_keyword">var</strong> useEnumNames = nn(bc) &amp;&amp; 
bc.isUseEnumNames();
-<a class="jxr_linenumber" name="L1431" href="#L1431">1431</a> 
-<a class="jxr_linenumber" name="L1432" href="#L1432">1432</a>          <strong 
class="jxr_keyword">var</strong> m = 
BidiMap.&lt;Object,String&gt;create().unmodifiable();
-<a class="jxr_linenumber" name="L1433" href="#L1433">1433</a>          <strong 
class="jxr_keyword">var</strong> c = <strong 
class="jxr_keyword">inner</strong>().asSubclass(Enum.<strong 
class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="L1434" href="#L1434">1434</a>          
stream(c.getEnumConstants()).forEach(x -&gt; m.add(x, useEnumNames ? x.name() : 
x.toString()));
-<a class="jxr_linenumber" name="L1435" href="#L1435">1435</a>          <strong 
class="jxr_keyword">return</strong> m.build();
-<a class="jxr_linenumber" name="L1436" href="#L1436">1436</a>  }
-<a class="jxr_linenumber" name="L1437" href="#L1437">1437</a> 
-<a class="jxr_linenumber" name="L1438" href="#L1438">1438</a>  
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="L1439" href="#L1439">1439</a>  <strong 
class="jxr_keyword">private</strong> String findExample() {
-<a class="jxr_linenumber" name="L1440" href="#L1440">1440</a> 
-<a class="jxr_linenumber" name="L1441" href="#L1441">1441</a>          <strong 
class="jxr_keyword">var</strong> example = beanFilter.map(x -&gt; 
x.getExample()).orElse(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1442" href="#L1442">1442</a> 
-<a class="jxr_linenumber" name="L1443" href="#L1443">1443</a>          <strong 
class="jxr_keyword">if</strong> (example == <strong 
class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L1444" href="#L1444">1444</a>                  
example = marshalledFilter.map(x -&gt; x.getExample()).orElse(<strong 
class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1445" href="#L1445">1445</a> 
-<a class="jxr_linenumber" name="L1446" href="#L1446">1446</a>          <strong 
class="jxr_keyword">if</strong> (example == <strong 
class="jxr_keyword">null</strong> &amp;&amp; nn(beanContext))
-<a class="jxr_linenumber" name="L1447" href="#L1447">1447</a>                  
example = beanContext.getAnnotationProvider().find(Example.<strong 
class="jxr_keyword">class</strong>, <strong 
class="jxr_keyword">this</strong>).stream().map(x -&gt; x.<strong 
class="jxr_keyword">inner</strong>().value()).filter(Utils::isNotEmpty).findFirst().orElse(<strong
 class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1448" href="#L1448">1448</a> 
-<a class="jxr_linenumber" name="L1449" href="#L1449">1449</a>          <strong 
class="jxr_keyword">if</strong> (example == <strong 
class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L1450" href="#L1450">1450</a>                  
<strong class="jxr_keyword">if</strong> (isAny(<strong 
class="jxr_keyword">boolean</strong>.<strong 
class="jxr_keyword">class</strong>, Boolean.<strong 
class="jxr_keyword">class</strong>)) {
-<a class="jxr_linenumber" name="L1451" href="#L1451">1451</a>                  
        example = <span class="jxr_string">"true"</span>;
-<a class="jxr_linenumber" name="L1452" href="#L1452">1452</a>                  
} <strong class="jxr_keyword">else</strong> <strong 
class="jxr_keyword">if</strong> (isAny(<strong 
class="jxr_keyword">char</strong>.<strong class="jxr_keyword">class</strong>, 
Character.<strong class="jxr_keyword">class</strong>)) {
-<a class="jxr_linenumber" name="L1453" href="#L1453">1453</a>                  
        example = <span class="jxr_string">"a"</span>;
-<a class="jxr_linenumber" name="L1454" href="#L1454">1454</a>                  
} <strong class="jxr_keyword">else</strong> <strong 
class="jxr_keyword">if</strong> (cat.is(CHARSEQ)) {
-<a class="jxr_linenumber" name="L1455" href="#L1455">1455</a>                  
        example = <span class="jxr_string">"foo"</span>;
-<a class="jxr_linenumber" name="L1456" href="#L1456">1456</a>                  
} <strong class="jxr_keyword">else</strong> <strong 
class="jxr_keyword">if</strong> (cat.is(ENUM)) {
-<a class="jxr_linenumber" name="L1457" href="#L1457">1457</a>                  
        Iterator&lt;? <strong class="jxr_keyword">extends</strong> 
Enum&lt;?&gt;&gt; i = EnumSet.allOf(<strong 
class="jxr_keyword">inner</strong>().asSubclass(Enum.<strong 
class="jxr_keyword">class</strong>)).iterator();
-<a class="jxr_linenumber" name="L1458" href="#L1458">1458</a>                  
        example = i.hasNext() ? (beanContext.isUseEnumNames() ? i.next().name() 
: i.next().toString()) : <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1459" href="#L1459">1459</a>                  
} <strong class="jxr_keyword">else</strong> <strong 
class="jxr_keyword">if</strong> (isAny(<strong 
class="jxr_keyword">float</strong>.<strong class="jxr_keyword">class</strong>, 
Float.<strong class="jxr_keyword">class</strong>, <strong 
class="jxr_keyword">double</strong>.<strong class="jxr_keyword">class</strong>, 
Double.<strong class="jxr_keyword">class</strong>)) {
-<a class="jxr_linenumber" name="L1460" href="#L1460">1460</a>                  
        example = <span class="jxr_string">"1.0"</span>;
-<a class="jxr_linenumber" name="L1461" href="#L1461">1461</a>                  
} <strong class="jxr_keyword">else</strong> <strong 
class="jxr_keyword">if</strong> (isAny(<strong 
class="jxr_keyword">short</strong>.<strong class="jxr_keyword">class</strong>, 
Short.<strong class="jxr_keyword">class</strong>, <strong 
class="jxr_keyword">int</strong>.<strong class="jxr_keyword">class</strong>, 
Integer.<strong class="jxr_keyword">class</strong>, <strong 
class="jxr_keyword">long</strong>.<strong class="jxr_k [...]
-<a class="jxr_linenumber" name="L1462" href="#L1462">1462</a>                  
        example = <span class="jxr_string">"1"</span>;
-<a class="jxr_linenumber" name="L1463" href="#L1463">1463</a>                  
}
-<a class="jxr_linenumber" name="L1464" href="#L1464">1464</a>          }
-<a class="jxr_linenumber" name="L1465" href="#L1465">1465</a> 
-<a class="jxr_linenumber" name="L1466" href="#L1466">1466</a>          <strong 
class="jxr_keyword">return</strong> example;
-<a class="jxr_linenumber" name="L1467" href="#L1467">1467</a>  }
-<a class="jxr_linenumber" name="L1468" href="#L1468">1468</a> 
-<a class="jxr_linenumber" name="L1469" href="#L1469">1469</a>  <strong 
class="jxr_keyword">private</strong> <a name="FieldInfo" 
href="../../../org/apache/juneau/commons/reflect/FieldInfo.html#FieldInfo">FieldInfo</a>
 findExampleField() {
-<a class="jxr_linenumber" name="L1470" href="#L1470">1470</a>          <strong 
class="jxr_keyword">var</strong> ap = beanContext.getAnnotationProvider();
-<a class="jxr_linenumber" name="L1471" href="#L1471">1471</a> 
-<a class="jxr_linenumber" name="L1472" href="#L1472">1472</a>          <strong 
class="jxr_keyword">return</strong> getDeclaredFields()
-<a class="jxr_linenumber" name="L1473" href="#L1473">1473</a>                  
.stream()
-<a class="jxr_linenumber" name="L1474" href="#L1474">1474</a>                  
.filter(x -&gt; x.isStatic() &amp;&amp; isParentOf(x.getFieldType()) &amp;&amp; 
ap.has(Example.<strong class="jxr_keyword">class</strong>, x))
-<a class="jxr_linenumber" name="L1475" href="#L1475">1475</a>                  
.map(x -&gt; x.accessible())
-<a class="jxr_linenumber" name="L1476" href="#L1476">1476</a>                  
.findFirst()
-<a class="jxr_linenumber" name="L1477" href="#L1477">1477</a>                  
.orElse(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1478" href="#L1478">1478</a>  }
-<a class="jxr_linenumber" name="L1479" href="#L1479">1479</a> 
-<a class="jxr_linenumber" name="L1480" href="#L1480">1480</a>  <strong 
class="jxr_keyword">private</strong> <a name="MethodInfo" 
href="../../../org/apache/juneau/commons/reflect/MethodInfo.html#MethodInfo">MethodInfo</a>
 findExampleMethod() {
-<a class="jxr_linenumber" name="L1481" href="#L1481">1481</a>          <em 
class="jxr_comment">// @formatter:off</em>
-<a class="jxr_linenumber" name="L1482" href="#L1482">1482</a>          <strong 
class="jxr_keyword">var</strong> ap = beanContext.getAnnotationProvider();
-<a class="jxr_linenumber" name="L1483" href="#L1483">1483</a> 
-<a class="jxr_linenumber" name="L1484" href="#L1484">1484</a>          <em 
class="jxr_comment">// Option 1:  Public example() or @Example method.</em>
-<a class="jxr_linenumber" name="L1485" href="#L1485">1485</a>          <strong 
class="jxr_keyword">var</strong> m = getPublicMethod(
-<a class="jxr_linenumber" name="L1486" href="#L1486">1486</a>                  
x -&gt; x.isStatic() &amp;&amp; x.isNotDeprecated() &amp;&amp; (x.hasName(<span 
class="jxr_string">"example"</span>) || ap.has(Example.<strong 
class="jxr_keyword">class</strong>, x)) &amp;&amp; 
x.hasParameterTypesLenient(BeanSession.<strong 
class="jxr_keyword">class</strong>)
-<a class="jxr_linenumber" name="L1487" href="#L1487">1487</a>          );
-<a class="jxr_linenumber" name="L1488" href="#L1488">1488</a>          <strong 
class="jxr_keyword">if</strong> (m.isPresent()) <strong 
class="jxr_keyword">return</strong> m.get();
-<a class="jxr_linenumber" name="L1489" href="#L1489">1489</a> 
-<a class="jxr_linenumber" name="L1490" href="#L1490">1490</a>          <em 
class="jxr_comment">// Option 2:  Non-public @Example method.</em>
-<a class="jxr_linenumber" name="L1491" href="#L1491">1491</a>          <strong 
class="jxr_keyword">return</strong> getDeclaredMethods()
-<a class="jxr_linenumber" name="L1492" href="#L1492">1492</a>                  
.stream()
-<a class="jxr_linenumber" name="L1493" href="#L1493">1493</a>                  
.flatMap(x -&gt; x.getMatchingMethods().stream())
-<a class="jxr_linenumber" name="L1494" href="#L1494">1494</a>                  
.filter(x -&gt; x.isStatic() &amp;&amp; ap.has(Example.<strong 
class="jxr_keyword">class</strong>, x))
-<a class="jxr_linenumber" name="L1495" href="#L1495">1495</a>                  
.map(x -&gt; x.accessible())
-<a class="jxr_linenumber" name="L1496" href="#L1496">1496</a>                  
.findFirst()
-<a class="jxr_linenumber" name="L1497" href="#L1497">1497</a>                  
.orElse(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1498" href="#L1498">1498</a>          <em 
class="jxr_comment">// @formatter:on</em>
-<a class="jxr_linenumber" name="L1499" href="#L1499">1499</a>  }
-<a class="jxr_linenumber" name="L1500" href="#L1500">1500</a> 
-<a class="jxr_linenumber" name="L1501" href="#L1501">1501</a>  <strong 
class="jxr_keyword">private</strong> <a name="MethodInfo" 
href="../../../org/apache/juneau/commons/reflect/MethodInfo.html#MethodInfo">MethodInfo</a>
 findFromStringMethod() {
-<a class="jxr_linenumber" name="L1502" href="#L1502">1502</a>          <em 
class="jxr_comment">// Find static fromString(String) or equivalent method.</em>
-<a class="jxr_linenumber" name="L1503" href="#L1503">1503</a>          <em 
class="jxr_comment">// fromString() must be checked before valueOf() so that 
Enum classes can create their own</em>
-<a class="jxr_linenumber" name="L1504" href="#L1504">1504</a>          <em 
class="jxr_comment">//              specialized fromString() methods to 
override the behavior of Enum.valueOf(String).</em>
-<a class="jxr_linenumber" name="L1505" href="#L1505">1505</a>          <em 
class="jxr_comment">// valueOf() is used by enums.</em>
-<a class="jxr_linenumber" name="L1506" href="#L1506">1506</a>          <em 
class="jxr_comment">// parse() is used by the java logging Level class.</em>
-<a class="jxr_linenumber" name="L1507" href="#L1507">1507</a>          <em 
class="jxr_comment">// forName() is used by Class and Charset</em>
-<a class="jxr_linenumber" name="L1508" href="#L1508">1508</a>          <em 
class="jxr_comment">// @formatter:off</em>
-<a class="jxr_linenumber" name="L1509" href="#L1509">1509</a>          <strong 
class="jxr_keyword">var</strong> names = a(<span 
class="jxr_string">"fromString"</span>, <span 
class="jxr_string">"fromValue"</span>, <span 
class="jxr_string">"valueOf"</span>, <span class="jxr_string">"parse"</span>, 
<span class="jxr_string">"parseString"</span>, <span 
class="jxr_string">"forName"</span>, <span 
class="jxr_string">"forString"</span>);
-<a class="jxr_linenumber" name="L1510" href="#L1510">1510</a>          <strong 
class="jxr_keyword">return</strong> getPublicMethod(
-<a class="jxr_linenumber" name="L1511" href="#L1511">1511</a>                  
x -&gt; x.isStatic() &amp;&amp; x.isNotDeprecated() &amp;&amp; 
x.hasReturnType(<strong class="jxr_keyword">this</strong>) &amp;&amp; 
x.hasParameterTypes(String.<strong class="jxr_keyword">class</strong>) 
&amp;&amp; contains(x.getName(), names)
-<a class="jxr_linenumber" name="L1512" href="#L1512">1512</a>          
).orElse(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1513" href="#L1513">1513</a>          <em 
class="jxr_comment">// @formatter:on</em>
-<a class="jxr_linenumber" name="L1514" href="#L1514">1514</a>  }
-<a class="jxr_linenumber" name="L1515" href="#L1515">1515</a> 
-<a class="jxr_linenumber" name="L1516" href="#L1516">1516</a>  
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="L1517" href="#L1517">1517</a>  <strong 
class="jxr_keyword">private</strong> ClassInfoTyped&lt;? <strong 
class="jxr_keyword">extends</strong> T&gt; findImplClass() {
-<a class="jxr_linenumber" name="L1518" href="#L1518">1518</a> 
-<a class="jxr_linenumber" name="L1519" href="#L1519">1519</a>          <strong 
class="jxr_keyword">if</strong> (is(Object.<strong 
class="jxr_keyword">class</strong>))
-<a class="jxr_linenumber" name="L1520" href="#L1520">1520</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1521" href="#L1521">1521</a> 
-<a class="jxr_linenumber" name="L1522" href="#L1522">1522</a>          <strong 
class="jxr_keyword">var</strong> v = beanFilter.map(x -&gt; 
x.getImplClass()).map(ReflectionUtils::info).orElse(<strong 
class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1523" href="#L1523">1523</a> 
-<a class="jxr_linenumber" name="L1524" href="#L1524">1524</a>          <strong 
class="jxr_keyword">if</strong> (v == <strong class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L1525" href="#L1525">1525</a>                  
v = marshalledFilter.map(x -&gt; 
x.getImplClass()).map(ReflectionUtils::info).orElse(<strong 
class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1526" href="#L1526">1526</a> 
-<a class="jxr_linenumber" name="L1527" href="#L1527">1527</a>          <strong 
class="jxr_keyword">return</strong> (ClassInfoTyped&lt;? <strong 
class="jxr_keyword">extends</strong> T&gt;)v;
-<a class="jxr_linenumber" name="L1528" href="#L1528">1528</a>  }
-<a class="jxr_linenumber" name="L1529" href="#L1529">1529</a> 
-<a class="jxr_linenumber" name="L1530" href="#L1530">1530</a>  <strong 
class="jxr_keyword">private</strong> <a name="MarshalledFilter" 
href="../../../org/apache/juneau/MarshalledFilter.html#MarshalledFilter">MarshalledFilter</a>
 findMarshalledFilter() {
-<a class="jxr_linenumber" name="L1531" href="#L1531">1531</a>          <strong 
class="jxr_keyword">var</strong> ap = beanContext.getAnnotationProvider();
-<a class="jxr_linenumber" name="L1532" href="#L1532">1532</a>          <strong 
class="jxr_keyword">var</strong> l = ap.find(Marshalled.<strong 
class="jxr_keyword">class</strong>, <strong class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="L1533" href="#L1533">1533</a>          <strong 
class="jxr_keyword">if</strong> (l.isEmpty())
-<a class="jxr_linenumber" name="L1534" href="#L1534">1534</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1535" href="#L1535">1535</a>          <strong 
class="jxr_keyword">return</strong> MarshalledFilter.create(<strong 
class="jxr_keyword">inner</strong>()).applyAnnotations(reverse(l.stream().map(AnnotationInfo::<strong
 class="jxr_keyword">inner</strong>).toList())).build();
-<a class="jxr_linenumber" name="L1536" href="#L1536">1536</a>  }
-<a class="jxr_linenumber" name="L1537" href="#L1537">1537</a> 
-<a class="jxr_linenumber" name="L1538" href="#L1538">1538</a>  <strong 
class="jxr_keyword">private</strong> Property&lt;T,Object&gt; 
findNameProperty() {
-<a class="jxr_linenumber" name="L1539" href="#L1539">1539</a>          <strong 
class="jxr_keyword">var</strong> ap = beanContext.getAnnotationProvider();
-<a class="jxr_linenumber" name="L1540" href="#L1540">1540</a> 
-<a class="jxr_linenumber" name="L1541" href="#L1541">1541</a>          <strong 
class="jxr_keyword">var</strong> s = getAllFields()
-<a class="jxr_linenumber" name="L1542" href="#L1542">1542</a>                  
.stream()
-<a class="jxr_linenumber" name="L1543" href="#L1543">1543</a>                  
.filter(x -&gt; ap.has(NameProperty.<strong class="jxr_keyword">class</strong>, 
x))
-<a class="jxr_linenumber" name="L1544" href="#L1544">1544</a>                  
.map(x -&gt; x.accessible())
-<a class="jxr_linenumber" name="L1545" href="#L1545">1545</a>                  
.map(x -&gt; Property.&lt;T,Object&gt;create().field(x).build())
-<a class="jxr_linenumber" name="L1546" href="#L1546">1546</a>                  
.findFirst();
-<a class="jxr_linenumber" name="L1547" href="#L1547">1547</a> 
-<a class="jxr_linenumber" name="L1548" href="#L1548">1548</a>          <strong 
class="jxr_keyword">if</strong> (s.isPresent()) <strong 
class="jxr_keyword">return</strong> s.get();
-<a class="jxr_linenumber" name="L1549" href="#L1549">1549</a> 
-<a class="jxr_linenumber" name="L1550" href="#L1550">1550</a>          <strong 
class="jxr_keyword">var</strong> builder = Property.&lt;T,Object&gt;create();
-<a class="jxr_linenumber" name="L1551" href="#L1551">1551</a> 
-<a class="jxr_linenumber" name="L1552" href="#L1552">1552</a>          <em 
class="jxr_comment">// Look for setter method (1 parameter) with 
@NameProperty</em>
-<a class="jxr_linenumber" name="L1553" href="#L1553">1553</a>          <strong 
class="jxr_keyword">var</strong> setterMethod = getAllMethods()
-<a class="jxr_linenumber" name="L1554" href="#L1554">1554</a>                  
.stream()
-<a class="jxr_linenumber" name="L1555" href="#L1555">1555</a>                  
.filter(x -&gt; ap.has(NameProperty.<strong class="jxr_keyword">class</strong>, 
x) &amp;&amp; x.hasNumParameters(1))
-<a class="jxr_linenumber" name="L1556" href="#L1556">1556</a>                  
.findFirst();
-<a class="jxr_linenumber" name="L1557" href="#L1557">1557</a> 
-<a class="jxr_linenumber" name="L1558" href="#L1558">1558</a>          <strong 
class="jxr_keyword">if</strong> (setterMethod.isPresent()) {
-<a class="jxr_linenumber" name="L1559" href="#L1559">1559</a>                  
builder.setter(setterMethod.get().accessible());
-<a class="jxr_linenumber" name="L1560" href="#L1560">1560</a> 
-<a class="jxr_linenumber" name="L1561" href="#L1561">1561</a>                  
<em class="jxr_comment">// Try to find a corresponding getter method (even if 
not annotated)</em>
-<a class="jxr_linenumber" name="L1562" href="#L1562">1562</a>                  
<em class="jxr_comment">// If setter is "setName", look for "getName" or 
"isName"</em>
-<a class="jxr_linenumber" name="L1563" href="#L1563">1563</a>                  
<strong class="jxr_keyword">var</strong> setterName = 
setterMethod.get().getSimpleName();
-<a class="jxr_linenumber" name="L1564" href="#L1564">1564</a>                  
<strong class="jxr_keyword">if</strong> (setterName.startsWith(<span 
class="jxr_string">"set"</span>) &amp;&amp; setterName.length() &gt; 3) {
-<a class="jxr_linenumber" name="L1565" href="#L1565">1565</a>                  
        <strong class="jxr_keyword">var</strong> propertyName = 
setterName.substring(3);
-<a class="jxr_linenumber" name="L1566" href="#L1566">1566</a>                  
        <strong class="jxr_keyword">var</strong> getterName1 = <span 
class="jxr_string">"get"</span> + propertyName;
-<a class="jxr_linenumber" name="L1567" href="#L1567">1567</a>                  
        <strong class="jxr_keyword">var</strong> getterName2 = <span 
class="jxr_string">"is"</span> + propertyName;
-<a class="jxr_linenumber" name="L1568" href="#L1568">1568</a> 
-<a class="jxr_linenumber" name="L1569" href="#L1569">1569</a>                  
        <strong class="jxr_keyword">var</strong> getter = getAllMethods()
-<a class="jxr_linenumber" name="L1570" href="#L1570">1570</a>                  
                .stream()
-<a class="jxr_linenumber" name="L1571" href="#L1571">1571</a>                  
                .filter(x -&gt; !x.isStatic() &amp;&amp; x.hasNumParameters(0) 
&amp;&amp;
-<a class="jxr_linenumber" name="L1572" href="#L1572">1572</a>                  
                        (x.hasName(getterName1) || x.hasName(getterName2)) 
&amp;&amp;
-<a class="jxr_linenumber" name="L1573" href="#L1573">1573</a>                  
                        !x.getReturnType().is(Void.TYPE))
-<a class="jxr_linenumber" name="L1574" href="#L1574">1574</a>                  
                .findFirst();
-<a class="jxr_linenumber" name="L1575" href="#L1575">1575</a> 
-<a class="jxr_linenumber" name="L1576" href="#L1576">1576</a>                  
        <strong class="jxr_keyword">if</strong> (getter.isPresent()) {
-<a class="jxr_linenumber" name="L1577" href="#L1577">1577</a>                  
                builder.getter(getter.get().accessible());
-<a class="jxr_linenumber" name="L1578" href="#L1578">1578</a>                  
        } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L1579" href="#L1579">1579</a>                  
                <em class="jxr_comment">// Try to find a field with the 
property name (lowercase first letter)</em>
-<a class="jxr_linenumber" name="L1580" href="#L1580">1580</a>                  
                <strong class="jxr_keyword">var</strong> fieldName = 
Character.toLowerCase(propertyName.charAt(0)) + propertyName.substring(1);
-<a class="jxr_linenumber" name="L1581" href="#L1581">1581</a>                  
                <strong class="jxr_keyword">var</strong> field = getAllFields()
-<a class="jxr_linenumber" name="L1582" href="#L1582">1582</a>                  
                        .stream()
-<a class="jxr_linenumber" name="L1583" href="#L1583">1583</a>                  
                        .filter(x -&gt; !x.isStatic() &amp;&amp; 
x.hasName(fieldName))
-<a class="jxr_linenumber" name="L1584" href="#L1584">1584</a>                  
                        .findFirst();
-<a class="jxr_linenumber" name="L1585" href="#L1585">1585</a> 
-<a class="jxr_linenumber" name="L1586" href="#L1586">1586</a>                  
                <strong class="jxr_keyword">if</strong> (field.isPresent()) {
-<a class="jxr_linenumber" name="L1587" href="#L1587">1587</a>                  
                        <strong class="jxr_keyword">var</strong> f = 
field.get().accessible();
-<a class="jxr_linenumber" name="L1588" href="#L1588">1588</a>                  
                        builder.getter(obj -&gt; f.get(obj));
-<a class="jxr_linenumber" name="L1589" href="#L1589">1589</a>                  
                }
-<a class="jxr_linenumber" name="L1590" href="#L1590">1590</a>                  
        }
-<a class="jxr_linenumber" name="L1591" href="#L1591">1591</a>                  
}
-<a class="jxr_linenumber" name="L1592" href="#L1592">1592</a>          }
-<a class="jxr_linenumber" name="L1593" href="#L1593">1593</a> 
-<a class="jxr_linenumber" name="L1594" href="#L1594">1594</a>          <em 
class="jxr_comment">// Look for getter method (0 parameters, non-void return) 
with @NameProperty</em>
-<a class="jxr_linenumber" name="L1595" href="#L1595">1595</a>          <strong 
class="jxr_keyword">var</strong> getterMethod = getAllMethods()
-<a class="jxr_linenumber" name="L1596" href="#L1596">1596</a>                  
.stream()
-<a class="jxr_linenumber" name="L1597" href="#L1597">1597</a>                  
.filter(x -&gt; ap.has(NameProperty.<strong class="jxr_keyword">class</strong>, 
x) &amp;&amp; x.hasNumParameters(0) &amp;&amp; !x.getReturnType().is(Void.TYPE))
-<a class="jxr_linenumber" name="L1598" href="#L1598">1598</a>                  
.findFirst();
-<a class="jxr_linenumber" name="L1599" href="#L1599">1599</a> 
-<a class="jxr_linenumber" name="L1600" href="#L1600">1600</a>          <strong 
class="jxr_keyword">if</strong> (getterMethod.isPresent()) {
-<a class="jxr_linenumber" name="L1601" href="#L1601">1601</a>                  
builder.getter(getterMethod.get().accessible());
-<a class="jxr_linenumber" name="L1602" href="#L1602">1602</a>          }
-<a class="jxr_linenumber" name="L1603" href="#L1603">1603</a> 
-<a class="jxr_linenumber" name="L1604" href="#L1604">1604</a>          <em 
class="jxr_comment">// Return null if neither setter nor getter was found</em>
-<a class="jxr_linenumber" name="L1605" href="#L1605">1605</a>          <strong 
class="jxr_keyword">if</strong> (setterMethod.isEmpty() &amp;&amp; 
getterMethod.isEmpty())
-<a class="jxr_linenumber" name="L1606" href="#L1606">1606</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1607" href="#L1607">1607</a> 
-<a class="jxr_linenumber" name="L1608" href="#L1608">1608</a>          <strong 
class="jxr_keyword">return</strong> builder.build();
-<a class="jxr_linenumber" name="L1609" href="#L1609">1609</a>  }
-<a class="jxr_linenumber" name="L1610" href="#L1610">1610</a> 
-<a class="jxr_linenumber" name="L1611" href="#L1611">1611</a>  <strong 
class="jxr_keyword">private</strong> <a name="ConstructorInfo" 
href="../../../org/apache/juneau/commons/reflect/ConstructorInfo.html#ConstructorInfo">ConstructorInfo</a>
 findNoArgConstructor() {
-<a class="jxr_linenumber" name="L1612" href="#L1612">1612</a> 
-<a class="jxr_linenumber" name="L1613" href="#L1613">1613</a>          <strong 
class="jxr_keyword">if</strong> (is(Object.<strong 
class="jxr_keyword">class</strong>))
-<a class="jxr_linenumber" name="L1614" href="#L1614">1614</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1615" href="#L1615">1615</a> 
-<a class="jxr_linenumber" name="L1616" href="#L1616">1616</a>          <strong 
class="jxr_keyword">if</strong> (implClass.isPresent())
-<a class="jxr_linenumber" name="L1617" href="#L1617">1617</a>                  
<strong class="jxr_keyword">return</strong> 
implClass.get().getPublicConstructor(x -&gt; 
x.hasNumParameters(0)).orElse(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1618" href="#L1618">1618</a> 
-<a class="jxr_linenumber" name="L1619" href="#L1619">1619</a>          <strong 
class="jxr_keyword">if</strong> (isAbstract())
-<a class="jxr_linenumber" name="L1620" href="#L1620">1620</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1621" href="#L1621">1621</a> 
-<a class="jxr_linenumber" name="L1622" href="#L1622">1622</a>          <strong 
class="jxr_keyword">var</strong> numParams = isMemberClass() &amp;&amp; 
isNotStatic() ? 1 : 0;
-<a class="jxr_linenumber" name="L1623" href="#L1623">1623</a>          <strong 
class="jxr_keyword">return</strong> getPublicConstructors()
-<a class="jxr_linenumber" name="L1624" href="#L1624">1624</a>                  
.stream()
-<a class="jxr_linenumber" name="L1625" href="#L1625">1625</a>                  
.filter(x -&gt; x.isPublic() &amp;&amp; x.isNotDeprecated() &amp;&amp; 
x.hasNumParameters(numParams))
-<a class="jxr_linenumber" name="L1626" href="#L1626">1626</a>                  
.findFirst()
-<a class="jxr_linenumber" name="L1627" href="#L1627">1627</a>                  
.orElse(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1628" href="#L1628">1628</a>  }
-<a class="jxr_linenumber" name="L1629" href="#L1629">1629</a> 
-<a class="jxr_linenumber" name="L1630" href="#L1630">1630</a>  <strong 
class="jxr_keyword">private</strong> Property&lt;T,Object&gt; 
findParentProperty() {
-<a class="jxr_linenumber" name="L1631" href="#L1631">1631</a>          <strong 
class="jxr_keyword">var</strong> ap = beanContext.getAnnotationProvider();
-<a class="jxr_linenumber" name="L1632" href="#L1632">1632</a> 
-<a class="jxr_linenumber" name="L1633" href="#L1633">1633</a>          <strong 
class="jxr_keyword">var</strong> s = getAllFields()
-<a class="jxr_linenumber" name="L1634" href="#L1634">1634</a>                  
.stream()
-<a class="jxr_linenumber" name="L1635" href="#L1635">1635</a>                  
.filter(x -&gt; ap.has(ParentProperty.<strong 
class="jxr_keyword">class</strong>, x))
-<a class="jxr_linenumber" name="L1636" href="#L1636">1636</a>                  
.map(x -&gt; x.accessible())
-<a class="jxr_linenumber" name="L1637" href="#L1637">1637</a>                  
.map(x -&gt; Property.&lt;T,Object&gt;create().field(x).build())
-<a class="jxr_linenumber" name="L1638" href="#L1638">1638</a>                  
.findFirst();
-<a class="jxr_linenumber" name="L1639" href="#L1639">1639</a> 
-<a class="jxr_linenumber" name="L1640" href="#L1640">1640</a>          <strong 
class="jxr_keyword">if</strong> (s.isPresent()) <strong 
class="jxr_keyword">return</strong> s.get();
-<a class="jxr_linenumber" name="L1641" href="#L1641">1641</a> 
-<a class="jxr_linenumber" name="L1642" href="#L1642">1642</a>          <strong 
class="jxr_keyword">var</strong> builder = Property.&lt;T,Object&gt;create();
-<a class="jxr_linenumber" name="L1643" href="#L1643">1643</a> 
-<a class="jxr_linenumber" name="L1644" href="#L1644">1644</a>          <em 
class="jxr_comment">// Look for setter method (1 parameter) with 
@ParentProperty</em>
-<a class="jxr_linenumber" name="L1645" href="#L1645">1645</a>          <strong 
class="jxr_keyword">var</strong> setterMethod = getAllMethods()
-<a class="jxr_linenumber" name="L1646" href="#L1646">1646</a>                  
.stream()
-<a class="jxr_linenumber" name="L1647" href="#L1647">1647</a>                  
.filter(x -&gt; ap.has(ParentProperty.<strong 
class="jxr_keyword">class</strong>, x) &amp;&amp; x.hasNumParameters(1))
-<a class="jxr_linenumber" name="L1648" href="#L1648">1648</a>                  
.findFirst();
-<a class="jxr_linenumber" name="L1649" href="#L1649">1649</a> 
-<a class="jxr_linenumber" name="L1650" href="#L1650">1650</a>          <strong 
class="jxr_keyword">if</strong> (setterMethod.isPresent()) {
-<a class="jxr_linenumber" name="L1651" href="#L1651">1651</a>                  
builder.setter(setterMethod.get().accessible());
-<a class="jxr_linenumber" name="L1652" href="#L1652">1652</a> 
-<a class="jxr_linenumber" name="L1653" href="#L1653">1653</a>                  
<em class="jxr_comment">// Try to find a corresponding getter method (even if 
not annotated)</em>
-<a class="jxr_linenumber" name="L1654" href="#L1654">1654</a>                  
<em class="jxr_comment">// If setter is "setParent", look for "getParent" or 
"isParent"</em>
-<a class="jxr_linenumber" name="L1655" href="#L1655">1655</a>                  
<strong class="jxr_keyword">var</strong> setterName = 
setterMethod.get().getSimpleName();
-<a class="jxr_linenumber" name="L1656" href="#L1656">1656</a>                  
<strong class="jxr_keyword">if</strong> (setterName.startsWith(<span 
class="jxr_string">"set"</span>) &amp;&amp; setterName.length() &gt; 3) {
-<a class="jxr_linenumber" name="L1657" href="#L1657">1657</a>                  
        <strong class="jxr_keyword">var</strong> propertyName = 
setterName.substring(3);
-<a class="jxr_linenumber" name="L1658" href="#L1658">1658</a>                  
        <strong class="jxr_keyword">var</strong> getterName1 = <span 
class="jxr_string">"get"</span> + propertyName;
-<a class="jxr_linenumber" name="L1659" href="#L1659">1659</a>                  
        <strong class="jxr_keyword">var</strong> getterName2 = <span 
class="jxr_string">"is"</span> + propertyName;
-<a class="jxr_linenumber" name="L1660" href="#L1660">1660</a> 
-<a class="jxr_linenumber" name="L1661" href="#L1661">1661</a>                  
        <strong class="jxr_keyword">var</strong> getter = getAllMethods()
-<a class="jxr_linenumber" name="L1662" href="#L1662">1662</a>                  
                .stream()
-<a class="jxr_linenumber" name="L1663" href="#L1663">1663</a>                  
                .filter(x -&gt; !x.isStatic() &amp;&amp; x.hasNumParameters(0) 
&amp;&amp;
-<a class="jxr_linenumber" name="L1664" href="#L1664">1664</a>                  
                        (x.hasName(getterName1) || x.hasName(getterName2)) 
&amp;&amp;
-<a class="jxr_linenumber" name="L1665" href="#L1665">1665</a>                  
                        !x.getReturnType().is(Void.TYPE))
-<a class="jxr_linenumber" name="L1666" href="#L1666">1666</a>                  
                .findFirst();
-<a class="jxr_linenumber" name="L1667" href="#L1667">1667</a> 
-<a class="jxr_linenumber" name="L1668" href="#L1668">1668</a>                  
        <strong class="jxr_keyword">if</strong> (getter.isPresent()) {
-<a class="jxr_linenumber" name="L1669" href="#L1669">1669</a>                  
                builder.getter(getter.get().accessible());
-<a class="jxr_linenumber" name="L1670" href="#L1670">1670</a>                  
        } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L1671" href="#L1671">1671</a>                  
                <em class="jxr_comment">// Try to find a field with the 
property name (lowercase first letter)</em>
-<a class="jxr_linenumber" name="L1672" href="#L1672">1672</a>                  
                <strong class="jxr_keyword">var</strong> fieldName = 
Character.toLowerCase(propertyName.charAt(0)) + propertyName.substring(1);
-<a class="jxr_linenumber" name="L1673" href="#L1673">1673</a>                  
                <strong class="jxr_keyword">var</strong> field = getAllFields()
-<a class="jxr_linenumber" name="L1674" href="#L1674">1674</a>                  
                        .stream()
-<a class="jxr_linenumber" name="L1675" href="#L1675">1675</a>                  
                        .filter(x -&gt; !x.isStatic() &amp;&amp; 
x.hasName(fieldName))
-<a class="jxr_linenumber" name="L1676" href="#L1676">1676</a>                  
                        .findFirst();
-<a class="jxr_linenumber" name="L1677" href="#L1677">1677</a> 
-<a class="jxr_linenumber" name="L1678" href="#L1678">1678</a>                  
                <strong class="jxr_keyword">if</strong> (field.isPresent()) {
-<a class="jxr_linenumber" name="L1679" href="#L1679">1679</a>                  
                        <strong class="jxr_keyword">var</strong> f = 
field.get().accessible();
-<a class="jxr_linenumber" name="L1680" href="#L1680">1680</a>                  
                        builder.getter(obj -&gt; f.get(obj));
-<a class="jxr_linenumber" name="L1681" href="#L1681">1681</a>                  
                }
-<a class="jxr_linenumber" name="L1682" href="#L1682">1682</a>                  
        }
-<a class="jxr_linenumber" name="L1683" href="#L1683">1683</a>                  
}
-<a class="jxr_linenumber" name="L1684" href="#L1684">1684</a>          }
-<a class="jxr_linenumber" name="L1685" href="#L1685">1685</a> 
-<a class="jxr_linenumber" name="L1686" href="#L1686">1686</a>          <em 
class="jxr_comment">// Look for getter method (0 parameters, non-void return) 
with @ParentProperty</em>
-<a class="jxr_linenumber" name="L1687" href="#L1687">1687</a>          <strong 
class="jxr_keyword">var</strong> getterMethod = getAllMethods()
-<a class="jxr_linenumber" name="L1688" href="#L1688">1688</a>                  
.stream()
-<a class="jxr_linenumber" name="L1689" href="#L1689">1689</a>                  
.filter(x -&gt; ap.has(ParentProperty.<strong 
class="jxr_keyword">class</strong>, x) &amp;&amp; x.hasNumParameters(0) 
&amp;&amp; !x.getReturnType().is(Void.TYPE))
-<a class="jxr_linenumber" name="L1690" href="#L1690">1690</a>                  
.findFirst();
-<a class="jxr_linenumber" name="L1691" href="#L1691">1691</a> 
-<a class="jxr_linenumber" name="L1692" href="#L1692">1692</a>          <strong 
class="jxr_keyword">if</strong> (getterMethod.isPresent()) {
-<a class="jxr_linenumber" name="L1693" href="#L1693">1693</a>                  
builder.getter(getterMethod.get().accessible());
-<a class="jxr_linenumber" name="L1694" href="#L1694">1694</a>          }
-<a class="jxr_linenumber" name="L1695" href="#L1695">1695</a> 
-<a class="jxr_linenumber" name="L1696" href="#L1696">1696</a>          <em 
class="jxr_comment">// Return null if neither setter nor getter was found</em>
-<a class="jxr_linenumber" name="L1697" href="#L1697">1697</a>          <strong 
class="jxr_keyword">if</strong> (setterMethod.isEmpty() &amp;&amp; 
getterMethod.isEmpty())
-<a class="jxr_linenumber" name="L1698" href="#L1698">1698</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1699" href="#L1699">1699</a> 
-<a class="jxr_linenumber" name="L1700" href="#L1700">1700</a>          <strong 
class="jxr_keyword">return</strong> builder.build();
-<a class="jxr_linenumber" name="L1701" href="#L1701">1701</a>  }
-<a class="jxr_linenumber" name="L1702" href="#L1702">1702</a> 
-<a class="jxr_linenumber" name="L1703" href="#L1703">1703</a>  <strong 
class="jxr_keyword">private</strong> <a name="ConstructorInfo" 
href="../../../org/apache/juneau/commons/reflect/ConstructorInfo.html#ConstructorInfo">ConstructorInfo</a>
 findStringConstructor() {
-<a class="jxr_linenumber" name="L1704" href="#L1704">1704</a> 
-<a class="jxr_linenumber" name="L1705" href="#L1705">1705</a>          <strong 
class="jxr_keyword">if</strong> (is(Object.<strong 
class="jxr_keyword">class</strong>) || isAbstract())
-<a class="jxr_linenumber" name="L1706" href="#L1706">1706</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1707" href="#L1707">1707</a> 
-<a class="jxr_linenumber" name="L1708" href="#L1708">1708</a>          <strong 
class="jxr_keyword">if</strong> (implClass.isPresent())
-<a class="jxr_linenumber" name="L1709" href="#L1709">1709</a>                  
<strong class="jxr_keyword">return</strong> 
implClass.get().getPublicConstructor(x -&gt; x.hasParameterTypes(String.<strong 
class="jxr_keyword">class</strong>)).orElse(<strong 
class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1710" href="#L1710">1710</a> 
-<a class="jxr_linenumber" name="L1711" href="#L1711">1711</a>          <strong 
class="jxr_keyword">if</strong> (isAbstract())
-<a class="jxr_linenumber" name="L1712" href="#L1712">1712</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1713" href="#L1713">1713</a> 
-<a class="jxr_linenumber" name="L1714" href="#L1714">1714</a>          <strong 
class="jxr_keyword">var</strong> numParams = isMemberClass() &amp;&amp; 
isNotStatic() ? 2 : 1;
-<a class="jxr_linenumber" name="L1715" href="#L1715">1715</a>          <strong 
class="jxr_keyword">return</strong> getPublicConstructors()
-<a class="jxr_linenumber" name="L1716" href="#L1716">1716</a>                  
.stream()
-<a class="jxr_linenumber" name="L1717" href="#L1717">1717</a>                  
.filter(x -&gt; x.isPublic() &amp;&amp; x.isNotDeprecated() &amp;&amp; 
x.hasNumParameters(numParams))
-<a class="jxr_linenumber" name="L1718" href="#L1718">1718</a>                  
.filter(x -&gt; x.getParameter(numParams == 2 ? 1 : 0).isType(String.<strong 
class="jxr_keyword">class</strong>))
-<a class="jxr_linenumber" name="L1719" href="#L1719">1719</a>                  
.findFirst()
-<a class="jxr_linenumber" name="L1720" href="#L1720">1720</a>                  
.orElse(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1721" href="#L1721">1721</a>  }
-<a class="jxr_linenumber" name="L1722" href="#L1722">1722</a> 
-<a class="jxr_linenumber" name="L1723" href="#L1723">1723</a>  <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1724" href="#L1724">1724</a> <em 
class="jxr_javadoccomment">   * Returns the {@link ObjectSwap} where the 
specified class is the same/subclass of the normal class of one of the</em>
-<a class="jxr_linenumber" name="L1725" href="#L1725">1725</a> <em 
class="jxr_javadoccomment">   * child POJO swaps associated with this 
class.</em>
-<a class="jxr_linenumber" name="L1726" href="#L1726">1726</a> <em 
class="jxr_javadoccomment">   *</em>
-<a class="jxr_linenumber" name="L1727" href="#L1727">1727</a> <em 
class="jxr_javadoccomment">   * @param normalClass The normal class being 
resolved.</em>
-<a class="jxr_linenumber" name="L1728" href="#L1728">1728</a> <em 
class="jxr_javadoccomment">   * @return The resolved {@link ObjectSwap} or 
&lt;jk&gt;null&lt;/jk&gt; if none were found.</em>
-<a class="jxr_linenumber" name="L1729" href="#L1729">1729</a> <em 
class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="L1730" href="#L1730">1730</a>  <strong 
class="jxr_keyword">protected</strong> ObjectSwap&lt;?,?&gt; 
getChildObjectSwapForSwap(Class&lt;?&gt; normalClass) {
-<a class="jxr_linenumber" name="L1731" href="#L1731">1731</a>          <strong 
class="jxr_keyword">return</strong> childSwapMap.get(normalClass);
-<a class="jxr_linenumber" name="L1732" href="#L1732">1732</a>  }
-<a class="jxr_linenumber" name="L1733" href="#L1733">1733</a> 
-<a class="jxr_linenumber" name="L1734" href="#L1734">1734</a>  <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1735" href="#L1735">1735</a> <em 
class="jxr_javadoccomment">   * Returns the {@link ObjectSwap} where the 
specified class is the same/subclass of the swap class of one of the child</em>
-<a class="jxr_linenumber" name="L1736" href="#L1736">1736</a> <em 
class="jxr_javadoccomment">   * POJO swaps associated with this class.</em>
-<a class="jxr_linenumber" name="L1737" href="#L1737">1737</a> <em 
class="jxr_javadoccomment">   *</em>
-<a class="jxr_linenumber" name="L1738" href="#L1738">1738</a> <em 
class="jxr_javadoccomment">   * @param swapClass The swap class being 
resolved.</em>
-<a class="jxr_linenumber" name="L1739" href="#L1739">1739</a> <em 
class="jxr_javadoccomment">   * @return The resolved {@link ObjectSwap} or 
&lt;jk&gt;null&lt;/jk&gt; if none were found.</em>
-<a class="jxr_linenumber" name="L1740" href="#L1740">1740</a> <em 
class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="L1741" href="#L1741">1741</a>  <strong 
class="jxr_keyword">protected</strong> ObjectSwap&lt;?,?&gt; 
getChildObjectSwapForUnswap(Class&lt;?&gt; swapClass) {
-<a class="jxr_linenumber" name="L1742" href="#L1742">1742</a>          <strong 
class="jxr_keyword">return</strong> childUnswapMap.get(swapClass);
-<a class="jxr_linenumber" name="L1743" href="#L1743">1743</a>  }
-<a class="jxr_linenumber" name="L1744" href="#L1744">1744</a> 
-<a class="jxr_linenumber" name="L1745" href="#L1745">1745</a>  <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1746" href="#L1746">1746</a> <em 
class="jxr_javadoccomment">   * Returns &lt;jk&gt;true&lt;/jk&gt; if this class 
or any child classes has a {@link ObjectSwap} associated with it.</em>
-<a class="jxr_linenumber" name="L1747" href="#L1747">1747</a> <em 
class="jxr_javadoccomment">   *</em>
-<a class="jxr_linenumber" name="L1748" href="#L1748">1748</a> <em 
class="jxr_javadoccomment">   * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L1749" href="#L1749">1749</a> <em 
class="jxr_javadoccomment">   * Used when transforming bean properties to 
prevent having to look up transforms if we know for certain that no</em>
-<a class="jxr_linenumber" name="L1750" href="#L1750">1750</a> <em 
class="jxr_javadoccomment">   * transforms are associated with a bean 
property.</em>
-<a class="jxr_linenumber" name="L1751" href="#L1751">1751</a> <em 
class="jxr_javadoccomment">   *</em>
-<a class="jxr_linenumber" name="L1752" href="#L1752">1752</a> <em 
class="jxr_javadoccomment">   * @return &lt;jk&gt;true&lt;/jk&gt; if this class 
or any child classes has a {@link ObjectSwap} associated with it.</em>
-<a class="jxr_linenumber" name="L1753" href="#L1753">1753</a> <em 
class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="L1754" href="#L1754">1754</a>  <strong 
class="jxr_keyword">protected</strong> <strong 
class="jxr_keyword">boolean</strong> hasChildSwaps() {
-<a class="jxr_linenumber" name="L1755" href="#L1755">1755</a>          <strong 
class="jxr_keyword">return</strong> ! childSwaps.get().isEmpty();
-<a class="jxr_linenumber" name="L1756" href="#L1756">1756</a>  }
-<a class="jxr_linenumber" name="L1757" href="#L1757">1757</a> 
-<a class="jxr_linenumber" name="L1758" href="#L1758">1758</a>  <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1759" href="#L1759">1759</a> <em 
class="jxr_javadoccomment">   * Appends this object as a readable string to the 
specified string builder.</em>
-<a class="jxr_linenumber" name="L1760" href="#L1760">1760</a> <em 
class="jxr_javadoccomment">   *</em>
-<a class="jxr_linenumber" name="L1761" href="#L1761">1761</a> <em 
class="jxr_javadoccomment">   * @param sb The string builder to append this 
object to.</em>
-<a class="jxr_linenumber" name="L1762" href="#L1762">1762</a> <em 
class="jxr_javadoccomment">   * @param simple Print simple class names only (no 
package).</em>
-<a class="jxr_linenumber" name="L1763" href="#L1763">1763</a> <em 
class="jxr_javadoccomment">   * @return The passed-in string builder.</em>
-<a class="jxr_linenumber" name="L1764" href="#L1764">1764</a> <em 
class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="L1765" href="#L1765">1765</a>  <strong 
class="jxr_keyword">protected</strong> StringBuilder toString(StringBuilder sb, 
<strong class="jxr_keyword">boolean</strong> simple) {
-<a class="jxr_linenumber" name="L1766" href="#L1766">1766</a>          <strong 
class="jxr_keyword">var</strong> n = <strong 
class="jxr_keyword">inner</strong>().getName();
-<a class="jxr_linenumber" name="L1767" href="#L1767">1767</a>          <strong 
class="jxr_keyword">if</strong> (simple) {
-<a class="jxr_linenumber" name="L1768" href="#L1768">1768</a>                  
<strong class="jxr_keyword">var</strong> i = n.lastIndexOf('.');
-<a class="jxr_linenumber" name="L1769" href="#L1769">1769</a>                  
n = n.substring(i == -1 ? 0 : i + 1).replace('$', '.');
-<a class="jxr_linenumber" name="L1770" href="#L1770">1770</a>          }
-<a class="jxr_linenumber" name="L1771" href="#L1771">1771</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(ARRAY))
-<a class="jxr_linenumber" name="L1772" href="#L1772">1772</a>                  
<strong class="jxr_keyword">return</strong> elementType.get().toString(sb, 
simple).append('[').append(']');
-<a class="jxr_linenumber" name="L1773" href="#L1773">1773</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(BEANMAP))
-<a class="jxr_linenumber" name="L1774" href="#L1774">1774</a>                  
<strong class="jxr_keyword">return</strong> sb.append(cn(BeanMap.<strong 
class="jxr_keyword">class</strong>)).append('&lt;').append(n).append('&gt;');
-<a class="jxr_linenumber" name="L1775" href="#L1775">1775</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(MAP)) {
-<a class="jxr_linenumber" name="L1776" href="#L1776">1776</a>                  
<strong class="jxr_keyword">var</strong> kvTypes = keyValueTypes.get();
-<a class="jxr_linenumber" name="L1777" href="#L1777">1777</a>                  
<strong class="jxr_keyword">var</strong> kt = kvTypes.getA();
-<a class="jxr_linenumber" name="L1778" href="#L1778">1778</a>                  
<strong class="jxr_keyword">var</strong> vt = kvTypes.getB();
-<a class="jxr_linenumber" name="L1779" href="#L1779">1779</a>                  
<strong class="jxr_keyword">if</strong> (kt != <strong 
class="jxr_keyword">null</strong> &amp;&amp; vt != <strong 
class="jxr_keyword">null</strong> &amp;&amp; kt.isObject() &amp;&amp; 
vt.isObject())
-<a class="jxr_linenumber" name="L1780" href="#L1780">1780</a>                  
        <strong class="jxr_keyword">return</strong> sb.append(n);
-<a class="jxr_linenumber" name="L1781" href="#L1781">1781</a>                  
<strong class="jxr_keyword">return</strong> 
sb.append(n).append('&lt;').append(kt == <strong 
class="jxr_keyword">null</strong> ? <span class="jxr_string">"?"</span> : 
kt.toString(simple)).append(',').append(vt == <strong 
class="jxr_keyword">null</strong> ? <span class="jxr_string">"?"</span> : 
vt.toString(simple)).append('&gt;');
-<a class="jxr_linenumber" name="L1782" href="#L1782">1782</a>          }
-<a class="jxr_linenumber" name="L1783" href="#L1783">1783</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(COLLECTION) || is(Optional.<strong 
class="jxr_keyword">class</strong>)) {
-<a class="jxr_linenumber" name="L1784" href="#L1784">1784</a>                  
<strong class="jxr_keyword">var</strong> et = elementType.get();
-<a class="jxr_linenumber" name="L1785" href="#L1785">1785</a>                  
<strong class="jxr_keyword">return</strong> sb.append(n).append(et != <strong 
class="jxr_keyword">null</strong> &amp;&amp; et.isObject() ? <span 
class="jxr_string">""</span> : <span class="jxr_string">"&lt;"</span> + (et == 
<strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"?"</span> 
: et.toString(simple)) + <span class="jxr_string">"&gt;"</span>);
-<a class="jxr_linenumber" name="L1786" href="#L1786">1786</a>          }
-<a class="jxr_linenumber" name="L1787" href="#L1787">1787</a>          <strong 
class="jxr_keyword">return</strong> sb.append(n);
-<a class="jxr_linenumber" name="L1788" href="#L1788">1788</a>  }
-<a class="jxr_linenumber" name="L1789" href="#L1789">1789</a> 
-<a class="jxr_linenumber" name="L1790" href="#L1790">1790</a>  <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1791" href="#L1791">1791</a> <em 
class="jxr_javadoccomment">   * Causes thread to wait until constructor has 
exited.</em>
-<a class="jxr_linenumber" name="L1792" href="#L1792">1792</a> <em 
class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="L1793" href="#L1793">1793</a>  <strong 
class="jxr_keyword">void</strong> waitForInit() {
-<a class="jxr_linenumber" name="L1794" href="#L1794">1794</a>          <strong 
class="jxr_keyword">try</strong> (<strong class="jxr_keyword">var</strong> x = 
lock.read()) {}
-<a class="jxr_linenumber" name="L1795" href="#L1795">1795</a>  }
-<a class="jxr_linenumber" name="L1796" href="#L1796">1796</a> }
+<a class="jxr_linenumber" name="L1339" href="#L1339">1339</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">new</strong> BeanMetaValue&lt;&gt;(<strong 
class="jxr_keyword">null</strong>, <span class="jxr_string">"Known non-bean 
type"</span>);
+<a class="jxr_linenumber" name="L1340" href="#L1340">1340</a>          <strong 
class="jxr_keyword">var</strong> result = BeanMeta.create(<strong 
class="jxr_keyword">this</strong>, beanFilter.get(), <strong 
class="jxr_keyword">null</strong>, implClass.map(x -&gt; 
x.getPublicConstructor(x2 -&gt; x2.hasNumParameters(0)).orElse(<strong 
class="jxr_keyword">null</strong>)).orElse(<strong 
class="jxr_keyword">null</strong>));
+<a class="jxr_linenumber" name="L1341" href="#L1341">1341</a>          <strong 
class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> 
BeanMetaValue&lt;&gt;(result.getA(), result.getB());
+<a class="jxr_linenumber" name="L1342" href="#L1342">1342</a>  }
+<a class="jxr_linenumber" name="L1343" href="#L1343">1343</a> 
+<a class="jxr_linenumber" name="L1344" href="#L1344">1344</a>  <strong 
class="jxr_keyword">private</strong> KeyValueTypes findKeyValueTypes() {
+<a class="jxr_linenumber" name="L1345" href="#L1345">1345</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(MAP) &amp;&amp; ! cat.is(BEANMAP)) {
+<a class="jxr_linenumber" name="L1346" href="#L1346">1346</a>                  
<em class="jxr_comment">// If this is a MAP, see if it's parameterized (e.g. 
AddressBook extends HashMap&lt;String,Person&gt;)</em>
+<a class="jxr_linenumber" name="L1347" href="#L1347">1347</a>                  
<strong class="jxr_keyword">var</strong> parameters = 
beanContext.findParameters(<strong class="jxr_keyword">inner</strong>(), 
<strong class="jxr_keyword">inner</strong>());
+<a class="jxr_linenumber" name="L1348" href="#L1348">1348</a>                  
<strong class="jxr_keyword">if</strong> (nn(parameters) &amp;&amp; 
parameters.length == 2) {
+<a class="jxr_linenumber" name="L1349" href="#L1349">1349</a>                  
        <strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">new</strong> KeyValueTypes(parameters[0], parameters[1]);
+<a class="jxr_linenumber" name="L1350" href="#L1350">1350</a>                  
}
+<a class="jxr_linenumber" name="L1351" href="#L1351">1351</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">new</strong> 
KeyValueTypes(beanContext.getClassMeta(Object.<strong 
class="jxr_keyword">class</strong>), beanContext.getClassMeta(Object.<strong 
class="jxr_keyword">class</strong>));
+<a class="jxr_linenumber" name="L1352" href="#L1352">1352</a>          }
+<a class="jxr_linenumber" name="L1353" href="#L1353">1353</a>          <strong 
class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> 
KeyValueTypes(<strong class="jxr_keyword">null</strong>, <strong 
class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1354" href="#L1354">1354</a>  }
+<a class="jxr_linenumber" name="L1355" href="#L1355">1355</a> 
+<a class="jxr_linenumber" name="L1356" href="#L1356">1356</a>  <strong 
class="jxr_keyword">private</strong> ClassMeta&lt;?&gt; findElementType() {
+<a class="jxr_linenumber" name="L1357" href="#L1357">1357</a>          <strong 
class="jxr_keyword">if</strong> (beanContext == <strong 
class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L1358" href="#L1358">1358</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1359" href="#L1359">1359</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(ARRAY)) {
+<a class="jxr_linenumber" name="L1360" href="#L1360">1360</a>                  
<strong class="jxr_keyword">return</strong> beanContext.getClassMeta(<strong 
class="jxr_keyword">inner</strong>().getComponentType(), false);
+<a class="jxr_linenumber" name="L1361" href="#L1361">1361</a>          } 
<strong class="jxr_keyword">else</strong> <strong 
class="jxr_keyword">if</strong> (cat.is(COLLECTION) || is(Optional.<strong 
class="jxr_keyword">class</strong>)) {
+<a class="jxr_linenumber" name="L1362" href="#L1362">1362</a>                  
<em class="jxr_comment">// If this is a COLLECTION, see if it's parameterized 
(e.g. AddressBook extends LinkedList&lt;Person&gt;)</em>
+<a class="jxr_linenumber" name="L1363" href="#L1363">1363</a>                  
<strong class="jxr_keyword">var</strong> parameters = 
beanContext.findParameters(<strong class="jxr_keyword">inner</strong>(), 
<strong class="jxr_keyword">inner</strong>());
+<a class="jxr_linenumber" name="L1364" href="#L1364">1364</a>                  
<strong class="jxr_keyword">if</strong> (nn(parameters) &amp;&amp; 
parameters.length == 1) {
+<a class="jxr_linenumber" name="L1365" href="#L1365">1365</a>                  
        <strong class="jxr_keyword">return</strong> parameters[0];
+<a class="jxr_linenumber" name="L1366" href="#L1366">1366</a>                  
}
+<a class="jxr_linenumber" name="L1367" href="#L1367">1367</a>                  
<strong class="jxr_keyword">return</strong> 
beanContext.getClassMeta(Object.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="L1368" href="#L1368">1368</a>          }
+<a class="jxr_linenumber" name="L1369" href="#L1369">1369</a>          <strong 
class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1370" href="#L1370">1370</a>  }
+<a class="jxr_linenumber" name="L1371" href="#L1371">1371</a> 
+<a class="jxr_linenumber" name="L1372" href="#L1372">1372</a>  
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="L1373" href="#L1373">1373</a>  <strong 
class="jxr_keyword">private</strong> BuilderSwap&lt;T,?&gt; findBuilderSwap() {
+<a class="jxr_linenumber" name="L1374" href="#L1374">1374</a>          <strong 
class="jxr_keyword">var</strong> bc = beanContext;
+<a class="jxr_linenumber" name="L1375" href="#L1375">1375</a>          <strong 
class="jxr_keyword">if</strong> (bc == <strong 
class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L1376" href="#L1376">1376</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1377" href="#L1377">1377</a>          <strong 
class="jxr_keyword">return</strong> 
(BuilderSwap&lt;T,?&gt;)BuilderSwap.findSwapFromObjectClass(bc, <strong 
class="jxr_keyword">inner</strong>(), bc.getBeanConstructorVisibility(), 
bc.getBeanMethodVisibility());
+<a class="jxr_linenumber" name="L1378" href="#L1378">1378</a>  }
+<a class="jxr_linenumber" name="L1379" href="#L1379">1379</a> 
+<a class="jxr_linenumber" name="L1380" href="#L1380">1380</a>  
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="L1381" href="#L1381">1381</a>  <strong 
class="jxr_keyword">private</strong> List&lt;ObjectSwap&lt;T,?&gt;&gt; 
findSwaps() {
+<a class="jxr_linenumber" name="L1382" href="#L1382">1382</a>          <strong 
class="jxr_keyword">if</strong> (beanContext == <strong 
class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L1383" href="#L1383">1383</a>                  
<strong class="jxr_keyword">return</strong> l();
+<a class="jxr_linenumber" name="L1384" href="#L1384">1384</a> 
+<a class="jxr_linenumber" name="L1385" href="#L1385">1385</a>          <strong 
class="jxr_keyword">var</strong> list = <strong 
class="jxr_keyword">new</strong> ArrayList&lt;ObjectSwap&lt;T,?&gt;&gt;();
+<a class="jxr_linenumber" name="L1386" href="#L1386">1386</a>          <strong 
class="jxr_keyword">var</strong> swapArray = beanContext.getSwaps();
+<a class="jxr_linenumber" name="L1387" href="#L1387">1387</a>          <strong 
class="jxr_keyword">if</strong> (swapArray != <strong 
class="jxr_keyword">null</strong> &amp;&amp; swapArray.length &gt; 0) {
+<a class="jxr_linenumber" name="L1388" href="#L1388">1388</a>                  
<strong class="jxr_keyword">var</strong> innerClass = <strong 
class="jxr_keyword">inner</strong>();
+<a class="jxr_linenumber" name="L1389" href="#L1389">1389</a>                  
<strong class="jxr_keyword">for</strong> (<strong 
class="jxr_keyword">var</strong> f : swapArray)
+<a class="jxr_linenumber" name="L1390" href="#L1390">1390</a>                  
        <strong class="jxr_keyword">if</strong> 
(f.getNormalClass().isParentOf(innerClass))
+<a class="jxr_linenumber" name="L1391" href="#L1391">1391</a>                  
                list.add((ObjectSwap&lt;T,?&gt;)f);
+<a class="jxr_linenumber" name="L1392" href="#L1392">1392</a>          }
+<a class="jxr_linenumber" name="L1393" href="#L1393">1393</a> 
+<a class="jxr_linenumber" name="L1394" href="#L1394">1394</a>          <strong 
class="jxr_keyword">var</strong> ap = beanContext.getAnnotationProvider();
+<a class="jxr_linenumber" name="L1395" href="#L1395">1395</a>          
ap.find(Swap.<strong class="jxr_keyword">class</strong>, <strong 
class="jxr_keyword">this</strong>).stream().map(AnnotationInfo::<strong 
class="jxr_keyword">inner</strong>).forEach(x -&gt; list.add(createSwap(x)));
+<a class="jxr_linenumber" name="L1396" href="#L1396">1396</a>          <strong 
class="jxr_keyword">var</strong> ds = DefaultSwaps.find(<strong 
class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="L1397" href="#L1397">1397</a>          <strong 
class="jxr_keyword">if</strong> (ds == <strong 
class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L1398" href="#L1398">1398</a>                  
ds = AutoObjectSwap.find(beanContext, <strong 
class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="L1399" href="#L1399">1399</a>          <strong 
class="jxr_keyword">if</strong> (ds == <strong 
class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L1400" href="#L1400">1400</a>                  
ds = AutoNumberSwap.find(beanContext, <strong 
class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="L1401" href="#L1401">1401</a>          <strong 
class="jxr_keyword">if</strong> (ds == <strong 
class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L1402" href="#L1402">1402</a>                  
ds = AutoMapSwap.find(beanContext, <strong class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="L1403" href="#L1403">1403</a>          <strong 
class="jxr_keyword">if</strong> (ds == <strong 
class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L1404" href="#L1404">1404</a>                  
ds = AutoListSwap.find(beanContext, <strong class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="L1405" href="#L1405">1405</a> 
+<a class="jxr_linenumber" name="L1406" href="#L1406">1406</a>          <strong 
class="jxr_keyword">if</strong> (nn(ds))
+<a class="jxr_linenumber" name="L1407" href="#L1407">1407</a>                  
list.add((ObjectSwap&lt;T,?&gt;)ds);
+<a class="jxr_linenumber" name="L1408" href="#L1408">1408</a> 
+<a class="jxr_linenumber" name="L1409" href="#L1409">1409</a>          <strong 
class="jxr_keyword">return</strong> u(list);
+<a class="jxr_linenumber" name="L1410" href="#L1410">1410</a>  }
+<a class="jxr_linenumber" name="L1411" href="#L1411">1411</a> 
+<a class="jxr_linenumber" name="L1412" href="#L1412">1412</a>  <strong 
class="jxr_keyword">private</strong> List&lt;ObjectSwap&lt;?,?&gt;&gt; 
findChildSwaps() {
+<a class="jxr_linenumber" name="L1413" href="#L1413">1413</a>          <strong 
class="jxr_keyword">if</strong> (beanContext == <strong 
class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L1414" href="#L1414">1414</a>                  
<strong class="jxr_keyword">return</strong> l();
+<a class="jxr_linenumber" name="L1415" href="#L1415">1415</a>          <strong 
class="jxr_keyword">var</strong> swapArray = beanContext.getSwaps();
+<a class="jxr_linenumber" name="L1416" href="#L1416">1416</a>          <strong 
class="jxr_keyword">if</strong> (swapArray == <strong 
class="jxr_keyword">null</strong> || swapArray.length == 0)
+<a class="jxr_linenumber" name="L1417" href="#L1417">1417</a>                  
<strong class="jxr_keyword">return</strong> l();
+<a class="jxr_linenumber" name="L1418" href="#L1418">1418</a>          <strong 
class="jxr_keyword">var</strong> list = <strong 
class="jxr_keyword">new</strong> ArrayList&lt;ObjectSwap&lt;?,?&gt;&gt;();
+<a class="jxr_linenumber" name="L1419" href="#L1419">1419</a>          <strong 
class="jxr_keyword">var</strong> innerClass = <strong 
class="jxr_keyword">inner</strong>();
+<a class="jxr_linenumber" name="L1420" href="#L1420">1420</a>          <strong 
class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> f : 
swapArray)
+<a class="jxr_linenumber" name="L1421" href="#L1421">1421</a>                  
<strong class="jxr_keyword">if</strong> 
(f.getNormalClass().isChildOf(innerClass))
+<a class="jxr_linenumber" name="L1422" href="#L1422">1422</a>                  
        list.add(f);
+<a class="jxr_linenumber" name="L1423" href="#L1423">1423</a>          <strong 
class="jxr_keyword">return</strong> u(list);
+<a class="jxr_linenumber" name="L1424" href="#L1424">1424</a>  }
+<a class="jxr_linenumber" name="L1425" href="#L1425">1425</a> 
+<a class="jxr_linenumber" name="L1426" href="#L1426">1426</a>  <strong 
class="jxr_keyword">private</strong> BidiMap&lt;Object,String&gt; 
findEnumValues() {
+<a class="jxr_linenumber" name="L1427" href="#L1427">1427</a>          <strong 
class="jxr_keyword">if</strong> (! isEnum())
+<a class="jxr_linenumber" name="L1428" href="#L1428">1428</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1429" href="#L1429">1429</a> 
+<a class="jxr_linenumber" name="L1430" href="#L1430">1430</a>          <strong 
class="jxr_keyword">var</strong> bc = beanContext;
+<a class="jxr_linenumber" name="L1431" href="#L1431">1431</a>          <strong 
class="jxr_keyword">var</strong> useEnumNames = nn(bc) &amp;&amp; 
bc.isUseEnumNames();
+<a class="jxr_linenumber" name="L1432" href="#L1432">1432</a> 
+<a class="jxr_linenumber" name="L1433" href="#L1433">1433</a>          <strong 
class="jxr_keyword">var</strong> m = 
BidiMap.&lt;Object,String&gt;create().unmodifiable();
+<a class="jxr_linenumber" name="L1434" href="#L1434">1434</a>          <strong 
class="jxr_keyword">var</strong> c = <strong 
class="jxr_keyword">inner</strong>().asSubclass(Enum.<strong 
class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="L1435" href="#L1435">1435</a>          
stream(c.getEnumConstants()).forEach(x -&gt; m.add(x, useEnumNames ? x.name() : 
x.toString()));
+<a class="jxr_linenumber" name="L1436" href="#L1436">1436</a>          <strong 
class="jxr_keyword">return</strong> m.build();
+<a class="jxr_linenumber" name="L1437" href="#L1437">1437</a>  }
+<a class="jxr_linenumber" name="L1438" href="#L1438">1438</a> 
+<a class="jxr_linenumber" name="L1439" href="#L1439">1439</a>  
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="L1440" href="#L1440">1440</a>  <strong 
class="jxr_keyword">private</strong> String findExample() {
+<a class="jxr_linenumber" name="L1441" href="#L1441">1441</a> 
+<a class="jxr_linenumber" name="L1442" href="#L1442">1442</a>          <strong 
class="jxr_keyword">var</strong> example = beanFilter.map(x -&gt; 
x.getExample()).orElse(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1443" href="#L1443">1443</a> 
+<a class="jxr_linenumber" name="L1444" href="#L1444">1444</a>          <strong 
class="jxr_keyword">if</strong> (example == <strong 
class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L1445" href="#L1445">1445</a>                  
example = marshalledFilter.map(x -&gt; x.getExample()).orElse(<strong 
class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1446" href="#L1446">1446</a> 
+<a class="jxr_linenumber" name="L1447" href="#L1447">1447</a>          <strong 
class="jxr_keyword">if</strong> (example == <strong 
class="jxr_keyword">null</strong> &amp;&amp; nn(beanContext))
+<a class="jxr_linenumber" name="L1448" href="#L1448">1448</a>                  
example = beanContext.getAnnotationProvider().find(Example.<strong 
class="jxr_keyword">class</strong>, <strong 
class="jxr_keyword">this</strong>).stream().map(x -&gt; x.<strong 
class="jxr_keyword">inner</strong>().value()).filter(Utils::isNotEmpty).findFirst().orElse(<strong
 class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1449" href="#L1449">1449</a> 
+<a class="jxr_linenumber" name="L1450" href="#L1450">1450</a>          <strong 
class="jxr_keyword">if</strong> (example == <strong 
class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L1451" href="#L1451">1451</a>                  
<strong class="jxr_keyword">if</strong> (isAny(<strong 
class="jxr_keyword">boolean</strong>.<strong 
class="jxr_keyword">class</strong>, Boolean.<strong 
class="jxr_keyword">class</strong>)) {
+<a class="jxr_linenumber" name="L1452" href="#L1452">1452</a>                  
        example = <span class="jxr_string">"true"</span>;
+<a class="jxr_linenumber" name="L1453" href="#L1453">1453</a>                  
} <strong class="jxr_keyword">else</strong> <strong 
class="jxr_keyword">if</strong> (isAny(<strong 
class="jxr_keyword">char</strong>.<strong class="jxr_keyword">class</strong>, 
Character.<strong class="jxr_keyword">class</strong>)) {
+<a class="jxr_linenumber" name="L1454" href="#L1454">1454</a>                  
        example = <span class="jxr_string">"a"</span>;
+<a class="jxr_linenumber" name="L1455" href="#L1455">1455</a>                  
} <strong class="jxr_keyword">else</strong> <strong 
class="jxr_keyword">if</strong> (cat.is(CHARSEQ)) {
+<a class="jxr_linenumber" name="L1456" href="#L1456">1456</a>                  
        example = <span class="jxr_string">"foo"</span>;
+<a class="jxr_linenumber" name="L1457" href="#L1457">1457</a>                  
} <strong class="jxr_keyword">else</strong> <strong 
class="jxr_keyword">if</strong> (cat.is(ENUM)) {
+<a class="jxr_linenumber" name="L1458" href="#L1458">1458</a>                  
        Iterator&lt;? <strong class="jxr_keyword">extends</strong> 
Enum&lt;?&gt;&gt; i = EnumSet.allOf(<strong 
class="jxr_keyword">inner</strong>().asSubclass(Enum.<strong 
class="jxr_keyword">class</strong>)).iterator();
+<a class="jxr_linenumber" name="L1459" href="#L1459">1459</a>                  
        example = i.hasNext() ? (beanContext.isUseEnumNames() ? i.next().name() 
: i.next().toString()) : <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1460" href="#L1460">1460</a>                  
} <strong class="jxr_keyword">else</strong> <strong 
class="jxr_keyword">if</strong> (isAny(<strong 
class="jxr_keyword">float</strong>.<strong class="jxr_keyword">class</strong>, 
Float.<strong class="jxr_keyword">class</strong>, <strong 
class="jxr_keyword">double</strong>.<strong class="jxr_keyword">class</strong>, 
Double.<strong class="jxr_keyword">class</strong>)) {
+<a class="jxr_linenumber" name="L1461" href="#L1461">1461</a>                  
        example = <span class="jxr_string">"1.0"</span>;
+<a class="jxr_linenumber" name="L1462" href="#L1462">1462</a>                  
} <strong class="jxr_keyword">else</strong> <strong 
class="jxr_keyword">if</strong> (isAny(<strong 
class="jxr_keyword">short</strong>.<strong class="jxr_keyword">class</strong>, 
Short.<strong class="jxr_keyword">class</strong>, <strong 
class="jxr_keyword">int</strong>.<strong class="jxr_keyword">class</strong>, 
Integer.<strong class="jxr_keyword">class</strong>, <strong 
class="jxr_keyword">long</strong>.<strong class="jxr_k [...]
+<a class="jxr_linenumber" name="L1463" href="#L1463">1463</a>                  
        example = <span class="jxr_string">"1"</span>;
+<a class="jxr_linenumber" name="L1464" href="#L1464">1464</a>                  
}
+<a class="jxr_linenumber" name="L1465" href="#L1465">1465</a>          }
+<a class="jxr_linenumber" name="L1466" href="#L1466">1466</a> 
+<a class="jxr_linenumber" name="L1467" href="#L1467">1467</a>          <strong 
class="jxr_keyword">return</strong> example;
+<a class="jxr_linenumber" name="L1468" href="#L1468">1468</a>  }
+<a class="jxr_linenumber" name="L1469" href="#L1469">1469</a> 
+<a class="jxr_linenumber" name="L1470" href="#L1470">1470</a>  <strong 
class="jxr_keyword">private</strong> <a name="FieldInfo" 
href="../../../org/apache/juneau/commons/reflect/FieldInfo.html#FieldInfo">FieldInfo</a>
 findExampleField() {
+<a class="jxr_linenumber" name="L1471" href="#L1471">1471</a>          <strong 
class="jxr_keyword">var</strong> ap = beanContext.getAnnotationProvider();
+<a class="jxr_linenumber" name="L1472" href="#L1472">1472</a> 
+<a class="jxr_linenumber" name="L1473" href="#L1473">1473</a>          <strong 
class="jxr_keyword">return</strong> getDeclaredFields()
+<a class="jxr_linenumber" name="L1474" href="#L1474">1474</a>                  
.stream()
+<a class="jxr_linenumber" name="L1475" href="#L1475">1475</a>                  
.filter(x -&gt; x.isStatic() &amp;&amp; isParentOf(x.getFieldType()) &amp;&amp; 
ap.has(Example.<strong class="jxr_keyword">class</strong>, x))
+<a class="jxr_linenumber" name="L1476" href="#L1476">1476</a>                  
.map(x -&gt; x.accessible())
+<a class="jxr_linenumber" name="L1477" href="#L1477">1477</a>                  
.findFirst()
+<a class="jxr_linenumber" name="L1478" href="#L1478">1478</a>                  
.orElse(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1479" href="#L1479">1479</a>  }
+<a class="jxr_linenumber" name="L1480" href="#L1480">1480</a> 
+<a class="jxr_linenumber" name="L1481" href="#L1481">1481</a>  <strong 
class="jxr_keyword">private</strong> <a name="MethodInfo" 
href="../../../org/apache/juneau/commons/reflect/MethodInfo.html#MethodInfo">MethodInfo</a>
 findExampleMethod() {
+<a class="jxr_linenumber" name="L1482" href="#L1482">1482</a>          <em 
class="jxr_comment">// @formatter:off</em>
+<a class="jxr_linenumber" name="L1483" href="#L1483">1483</a>          <strong 
class="jxr_keyword">var</strong> ap = beanContext.getAnnotationProvider();
+<a class="jxr_linenumber" name="L1484" href="#L1484">1484</a> 
+<a class="jxr_linenumber" name="L1485" href="#L1485">1485</a>          <em 
class="jxr_comment">// Option 1:  Public example() or @Example method.</em>
+<a class="jxr_linenumber" name="L1486" href="#L1486">1486</a>          <strong 
class="jxr_keyword">var</strong> m = getPublicMethod(
+<a class="jxr_linenumber" name="L1487" href="#L1487">1487</a>                  
x -&gt; x.isStatic() &amp;&amp; x.isNotDeprecated() &amp;&amp; (x.hasName(<span 
class="jxr_string">"example"</span>) || ap.has(Example.<strong 
class="jxr_keyword">class</strong>, x)) &amp;&amp; 
x.hasParameterTypesLenient(BeanSession.<strong 
class="jxr_keyword">class</strong>)
+<a class="jxr_linenumber" name="L1488" href="#L1488">1488</a>          );
+<a class="jxr_linenumber" name="L1489" href="#L1489">1489</a>          <strong 
class="jxr_keyword">if</strong> (m.isPresent()) <strong 
class="jxr_keyword">return</strong> m.get();
+<a class="jxr_linenumber" name="L1490" href="#L1490">1490</a> 
+<a class="jxr_linenumber" name="L1491" href="#L1491">1491</a>          <em 
class="jxr_comment">// Option 2:  Non-public @Example method.</em>
+<a class="jxr_linenumber" name="L1492" href="#L1492">1492</a>          <strong 
class="jxr_keyword">return</strong> getDeclaredMethods()
+<a class="jxr_linenumber" name="L1493" href="#L1493">1493</a>                  
.stream()
+<a class="jxr_linenumber" name="L1494" href="#L1494">1494</a>                  
.flatMap(x -&gt; x.getMatchingMethods().stream())
+<a class="jxr_linenumber" name="L1495" href="#L1495">1495</a>                  
.filter(x -&gt; x.isStatic() &amp;&amp; ap.has(Example.<strong 
class="jxr_keyword">class</strong>, x))
+<a class="jxr_linenumber" name="L1496" href="#L1496">1496</a>                  
.map(x -&gt; x.accessible())
+<a class="jxr_linenumber" name="L1497" href="#L1497">1497</a>                  
.findFirst()
+<a class="jxr_linenumber" name="L1498" href="#L1498">1498</a>                  
.orElse(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1499" href="#L1499">1499</a>          <em 
class="jxr_comment">// @formatter:on</em>
+<a class="jxr_linenumber" name="L1500" href="#L1500">1500</a>  }
+<a class="jxr_linenumber" name="L1501" href="#L1501">1501</a> 
+<a class="jxr_linenumber" name="L1502" href="#L1502">1502</a>  <strong 
class="jxr_keyword">private</strong> <a name="MethodInfo" 
href="../../../org/apache/juneau/commons/reflect/MethodInfo.html#MethodInfo">MethodInfo</a>
 findFromStringMethod() {
+<a class="jxr_linenumber" name="L1503" href="#L1503">1503</a>          <em 
class="jxr_comment">// Find static fromString(String) or equivalent method.</em>
+<a class="jxr_linenumber" name="L1504" href="#L1504">1504</a>          <em 
class="jxr_comment">// fromString() must be checked before valueOf() so that 
Enum classes can create their own</em>
+<a class="jxr_linenumber" name="L1505" href="#L1505">1505</a>          <em 
class="jxr_comment">//              specialized fromString() methods to 
override the behavior of Enum.valueOf(String).</em>
+<a class="jxr_linenumber" name="L1506" href="#L1506">1506</a>          <em 
class="jxr_comment">// valueOf() is used by enums.</em>
+<a class="jxr_linenumber" name="L1507" href="#L1507">1507</a>          <em 
class="jxr_comment">// parse() is used by the java logging Level class.</em>
+<a class="jxr_linenumber" name="L1508" href="#L1508">1508</a>          <em 
class="jxr_comment">// forName() is used by Class and Charset</em>
+<a class="jxr_linenumber" name="L1509" href="#L1509">1509</a>          <em 
class="jxr_comment">// @formatter:off</em>
+<a class="jxr_linenumber" name="L1510" href="#L1510">1510</a>          <strong 
class="jxr_keyword">var</strong> names = a(<span 
class="jxr_string">"fromString"</span>, <span 
class="jxr_string">"fromValue"</span>, <span 
class="jxr_string">"valueOf"</span>, <span class="jxr_string">"parse"</span>, 
<span class="jxr_string">"parseString"</span>, <span 
class="jxr_string">"forName"</span>, <span 
class="jxr_string">"forString"</span>);
+<a class="jxr_linenumber" name="L1511" href="#L1511">1511</a>          <strong 
class="jxr_keyword">return</strong> getPublicMethod(
+<a class="jxr_linenumber" name="L1512" href="#L1512">1512</a>                  
x -&gt; x.isStatic() &amp;&amp; x.isNotDeprecated() &amp;&amp; 
x.hasReturnType(<strong class="jxr_keyword">this</strong>) &amp;&amp; 
x.hasParameterTypes(String.<strong class="jxr_keyword">class</strong>) 
&amp;&amp; contains(x.getName(), names)
+<a class="jxr_linenumber" name="L1513" href="#L1513">1513</a>          
).orElse(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1514" href="#L1514">1514</a>          <em 
class="jxr_comment">// @formatter:on</em>
+<a class="jxr_linenumber" name="L1515" href="#L1515">1515</a>  }
+<a class="jxr_linenumber" name="L1516" href="#L1516">1516</a> 
+<a class="jxr_linenumber" name="L1517" href="#L1517">1517</a>  
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="L1518" href="#L1518">1518</a>  <strong 
class="jxr_keyword">private</strong> ClassInfoTyped&lt;? <strong 
class="jxr_keyword">extends</strong> T&gt; findImplClass() {
+<a class="jxr_linenumber" name="L1519" href="#L1519">1519</a> 
+<a class="jxr_linenumber" name="L1520" href="#L1520">1520</a>          <strong 
class="jxr_keyword">if</strong> (is(Object.<strong 
class="jxr_keyword">class</strong>))
+<a class="jxr_linenumber" name="L1521" href="#L1521">1521</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1522" href="#L1522">1522</a> 
+<a class="jxr_linenumber" name="L1523" href="#L1523">1523</a>          <strong 
class="jxr_keyword">var</strong> v = beanFilter.map(x -&gt; 
x.getImplClass()).map(ReflectionUtils::info).orElse(<strong 
class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1524" href="#L1524">1524</a> 
+<a class="jxr_linenumber" name="L1525" href="#L1525">1525</a>          <strong 
class="jxr_keyword">if</strong> (v == <strong class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L1526" href="#L1526">1526</a>                  
v = marshalledFilter.map(x -&gt; 
x.getImplClass()).map(ReflectionUtils::info).orElse(<strong 
class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1527" href="#L1527">1527</a> 
+<a class="jxr_linenumber" name="L1528" href="#L1528">1528</a>          <strong 
class="jxr_keyword">return</strong> (ClassInfoTyped&lt;? <strong 
class="jxr_keyword">extends</strong> T&gt;)v;
+<a class="jxr_linenumber" name="L1529" href="#L1529">1529</a>  }
+<a class="jxr_linenumber" name="L1530" href="#L1530">1530</a> 
+<a class="jxr_linenumber" name="L1531" href="#L1531">1531</a>  <strong 
class="jxr_keyword">private</strong> <a name="MarshalledFilter" 
href="../../../org/apache/juneau/MarshalledFilter.html#MarshalledFilter">MarshalledFilter</a>
 findMarshalledFilter() {
+<a class="jxr_linenumber" name="L1532" href="#L1532">1532</a>          <strong 
class="jxr_keyword">var</strong> ap = beanContext.getAnnotationProvider();
+<a class="jxr_linenumber" name="L1533" href="#L1533">1533</a>          <strong 
class="jxr_keyword">var</strong> l = ap.find(Marshalled.<strong 
class="jxr_keyword">class</strong>, <strong class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="L1534" href="#L1534">1534</a>          <strong 
class="jxr_keyword">if</strong> (l.isEmpty())
+<a class="jxr_linenumber" name="L1535" href="#L1535">1535</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1536" href="#L1536">1536</a>          <strong 
class="jxr_keyword">return</strong> MarshalledFilter.create(<strong 
class="jxr_keyword">inner</strong>()).applyAnnotations(reverse(l.stream().map(AnnotationInfo::<strong
 class="jxr_keyword">inner</strong>).toList())).build();
+<a class="jxr_linenumber" name="L1537" href="#L1537">1537</a>  }
+<a class="jxr_linenumber" name="L1538" href="#L1538">1538</a> 
+<a class="jxr_linenumber" name="L1539" href="#L1539">1539</a>  <strong 
class="jxr_keyword">private</strong> Property&lt;T,Object&gt; 
findNameProperty() {
+<a class="jxr_linenumber" name="L1540" href="#L1540">1540</a>          <strong 
class="jxr_keyword">var</strong> ap = beanContext.getAnnotationProvider();
+<a class="jxr_linenumber" name="L1541" href="#L1541">1541</a> 
+<a class="jxr_linenumber" name="L1542" href="#L1542">1542</a>          <strong 
class="jxr_keyword">var</strong> s = getAllFields()
+<a class="jxr_linenumber" name="L1543" href="#L1543">1543</a>                  
.stream()
+<a class="jxr_linenumber" name="L1544" href="#L1544">1544</a>                  
.filter(x -&gt; ap.has(NameProperty.<strong class="jxr_keyword">class</strong>, 
x))
+<a class="jxr_linenumber" name="L1545" href="#L1545">1545</a>                  
.map(x -&gt; x.accessible())
+<a class="jxr_linenumber" name="L1546" href="#L1546">1546</a>                  
.map(x -&gt; Property.&lt;T,Object&gt;create().field(x).build())
+<a class="jxr_linenumber" name="L1547" href="#L1547">1547</a>                  
.findFirst();
+<a class="jxr_linenumber" name="L1548" href="#L1548">1548</a> 
+<a class="jxr_linenumber" name="L1549" href="#L1549">1549</a>          <strong 
class="jxr_keyword">if</strong> (s.isPresent()) <strong 
class="jxr_keyword">return</strong> s.get();
+<a class="jxr_linenumber" name="L1550" href="#L1550">1550</a> 
+<a class="jxr_linenumber" name="L1551" href="#L1551">1551</a>          <strong 
class="jxr_keyword">var</strong> builder = Property.&lt;T,Object&gt;create();
+<a class="jxr_linenumber" name="L1552" href="#L1552">1552</a> 
+<a class="jxr_linenumber" name="L1553" href="#L1553">1553</a>          <em 
class="jxr_comment">// Look for setter method (1 parameter) with 
@NameProperty</em>
+<a class="jxr_linenumber" name="L1554" href="#L1554">1554</a>          <strong 
class="jxr_keyword">var</strong> setterMethod = getAllMethods()
+<a class="jxr_linenumber" name="L1555" href="#L1555">1555</a>                  
.stream()
+<a class="jxr_linenumber" name="L1556" href="#L1556">1556</a>                  
.filter(x -&gt; ap.has(NameProperty.<strong class="jxr_keyword">class</strong>, 
x) &amp;&amp; x.hasNumParameters(1))
+<a class="jxr_linenumber" name="L1557" href="#L1557">1557</a>                  
.findFirst();
+<a class="jxr_linenumber" name="L1558" href="#L1558">1558</a> 
+<a class="jxr_linenumber" name="L1559" href="#L1559">1559</a>          <strong 
class="jxr_keyword">if</strong> (setterMethod.isPresent()) {
+<a class="jxr_linenumber" name="L1560" href="#L1560">1560</a>                  
builder.setter(setterMethod.get().accessible());
+<a class="jxr_linenumber" name="L1561" href="#L1561">1561</a> 
+<a class="jxr_linenumber" name="L1562" href="#L1562">1562</a>                  
<em class="jxr_comment">// Try to find a corresponding getter method (even if 
not annotated)</em>
+<a class="jxr_linenumber" name="L1563" href="#L1563">1563</a>                  
<em class="jxr_comment">// If setter is "setName", look for "getName" or 
"isName"</em>
+<a class="jxr_linenumber" name="L1564" href="#L1564">1564</a>                  
<strong class="jxr_keyword">var</strong> setterName = 
setterMethod.get().getSimpleName();
+<a class="jxr_linenumber" name="L1565" href="#L1565">1565</a>                  
<strong class="jxr_keyword">if</strong> (setterName.startsWith(<span 
class="jxr_string">"set"</span>) &amp;&amp; setterName.length() &gt; 3) {
+<a class="jxr_linenumber" name="L1566" href="#L1566">1566</a>                  
        <strong class="jxr_keyword">var</strong> propertyName = 
setterName.substring(3);
+<a class="jxr_linenumber" name="L1567" href="#L1567">1567</a>                  
        <strong class="jxr_keyword">var</strong> getterName1 = <span 
class="jxr_string">"get"</span> + propertyName;
+<a class="jxr_linenumber" name="L1568" href="#L1568">1568</a>                  
        <strong class="jxr_keyword">var</strong> getterName2 = <span 
class="jxr_string">"is"</span> + propertyName;
+<a class="jxr_linenumber" name="L1569" href="#L1569">1569</a> 
+<a class="jxr_linenumber" name="L1570" href="#L1570">1570</a>                  
        <strong class="jxr_keyword">var</strong> getter = getAllMethods()
+<a class="jxr_linenumber" name="L1571" href="#L1571">1571</a>                  
                .stream()
+<a class="jxr_linenumber" name="L1572" href="#L1572">1572</a>                  
                .filter(x -&gt; !x.isStatic() &amp;&amp; x.hasNumParameters(0) 
&amp;&amp;
+<a class="jxr_linenumber" name="L1573" href="#L1573">1573</a>                  
                        (x.hasName(getterName1) || x.hasName(getterName2)) 
&amp;&amp;
+<a class="jxr_linenumber" name="L1574" href="#L1574">1574</a>                  
                        !x.getReturnType().is(Void.TYPE))
+<a class="jxr_linenumber" name="L1575" href="#L1575">1575</a>                  
                .findFirst();
+<a class="jxr_linenumber" name="L1576" href="#L1576">1576</a> 
+<a class="jxr_linenumber" name="L1577" href="#L1577">1577</a>                  
        <strong class="jxr_keyword">if</strong> (getter.isPresent()) {
+<a class="jxr_linenumber" name="L1578" href="#L1578">1578</a>                  
                builder.getter(getter.get().accessible());
+<a class="jxr_linenumber" name="L1579" href="#L1579">1579</a>                  
        } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L1580" href="#L1580">1580</a>                  
                <em class="jxr_comment">// Try to find a field with the 
property name (lowercase first letter)</em>
+<a class="jxr_linenumber" name="L1581" href="#L1581">1581</a>                  
                <strong class="jxr_keyword">var</strong> fieldName = 
Character.toLowerCase(propertyName.charAt(0)) + propertyName.substring(1);
+<a class="jxr_linenumber" name="L1582" href="#L1582">1582</a>                  
                <strong class="jxr_keyword">var</strong> field = getAllFields()
+<a class="jxr_linenumber" name="L1583" href="#L1583">1583</a>                  
                        .stream()
+<a class="jxr_linenumber" name="L1584" href="#L1584">1584</a>                  
                        .filter(x -&gt; !x.isStatic() &amp;&amp; 
x.hasName(fieldName))
+<a class="jxr_linenumber" name="L1585" href="#L1585">1585</a>                  
                        .findFirst();
+<a class="jxr_linenumber" name="L1586" href="#L1586">1586</a> 
+<a class="jxr_linenumber" name="L1587" href="#L1587">1587</a>                  
                <strong class="jxr_keyword">if</strong> (field.isPresent()) {
+<a class="jxr_linenumber" name="L1588" href="#L1588">1588</a>                  
                        <strong class="jxr_keyword">var</strong> f = 
field.get().accessible();
+<a class="jxr_linenumber" name="L1589" href="#L1589">1589</a>                  
                        builder.getter(obj -&gt; f.get(obj));
+<a class="jxr_linenumber" name="L1590" href="#L1590">1590</a>                  
                }
+<a class="jxr_linenumber" name="L1591" href="#L1591">1591</a>                  
        }
+<a class="jxr_linenumber" name="L1592" href="#L1592">1592</a>                  
}
+<a class="jxr_linenumber" name="L1593" href="#L1593">1593</a>          }
+<a class="jxr_linenumber" name="L1594" href="#L1594">1594</a> 
+<a class="jxr_linenumber" name="L1595" href="#L1595">1595</a>          <em 
class="jxr_comment">// Look for getter method (0 parameters, non-void return) 
with @NameProperty</em>
+<a class="jxr_linenumber" name="L1596" href="#L1596">1596</a>          <strong 
class="jxr_keyword">var</strong> getterMethod = getAllMethods()
+<a class="jxr_linenumber" name="L1597" href="#L1597">1597</a>                  
.stream()
+<a class="jxr_linenumber" name="L1598" href="#L1598">1598</a>                  
.filter(x -&gt; ap.has(NameProperty.<strong class="jxr_keyword">class</strong>, 
x) &amp;&amp; x.hasNumParameters(0) &amp;&amp; !x.getReturnType().is(Void.TYPE))
+<a class="jxr_linenumber" name="L1599" href="#L1599">1599</a>                  
.findFirst();
+<a class="jxr_linenumber" name="L1600" href="#L1600">1600</a> 
+<a class="jxr_linenumber" name="L1601" href="#L1601">1601</a>          <strong 
class="jxr_keyword">if</strong> (getterMethod.isPresent()) {
+<a class="jxr_linenumber" name="L1602" href="#L1602">1602</a>                  
builder.getter(getterMethod.get().accessible());
+<a class="jxr_linenumber" name="L1603" href="#L1603">1603</a>          }
+<a class="jxr_linenumber" name="L1604" href="#L1604">1604</a> 
+<a class="jxr_linenumber" name="L1605" href="#L1605">1605</a>          <em 
class="jxr_comment">// Return null if neither setter nor getter was found</em>
+<a class="jxr_linenumber" name="L1606" href="#L1606">1606</a>          <strong 
class="jxr_keyword">if</strong> (setterMethod.isEmpty() &amp;&amp; 
getterMethod.isEmpty())
+<a class="jxr_linenumber" name="L1607" href="#L1607">1607</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1608" href="#L1608">1608</a> 
+<a class="jxr_linenumber" name="L1609" href="#L1609">1609</a>          <strong 
class="jxr_keyword">return</strong> builder.build();
+<a class="jxr_linenumber" name="L1610" href="#L1610">1610</a>  }
+<a class="jxr_linenumber" name="L1611" href="#L1611">1611</a> 
+<a class="jxr_linenumber" name="L1612" href="#L1612">1612</a>  <strong 
class="jxr_keyword">private</strong> <a name="ConstructorInfo" 
href="../../../org/apache/juneau/commons/reflect/ConstructorInfo.html#ConstructorInfo">ConstructorInfo</a>
 findNoArgConstructor() {
+<a class="jxr_linenumber" name="L1613" href="#L1613">1613</a> 
+<a class="jxr_linenumber" name="L1614" href="#L1614">1614</a>          <strong 
class="jxr_keyword">if</strong> (is(Object.<strong 
class="jxr_keyword">class</strong>))
+<a class="jxr_linenumber" name="L1615" href="#L1615">1615</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1616" href="#L1616">1616</a> 
+<a class="jxr_linenumber" name="L1617" href="#L1617">1617</a>          <strong 
class="jxr_keyword">if</strong> (implClass.isPresent())
+<a class="jxr_linenumber" name="L1618" href="#L1618">1618</a>                  
<strong class="jxr_keyword">return</strong> 
implClass.get().getPublicConstructor(x -&gt; 
x.hasNumParameters(0)).orElse(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1619" href="#L1619">1619</a> 
+<a class="jxr_linenumber" name="L1620" href="#L1620">1620</a>          <strong 
class="jxr_keyword">if</strong> (isAbstract())
+<a class="jxr_linenumber" name="L1621" href="#L1621">1621</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1622" href="#L1622">1622</a> 
+<a class="jxr_linenumber" name="L1623" href="#L1623">1623</a>          <strong 
class="jxr_keyword">var</strong> numParams = isMemberClass() &amp;&amp; 
isNotStatic() ? 1 : 0;
+<a class="jxr_linenumber" name="L1624" href="#L1624">1624</a>          <strong 
class="jxr_keyword">return</strong> getPublicConstructors()
+<a class="jxr_linenumber" name="L1625" href="#L1625">1625</a>                  
.stream()
+<a class="jxr_linenumber" name="L1626" href="#L1626">1626</a>                  
.filter(x -&gt; x.isPublic() &amp;&amp; x.isNotDeprecated() &amp;&amp; 
x.hasNumParameters(numParams))
+<a class="jxr_linenumber" name="L1627" href="#L1627">1627</a>                  
.findFirst()
+<a class="jxr_linenumber" name="L1628" href="#L1628">1628</a>                  
.orElse(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1629" href="#L1629">1629</a>  }
+<a class="jxr_linenumber" name="L1630" href="#L1630">1630</a> 
+<a class="jxr_linenumber" name="L1631" href="#L1631">1631</a>  <strong 
class="jxr_keyword">private</strong> Property&lt;T,Object&gt; 
findParentProperty() {
+<a class="jxr_linenumber" name="L1632" href="#L1632">1632</a>          <strong 
class="jxr_keyword">var</strong> ap = beanContext.getAnnotationProvider();
+<a class="jxr_linenumber" name="L1633" href="#L1633">1633</a> 
+<a class="jxr_linenumber" name="L1634" href="#L1634">1634</a>          <strong 
class="jxr_keyword">var</strong> s = getAllFields()
+<a class="jxr_linenumber" name="L1635" href="#L1635">1635</a>                  
.stream()
+<a class="jxr_linenumber" name="L1636" href="#L1636">1636</a>                  
.filter(x -&gt; ap.has(ParentProperty.<strong 
class="jxr_keyword">class</strong>, x))
+<a class="jxr_linenumber" name="L1637" href="#L1637">1637</a>                  
.map(x -&gt; x.accessible())
+<a class="jxr_linenumber" name="L1638" href="#L1638">1638</a>                  
.map(x -&gt; Property.&lt;T,Object&gt;create().field(x).build())
+<a class="jxr_linenumber" name="L1639" href="#L1639">1639</a>                  
.findFirst();
+<a class="jxr_linenumber" name="L1640" href="#L1640">1640</a> 
+<a class="jxr_linenumber" name="L1641" href="#L1641">1641</a>          <strong 
class="jxr_keyword">if</strong> (s.isPresent()) <strong 
class="jxr_keyword">return</strong> s.get();
+<a class="jxr_linenumber" name="L1642" href="#L1642">1642</a> 
+<a class="jxr_linenumber" name="L1643" href="#L1643">1643</a>          <strong 
class="jxr_keyword">var</strong> builder = Property.&lt;T,Object&gt;create();
+<a class="jxr_linenumber" name="L1644" href="#L1644">1644</a> 
+<a class="jxr_linenumber" name="L1645" href="#L1645">1645</a>          <em 
class="jxr_comment">// Look for setter method (1 parameter) with 
@ParentProperty</em>
+<a class="jxr_linenumber" name="L1646" href="#L1646">1646</a>          <strong 
class="jxr_keyword">var</strong> setterMethod = getAllMethods()
+<a class="jxr_linenumber" name="L1647" href="#L1647">1647</a>                  
.stream()
+<a class="jxr_linenumber" name="L1648" href="#L1648">1648</a>                  
.filter(x -&gt; ap.has(ParentProperty.<strong 
class="jxr_keyword">class</strong>, x) &amp;&amp; x.hasNumParameters(1))
+<a class="jxr_linenumber" name="L1649" href="#L1649">1649</a>                  
.findFirst();
+<a class="jxr_linenumber" name="L1650" href="#L1650">1650</a> 
+<a class="jxr_linenumber" name="L1651" href="#L1651">1651</a>          <strong 
class="jxr_keyword">if</strong> (setterMethod.isPresent()) {
+<a class="jxr_linenumber" name="L1652" href="#L1652">1652</a>                  
builder.setter(setterMethod.get().accessible());
+<a class="jxr_linenumber" name="L1653" href="#L1653">1653</a> 
+<a class="jxr_linenumber" name="L1654" href="#L1654">1654</a>                  
<em class="jxr_comment">// Try to find a corresponding getter method (even if 
not annotated)</em>
+<a class="jxr_linenumber" name="L1655" href="#L1655">1655</a>                  
<em class="jxr_comment">// If setter is "setParent", look for "getParent" or 
"isParent"</em>
+<a class="jxr_linenumber" name="L1656" href="#L1656">1656</a>                  
<strong class="jxr_keyword">var</strong> setterName = 
setterMethod.get().getSimpleName();
+<a class="jxr_linenumber" name="L1657" href="#L1657">1657</a>                  
<strong class="jxr_keyword">if</strong> (setterName.startsWith(<span 
class="jxr_string">"set"</span>) &amp;&amp; setterName.length() &gt; 3) {
+<a class="jxr_linenumber" name="L1658" href="#L1658">1658</a>                  
        <strong class="jxr_keyword">var</strong> propertyName = 
setterName.substring(3);
+<a class="jxr_linenumber" name="L1659" href="#L1659">1659</a>                  
        <strong class="jxr_keyword">var</strong> getterName1 = <span 
class="jxr_string">"get"</span> + propertyName;
+<a class="jxr_linenumber" name="L1660" href="#L1660">1660</a>                  
        <strong class="jxr_keyword">var</strong> getterName2 = <span 
class="jxr_string">"is"</span> + propertyName;
+<a class="jxr_linenumber" name="L1661" href="#L1661">1661</a> 
+<a class="jxr_linenumber" name="L1662" href="#L1662">1662</a>                  
        <strong class="jxr_keyword">var</strong> getter = getAllMethods()
+<a class="jxr_linenumber" name="L1663" href="#L1663">1663</a>                  
                .stream()
+<a class="jxr_linenumber" name="L1664" href="#L1664">1664</a>                  
                .filter(x -&gt; !x.isStatic() &amp;&amp; x.hasNumParameters(0) 
&amp;&amp;
+<a class="jxr_linenumber" name="L1665" href="#L1665">1665</a>                  
                        (x.hasName(getterName1) || x.hasName(getterName2)) 
&amp;&amp;
+<a class="jxr_linenumber" name="L1666" href="#L1666">1666</a>                  
                        !x.getReturnType().is(Void.TYPE))
+<a class="jxr_linenumber" name="L1667" href="#L1667">1667</a>                  
                .findFirst();
+<a class="jxr_linenumber" name="L1668" href="#L1668">1668</a> 
+<a class="jxr_linenumber" name="L1669" href="#L1669">1669</a>                  
        <strong class="jxr_keyword">if</strong> (getter.isPresent()) {
+<a class="jxr_linenumber" name="L1670" href="#L1670">1670</a>                  
                builder.getter(getter.get().accessible());
+<a class="jxr_linenumber" name="L1671" href="#L1671">1671</a>                  
        } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L1672" href="#L1672">1672</a>                  
                <em class="jxr_comment">// Try to find a field with the 
property name (lowercase first letter)</em>
+<a class="jxr_linenumber" name="L1673" href="#L1673">1673</a>                  
                <strong class="jxr_keyword">var</strong> fieldName = 
Character.toLowerCase(propertyName.charAt(0)) + propertyName.substring(1);
+<a class="jxr_linenumber" name="L1674" href="#L1674">1674</a>                  
                <strong class="jxr_keyword">var</strong> field = getAllFields()
+<a class="jxr_linenumber" name="L1675" href="#L1675">1675</a>                  
                        .stream()
+<a class="jxr_linenumber" name="L1676" href="#L1676">1676</a>                  
                        .filter(x -&gt; !x.isStatic() &amp;&amp; 
x.hasName(fieldName))
+<a class="jxr_linenumber" name="L1677" href="#L1677">1677</a>                  
                        .findFirst();
+<a class="jxr_linenumber" name="L1678" href="#L1678">1678</a> 
+<a class="jxr_linenumber" name="L1679" href="#L1679">1679</a>                  
                <strong class="jxr_keyword">if</strong> (field.isPresent()) {
+<a class="jxr_linenumber" name="L1680" href="#L1680">1680</a>                  
                        <strong class="jxr_keyword">var</strong> f = 
field.get().accessible();
+<a class="jxr_linenumber" name="L1681" href="#L1681">1681</a>                  
                        builder.getter(obj -&gt; f.get(obj));
+<a class="jxr_linenumber" name="L1682" href="#L1682">1682</a>                  
                }
+<a class="jxr_linenumber" name="L1683" href="#L1683">1683</a>                  
        }
+<a class="jxr_linenumber" name="L1684" href="#L1684">1684</a>                  
}
+<a class="jxr_linenumber" name="L1685" href="#L1685">1685</a>          }
+<a class="jxr_linenumber" name="L1686" href="#L1686">1686</a> 
+<a class="jxr_linenumber" name="L1687" href="#L1687">1687</a>          <em 
class="jxr_comment">// Look for getter method (0 parameters, non-void return) 
with @ParentProperty</em>
+<a class="jxr_linenumber" name="L1688" href="#L1688">1688</a>          <strong 
class="jxr_keyword">var</strong> getterMethod = getAllMethods()
+<a class="jxr_linenumber" name="L1689" href="#L1689">1689</a>                  
.stream()
+<a class="jxr_linenumber" name="L1690" href="#L1690">1690</a>                  
.filter(x -&gt; ap.has(ParentProperty.<strong 
class="jxr_keyword">class</strong>, x) &amp;&amp; x.hasNumParameters(0) 
&amp;&amp; !x.getReturnType().is(Void.TYPE))
+<a class="jxr_linenumber" name="L1691" href="#L1691">1691</a>                  
.findFirst();
+<a class="jxr_linenumber" name="L1692" href="#L1692">1692</a> 
+<a class="jxr_linenumber" name="L1693" href="#L1693">1693</a>          <strong 
class="jxr_keyword">if</strong> (getterMethod.isPresent()) {
+<a class="jxr_linenumber" name="L1694" href="#L1694">1694</a>                  
builder.getter(getterMethod.get().accessible());
+<a class="jxr_linenumber" name="L1695" href="#L1695">1695</a>          }
+<a class="jxr_linenumber" name="L1696" href="#L1696">1696</a> 
+<a class="jxr_linenumber" name="L1697" href="#L1697">1697</a>          <em 
class="jxr_comment">// Return null if neither setter nor getter was found</em>
+<a class="jxr_linenumber" name="L1698" href="#L1698">1698</a>          <strong 
class="jxr_keyword">if</strong> (setterMethod.isEmpty() &amp;&amp; 
getterMethod.isEmpty())
+<a class="jxr_linenumber" name="L1699" href="#L1699">1699</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1700" href="#L1700">1700</a> 
+<a class="jxr_linenumber" name="L1701" href="#L1701">1701</a>          <strong 
class="jxr_keyword">return</strong> builder.build();
+<a class="jxr_linenumber" name="L1702" href="#L1702">1702</a>  }
+<a class="jxr_linenumber" name="L1703" href="#L1703">1703</a> 
+<a class="jxr_linenumber" name="L1704" href="#L1704">1704</a>  <strong 
class="jxr_keyword">private</strong> <a name="ConstructorInfo" 
href="../../../org/apache/juneau/commons/reflect/ConstructorInfo.html#ConstructorInfo">ConstructorInfo</a>
 findStringConstructor() {
+<a class="jxr_linenumber" name="L1705" href="#L1705">1705</a> 
+<a class="jxr_linenumber" name="L1706" href="#L1706">1706</a>          <strong 
class="jxr_keyword">if</strong> (is(Object.<strong 
class="jxr_keyword">class</strong>) || isAbstract())
+<a class="jxr_linenumber" name="L1707" href="#L1707">1707</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1708" href="#L1708">1708</a> 
+<a class="jxr_linenumber" name="L1709" href="#L1709">1709</a>          <strong 
class="jxr_keyword">if</strong> (implClass.isPresent())
+<a class="jxr_linenumber" name="L1710" href="#L1710">1710</a>                  
<strong class="jxr_keyword">return</strong> 
implClass.get().getPublicConstructor(x -&gt; x.hasParameterTypes(String.<strong 
class="jxr_keyword">class</strong>)).orElse(<strong 
class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1711" href="#L1711">1711</a> 
+<a class="jxr_linenumber" name="L1712" href="#L1712">1712</a>          <strong 
class="jxr_keyword">if</strong> (isAbstract())
+<a class="jxr_linenumber" name="L1713" href="#L1713">1713</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1714" href="#L1714">1714</a> 
+<a class="jxr_linenumber" name="L1715" href="#L1715">1715</a>          <strong 
class="jxr_keyword">var</strong> numParams = isMemberClass() &amp;&amp; 
isNotStatic() ? 2 : 1;
+<a class="jxr_linenumber" name="L1716" href="#L1716">1716</a>          <strong 
class="jxr_keyword">return</strong> getPublicConstructors()
+<a class="jxr_linenumber" name="L1717" href="#L1717">1717</a>                  
.stream()
+<a class="jxr_linenumber" name="L1718" href="#L1718">1718</a>                  
.filter(x -&gt; x.isPublic() &amp;&amp; x.isNotDeprecated() &amp;&amp; 
x.hasNumParameters(numParams))
+<a class="jxr_linenumber" name="L1719" href="#L1719">1719</a>                  
.filter(x -&gt; x.getParameter(numParams == 2 ? 1 : 0).isType(String.<strong 
class="jxr_keyword">class</strong>))
+<a class="jxr_linenumber" name="L1720" href="#L1720">1720</a>                  
.findFirst()
+<a class="jxr_linenumber" name="L1721" href="#L1721">1721</a>                  
.orElse(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1722" href="#L1722">1722</a>  }
+<a class="jxr_linenumber" name="L1723" href="#L1723">1723</a> 
+<a class="jxr_linenumber" name="L1724" href="#L1724">1724</a>  <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1725" href="#L1725">1725</a> <em 
class="jxr_javadoccomment">   * Returns the {@link ObjectSwap} where the 
specified class is the same/subclass of the normal class of one of the</em>
+<a class="jxr_linenumber" name="L1726" href="#L1726">1726</a> <em 
class="jxr_javadoccomment">   * child POJO swaps associated with this 
class.</em>
+<a class="jxr_linenumber" name="L1727" href="#L1727">1727</a> <em 
class="jxr_javadoccomment">   *</em>
+<a class="jxr_linenumber" name="L1728" href="#L1728">1728</a> <em 
class="jxr_javadoccomment">   * @param normalClass The normal class being 
resolved.</em>
+<a class="jxr_linenumber" name="L1729" href="#L1729">1729</a> <em 
class="jxr_javadoccomment">   * @return The resolved {@link ObjectSwap} or 
&lt;jk&gt;null&lt;/jk&gt; if none were found.</em>
+<a class="jxr_linenumber" name="L1730" href="#L1730">1730</a> <em 
class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="L1731" href="#L1731">1731</a>  <strong 
class="jxr_keyword">protected</strong> ObjectSwap&lt;?,?&gt; 
getChildObjectSwapForSwap(Class&lt;?&gt; normalClass) {
+<a class="jxr_linenumber" name="L1732" href="#L1732">1732</a>          <strong 
class="jxr_keyword">return</strong> childSwapMap.get(normalClass);
+<a class="jxr_linenumber" name="L1733" href="#L1733">1733</a>  }
+<a class="jxr_linenumber" name="L1734" href="#L1734">1734</a> 
+<a class="jxr_linenumber" name="L1735" href="#L1735">1735</a>  <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1736" href="#L1736">1736</a> <em 
class="jxr_javadoccomment">   * Returns the {@link ObjectSwap} where the 
specified class is the same/subclass of the swap class of one of the child</em>
+<a class="jxr_linenumber" name="L1737" href="#L1737">1737</a> <em 
class="jxr_javadoccomment">   * POJO swaps associated with this class.</em>
+<a class="jxr_linenumber" name="L1738" href="#L1738">1738</a> <em 
class="jxr_javadoccomment">   *</em>
+<a class="jxr_linenumber" name="L1739" href="#L1739">1739</a> <em 
class="jxr_javadoccomment">   * @param swapClass The swap class being 
resolved.</em>
+<a class="jxr_linenumber" name="L1740" href="#L1740">1740</a> <em 
class="jxr_javadoccomment">   * @return The resolved {@link ObjectSwap} or 
&lt;jk&gt;null&lt;/jk&gt; if none were found.</em>
+<a class="jxr_linenumber" name="L1741" href="#L1741">1741</a> <em 
class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="L1742" href="#L1742">1742</a>  <strong 
class="jxr_keyword">protected</strong> ObjectSwap&lt;?,?&gt; 
getChildObjectSwapForUnswap(Class&lt;?&gt; swapClass) {
+<a class="jxr_linenumber" name="L1743" href="#L1743">1743</a>          <strong 
class="jxr_keyword">return</strong> childUnswapMap.get(swapClass);
+<a class="jxr_linenumber" name="L1744" href="#L1744">1744</a>  }
+<a class="jxr_linenumber" name="L1745" href="#L1745">1745</a> 
+<a class="jxr_linenumber" name="L1746" href="#L1746">1746</a>  <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1747" href="#L1747">1747</a> <em 
class="jxr_javadoccomment">   * Returns &lt;jk&gt;true&lt;/jk&gt; if this class 
or any child classes has a {@link ObjectSwap} associated with it.</em>
+<a class="jxr_linenumber" name="L1748" href="#L1748">1748</a> <em 
class="jxr_javadoccomment">   *</em>
+<a class="jxr_linenumber" name="L1749" href="#L1749">1749</a> <em 
class="jxr_javadoccomment">   * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L1750" href="#L1750">1750</a> <em 
class="jxr_javadoccomment">   * Used when transforming bean properties to 
prevent having to look up transforms if we know for certain that no</em>
+<a class="jxr_linenumber" name="L1751" href="#L1751">1751</a> <em 
class="jxr_javadoccomment">   * transforms are associated with a bean 
property.</em>
+<a class="jxr_linenumber" name="L1752" href="#L1752">1752</a> <em 
class="jxr_javadoccomment">   *</em>
+<a class="jxr_linenumber" name="L1753" href="#L1753">1753</a> <em 
class="jxr_javadoccomment">   * @return &lt;jk&gt;true&lt;/jk&gt; if this class 
or any child classes has a {@link ObjectSwap} associated with it.</em>
+<a class="jxr_linenumber" name="L1754" href="#L1754">1754</a> <em 
class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="L1755" href="#L1755">1755</a>  <strong 
class="jxr_keyword">protected</strong> <strong 
class="jxr_keyword">boolean</strong> hasChildSwaps() {
+<a class="jxr_linenumber" name="L1756" href="#L1756">1756</a>          <strong 
class="jxr_keyword">return</strong> ! childSwaps.get().isEmpty();
+<a class="jxr_linenumber" name="L1757" href="#L1757">1757</a>  }
+<a class="jxr_linenumber" name="L1758" href="#L1758">1758</a> 
+<a class="jxr_linenumber" name="L1759" href="#L1759">1759</a>  <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1760" href="#L1760">1760</a> <em 
class="jxr_javadoccomment">   * Appends this object as a readable string to the 
specified string builder.</em>
+<a class="jxr_linenumber" name="L1761" href="#L1761">1761</a> <em 
class="jxr_javadoccomment">   *</em>
+<a class="jxr_linenumber" name="L1762" href="#L1762">1762</a> <em 
class="jxr_javadoccomment">   * @param sb The string builder to append this 
object to.</em>
+<a class="jxr_linenumber" name="L1763" href="#L1763">1763</a> <em 
class="jxr_javadoccomment">   * @param simple Print simple class names only (no 
package).</em>
+<a class="jxr_linenumber" name="L1764" href="#L1764">1764</a> <em 
class="jxr_javadoccomment">   * @return The passed-in string builder.</em>
+<a class="jxr_linenumber" name="L1765" href="#L1765">1765</a> <em 
class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="L1766" href="#L1766">1766</a>  <strong 
class="jxr_keyword">protected</strong> StringBuilder toString(StringBuilder sb, 
<strong class="jxr_keyword">boolean</strong> simple) {
+<a class="jxr_linenumber" name="L1767" href="#L1767">1767</a>          <strong 
class="jxr_keyword">var</strong> n = <strong 
class="jxr_keyword">inner</strong>().getName();
+<a class="jxr_linenumber" name="L1768" href="#L1768">1768</a>          <strong 
class="jxr_keyword">if</strong> (simple) {
+<a class="jxr_linenumber" name="L1769" href="#L1769">1769</a>                  
<strong class="jxr_keyword">var</strong> i = n.lastIndexOf('.');
+<a class="jxr_linenumber" name="L1770" href="#L1770">1770</a>                  
n = n.substring(i == -1 ? 0 : i + 1).replace('$', '.');
+<a class="jxr_linenumber" name="L1771" href="#L1771">1771</a>          }
+<a class="jxr_linenumber" name="L1772" href="#L1772">1772</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(ARRAY))
+<a class="jxr_linenumber" name="L1773" href="#L1773">1773</a>                  
<strong class="jxr_keyword">return</strong> elementType.get().toString(sb, 
simple).append('[').append(']');
+<a class="jxr_linenumber" name="L1774" href="#L1774">1774</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(BEANMAP))
+<a class="jxr_linenumber" name="L1775" href="#L1775">1775</a>                  
<strong class="jxr_keyword">return</strong> sb.append(cn(BeanMap.<strong 
class="jxr_keyword">class</strong>)).append('&lt;').append(n).append('&gt;');
+<a class="jxr_linenumber" name="L1776" href="#L1776">1776</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(MAP)) {
+<a class="jxr_linenumber" name="L1777" href="#L1777">1777</a>                  
<strong class="jxr_keyword">var</strong> kvTypes = keyValueTypes.get();
+<a class="jxr_linenumber" name="L1778" href="#L1778">1778</a>                  
<strong class="jxr_keyword">var</strong> kt = kvTypes.optKeyType();
+<a class="jxr_linenumber" name="L1779" href="#L1779">1779</a>                  
<strong class="jxr_keyword">var</strong> vt = kvTypes.optValueType();
+<a class="jxr_linenumber" name="L1780" href="#L1780">1780</a>                  
<strong class="jxr_keyword">if</strong> (kt.isPresent() &amp;&amp; 
vt.isPresent() &amp;&amp; kt.get().isObject() &amp;&amp; vt.get().isObject())
+<a class="jxr_linenumber" name="L1781" href="#L1781">1781</a>                  
        <strong class="jxr_keyword">return</strong> sb.append(n);
+<a class="jxr_linenumber" name="L1782" href="#L1782">1782</a>                  
<strong class="jxr_keyword">return</strong> 
sb.append(n).append('&lt;').append(kt.map(x -&gt; 
x.toString(simple)).orElse(<span 
class="jxr_string">"?"</span>)).append(',').append(vt.map(x -&gt; 
x.toString(simple)).orElse(<span class="jxr_string">"?"</span>)).append('&gt;');
+<a class="jxr_linenumber" name="L1783" href="#L1783">1783</a>          }
+<a class="jxr_linenumber" name="L1784" href="#L1784">1784</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(COLLECTION) || is(Optional.<strong 
class="jxr_keyword">class</strong>)) {
+<a class="jxr_linenumber" name="L1785" href="#L1785">1785</a>                  
<strong class="jxr_keyword">var</strong> et = elementType.get();
+<a class="jxr_linenumber" name="L1786" href="#L1786">1786</a>                  
<strong class="jxr_keyword">return</strong> sb.append(n).append(et != <strong 
class="jxr_keyword">null</strong> &amp;&amp; et.isObject() ? <span 
class="jxr_string">""</span> : <span class="jxr_string">"&lt;"</span> + (et == 
<strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"?"</span> 
: et.toString(simple)) + <span class="jxr_string">"&gt;"</span>);
+<a class="jxr_linenumber" name="L1787" href="#L1787">1787</a>          }
+<a class="jxr_linenumber" name="L1788" href="#L1788">1788</a>          <strong 
class="jxr_keyword">return</strong> sb.append(n);
+<a class="jxr_linenumber" name="L1789" href="#L1789">1789</a>  }
+<a class="jxr_linenumber" name="L1790" href="#L1790">1790</a> 
+<a class="jxr_linenumber" name="L1791" href="#L1791">1791</a>  <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1792" href="#L1792">1792</a> <em 
class="jxr_javadoccomment">   * Causes thread to wait until constructor has 
exited.</em>
+<a class="jxr_linenumber" name="L1793" href="#L1793">1793</a> <em 
class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="L1794" href="#L1794">1794</a>  <strong 
class="jxr_keyword">void</strong> waitForInit() {
+<a class="jxr_linenumber" name="L1795" href="#L1795">1795</a>          <strong 
class="jxr_keyword">try</strong> (<strong class="jxr_keyword">var</strong> x = 
lock.read()) {}
+<a class="jxr_linenumber" name="L1796" href="#L1796">1796</a>  }
+<a class="jxr_linenumber" name="L1797" href="#L1797">1797</a> }
 </pre>
 <hr/>
 <div id="footer">© 2016–2025 <a href="https://www.apache.org/";>The Apache 
Software Foundation</a></div>

Reply via email to