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 b1817999ce Deploy documentation staging from 
79aaf3e2b5876ad053b3e8d954289433571d4e54 
79aaf3e2b5876ad053b3e8d954289433571d4e54
b1817999ce is described below

commit b1817999ce6be763534c21abc5be723f7459fe35
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Sat Dec 6 15:03:09 2025 +0000

    Deploy documentation staging from 79aaf3e2b5876ad053b3e8d954289433571d4e54 
79aaf3e2b5876ad053b3e8d954289433571d4e54
---
 site/xref/org/apache/juneau/ClassMeta.html         | 344 ++++++++++-----------
 .../apache/juneau/commons/reflect/Property.html    | 101 +++---
 .../org/apache/juneau/parser/ParserSession.html    |   4 +-
 3 files changed, 225 insertions(+), 224 deletions(-)

diff --git a/site/xref/org/apache/juneau/ClassMeta.html 
b/site/xref/org/apache/juneau/ClassMeta.html
index ef98f2a65a..56836adac8 100644
--- a/site/xref/org/apache/juneau/ClassMeta.html
+++ b/site/xref/org/apache/juneau/ClassMeta.html
@@ -170,10 +170,10 @@
 <a class="jxr_linenumber" name="L162" href="#L162">162</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
ClassMeta&lt;?&gt; keyType;                                                     
                        <em class="jxr_comment">// If MAP, the key class 
type.</em>
 <a class="jxr_linenumber" name="L163" href="#L163">163</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="L164" href="#L164">164</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
Supplier&lt;MarshalledFilter&gt; marshalledFilter;
-<a class="jxr_linenumber" name="L165" href="#L165">165</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
Supplier&lt;Setter&gt; namePropertySetter;                                      
                        <em class="jxr_comment">// The method to set the name 
on an object (if it has one).</em>
+<a class="jxr_linenumber" name="L165" href="#L165">165</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
Supplier&lt;Property&lt;T,String&gt;&gt; namePropertySetter;                    
                        <em class="jxr_comment">// The method to set the name 
on an object (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;ConstructorInfo&gt; noArgConstructor;                               
                        <em class="jxr_comment">// The no-arg constructor for 
this class (if it has one).</em>
 <a class="jxr_linenumber" name="L167" href="#L167">167</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
String notABeanReason;                                                          
                  <em class="jxr_comment">// If this isn't a bean, the reason 
why.</em>
-<a class="jxr_linenumber" name="L168" href="#L168">168</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
Supplier&lt;Setter&gt; parentPropertySetter;                                    
                        <em class="jxr_comment">// The method to set the parent 
on an object (if it has one).</em>
+<a class="jxr_linenumber" name="L168" href="#L168">168</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
Supplier&lt;Property&lt;T,?&gt;&gt; parentPropertySetter;                       
                   <em class="jxr_comment">// The method to set the parent on 
an object (if it has one).</em>
 <a class="jxr_linenumber" name="L169" href="#L169">169</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
Map&lt;String,Optional&lt;?&gt;&gt; properties = <strong 
class="jxr_keyword">new</strong> ConcurrentHashMap&lt;&gt;();
 <a class="jxr_linenumber" name="L170" href="#L170">170</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
Mutater&lt;String,T&gt; stringMutater;
 <a class="jxr_linenumber" name="L171" href="#L171">171</a>     <strong 
class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> 
Supplier&lt;ConstructorInfo&gt; stringConstructor;                              
                       <em class="jxr_comment">// The X(String) constructor (if 
it has one).</em>
@@ -750,7 +750,7 @@
 <a class="jxr_linenumber" name="L742" href="#L742">742</a> <em 
class="jxr_javadoccomment">      *      The method or field  annotated with 
{@link NameProperty @NameProperty} or &lt;jk&gt;null&lt;/jk&gt; if method does 
not</em>
 <a class="jxr_linenumber" name="L743" href="#L743">743</a> <em 
class="jxr_javadoccomment">      *      exist.</em>
 <a class="jxr_linenumber" name="L744" href="#L744">744</a> <em 
class="jxr_javadoccomment">      */</em>
-<a class="jxr_linenumber" name="L745" href="#L745">745</a>     <strong 
class="jxr_keyword">public</strong> <a name="Setter" 
href="../../../org/apache/juneau/commons/reflect/Setter.html#Setter">Setter</a> 
getNameProperty() { <strong class="jxr_keyword">return</strong> 
namePropertySetter.get(); }
+<a class="jxr_linenumber" name="L745" href="#L745">745</a>     <strong 
class="jxr_keyword">public</strong> Property&lt;T,String&gt; getNameProperty() 
{ <strong class="jxr_keyword">return</strong> namePropertySetter.get(); }
 <a class="jxr_linenumber" name="L746" href="#L746">746</a> 
 <a class="jxr_linenumber" name="L747" href="#L747">747</a>     <em 
class="jxr_javadoccomment">/**</em>
 <a class="jxr_linenumber" name="L748" href="#L748">748</a> <em 
class="jxr_javadoccomment">      * Returns the reason why this class is not a 
bean, or &lt;jk&gt;null&lt;/jk&gt; if it is a bean.</em>
@@ -780,7 +780,7 @@
 <a class="jxr_linenumber" name="L772" href="#L772">772</a> <em 
class="jxr_javadoccomment">      *      The method or field annotated with 
{@link ParentProperty @ParentProperty} or &lt;jk&gt;null&lt;/jk&gt; if method 
does not</em>
 <a class="jxr_linenumber" name="L773" href="#L773">773</a> <em 
class="jxr_javadoccomment">      *      exist.</em>
 <a class="jxr_linenumber" name="L774" href="#L774">774</a> <em 
class="jxr_javadoccomment">      */</em>
-<a class="jxr_linenumber" name="L775" href="#L775">775</a>     <strong 
class="jxr_keyword">public</strong> <a name="Setter" 
href="../../../org/apache/juneau/commons/reflect/Setter.html#Setter">Setter</a> 
getParentProperty() { <strong class="jxr_keyword">return</strong> 
parentPropertySetter.get(); }
+<a class="jxr_linenumber" name="L775" href="#L775">775</a>     <strong 
class="jxr_keyword">public</strong> Property&lt;T,?&gt; getParentProperty() { 
<strong class="jxr_keyword">return</strong> parentPropertySetter.get(); }
 <a class="jxr_linenumber" name="L776" href="#L776">776</a> 
 <a class="jxr_linenumber" name="L777" href="#L777">777</a>     <em 
class="jxr_javadoccomment">/**</em>
 <a class="jxr_linenumber" name="L778" href="#L778">778</a> <em 
class="jxr_javadoccomment">      * Returns a calculated property on this 
context.</em>
@@ -1576,187 +1576,185 @@
 <a class="jxr_linenumber" name="L1568" href="#L1568">1568</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="L1569" href="#L1569">1569</a>  }
 <a class="jxr_linenumber" name="L1570" href="#L1570">1570</a> 
-<a class="jxr_linenumber" name="L1571" href="#L1571">1571</a>  <strong 
class="jxr_keyword">private</strong> <a name="Setter" 
href="../../../org/apache/juneau/commons/reflect/Setter.html#Setter">Setter</a> 
findNamePropertySetter() {
+<a class="jxr_linenumber" name="L1571" href="#L1571">1571</a>  <strong 
class="jxr_keyword">private</strong> Property&lt;T,String&gt; 
findNamePropertySetter() {
 <a class="jxr_linenumber" name="L1572" href="#L1572">1572</a>          <strong 
class="jxr_keyword">var</strong> ap = beanContext.getAnnotationProvider();
 <a class="jxr_linenumber" name="L1573" href="#L1573">1573</a> 
 <a class="jxr_linenumber" name="L1574" href="#L1574">1574</a>          <strong 
class="jxr_keyword">var</strong> s = getAllFields()
 <a class="jxr_linenumber" name="L1575" href="#L1575">1575</a>                  
.stream()
-<a class="jxr_linenumber" name="L1576" href="#L1576">1576</a>                  
.filter(x -&gt; x.isStatic() &amp;&amp; ap.has(NameProperty.<strong 
class="jxr_keyword">class</strong>, x))
+<a class="jxr_linenumber" name="L1576" href="#L1576">1576</a>                  
.filter(x -&gt; x.getFieldType().is(String.<strong 
class="jxr_keyword">class</strong>) &amp;&amp; ap.has(NameProperty.<strong 
class="jxr_keyword">class</strong>, x))
 <a class="jxr_linenumber" name="L1577" href="#L1577">1577</a>                  
.map(x -&gt; x.accessible())
-<a class="jxr_linenumber" name="L1578" href="#L1578">1578</a>                  
.map(x -&gt; <strong class="jxr_keyword">new</strong> Setter.FieldSetter(x))
+<a class="jxr_linenumber" name="L1578" href="#L1578">1578</a>                  
.map(x -&gt; Property.&lt;T,String&gt;create().field(x).build())
 <a class="jxr_linenumber" name="L1579" href="#L1579">1579</a>                  
.findFirst();
 <a class="jxr_linenumber" name="L1580" href="#L1580">1580</a> 
 <a class="jxr_linenumber" name="L1581" href="#L1581">1581</a>          <strong 
class="jxr_keyword">if</strong> (s.isPresent()) <strong 
class="jxr_keyword">return</strong> s.get();
 <a class="jxr_linenumber" name="L1582" href="#L1582">1582</a> 
 <a class="jxr_linenumber" name="L1583" href="#L1583">1583</a>          <strong 
class="jxr_keyword">return</strong> getAllMethods()
 <a class="jxr_linenumber" name="L1584" href="#L1584">1584</a>                  
.stream()
-<a class="jxr_linenumber" name="L1585" href="#L1585">1585</a>                  
.filter(x -&gt; x.isStatic() || x.hasNumParameters(1))
-<a class="jxr_linenumber" name="L1586" href="#L1586">1586</a>                  
.filter(x -&gt; ap.has(NameProperty.<strong class="jxr_keyword">class</strong>, 
x))
-<a class="jxr_linenumber" name="L1587" href="#L1587">1587</a>                  
.map(x -&gt; x.accessible())
-<a class="jxr_linenumber" name="L1588" href="#L1588">1588</a>                  
.map(x -&gt; <strong class="jxr_keyword">new</strong> Setter.MethodSetter(x))
-<a class="jxr_linenumber" name="L1589" href="#L1589">1589</a>                  
.findFirst()
-<a class="jxr_linenumber" name="L1590" href="#L1590">1590</a>                  
.orElse(<strong class="jxr_keyword">null</strong>);
-<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>  <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="L1594" href="#L1594">1594</a> 
-<a class="jxr_linenumber" name="L1595" href="#L1595">1595</a>          <strong 
class="jxr_keyword">if</strong> (is(Object.<strong 
class="jxr_keyword">class</strong>))
-<a class="jxr_linenumber" name="L1596" href="#L1596">1596</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1597" href="#L1597">1597</a> 
-<a class="jxr_linenumber" name="L1598" href="#L1598">1598</a>          <strong 
class="jxr_keyword">if</strong> (implClass2.get() != <strong 
class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L1599" href="#L1599">1599</a>                  
<strong class="jxr_keyword">return</strong> 
implClass2.get().getPublicConstructor(x -&gt; 
x.hasNumParameters(0)).orElse(<strong class="jxr_keyword">null</strong>);
-<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> (isAbstract())
-<a class="jxr_linenumber" name="L1602" href="#L1602">1602</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1603" href="#L1603">1603</a> 
-<a class="jxr_linenumber" name="L1604" href="#L1604">1604</a>          <strong 
class="jxr_keyword">var</strong> numParams = isMemberClass() &amp;&amp; 
isNotStatic() ? 1 : 0;
-<a class="jxr_linenumber" name="L1605" href="#L1605">1605</a>          <strong 
class="jxr_keyword">return</strong> getPublicConstructors()
-<a class="jxr_linenumber" name="L1606" href="#L1606">1606</a>                  
.stream()
-<a class="jxr_linenumber" name="L1607" href="#L1607">1607</a>                  
.filter(x -&gt; x.isPublic() &amp;&amp; x.isNotDeprecated() &amp;&amp; 
x.hasNumParameters(numParams))
-<a class="jxr_linenumber" name="L1608" href="#L1608">1608</a>                  
.findFirst()
-<a class="jxr_linenumber" name="L1609" href="#L1609">1609</a>                  
.orElse(<strong class="jxr_keyword">null</strong>);
-<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="Setter" 
href="../../../org/apache/juneau/commons/reflect/Setter.html#Setter">Setter</a> 
findParentPropertySetter() {
-<a class="jxr_linenumber" name="L1613" href="#L1613">1613</a>          <strong 
class="jxr_keyword">var</strong> ap = beanContext.getAnnotationProvider();
-<a class="jxr_linenumber" name="L1614" href="#L1614">1614</a> 
-<a class="jxr_linenumber" name="L1615" href="#L1615">1615</a>          <strong 
class="jxr_keyword">var</strong> s = getAllFields()
-<a class="jxr_linenumber" name="L1616" href="#L1616">1616</a>                  
.stream()
-<a class="jxr_linenumber" name="L1617" href="#L1617">1617</a>                  
.filter(x -&gt; x.isStatic() &amp;&amp; ap.has(ParentProperty.<strong 
class="jxr_keyword">class</strong>, x))
-<a class="jxr_linenumber" name="L1618" href="#L1618">1618</a>                  
.map(x -&gt; x.accessible())
-<a class="jxr_linenumber" name="L1619" href="#L1619">1619</a>                  
.map(x -&gt; <strong class="jxr_keyword">new</strong> Setter.FieldSetter(x))
-<a class="jxr_linenumber" name="L1620" href="#L1620">1620</a>                  
.findFirst();
-<a class="jxr_linenumber" name="L1621" href="#L1621">1621</a> 
-<a class="jxr_linenumber" name="L1622" href="#L1622">1622</a>          <strong 
class="jxr_keyword">if</strong> (s.isPresent()) <strong 
class="jxr_keyword">return</strong> s.get();
-<a class="jxr_linenumber" name="L1623" href="#L1623">1623</a> 
-<a class="jxr_linenumber" name="L1624" href="#L1624">1624</a>          <strong 
class="jxr_keyword">return</strong> getAllMethods()
-<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.isStatic() || x.hasNumParameters(1))
-<a class="jxr_linenumber" name="L1627" href="#L1627">1627</a>                  
.filter(x -&gt; ap.has(ParentProperty.<strong 
class="jxr_keyword">class</strong>, x))
-<a class="jxr_linenumber" name="L1628" href="#L1628">1628</a>                  
.map(x -&gt; x.accessible())
-<a class="jxr_linenumber" name="L1629" href="#L1629">1629</a>                  
.map(x -&gt; <strong class="jxr_keyword">new</strong> Setter.MethodSetter(x))
-<a class="jxr_linenumber" name="L1630" href="#L1630">1630</a>                  
.findFirst()
-<a class="jxr_linenumber" name="L1631" href="#L1631">1631</a>                  
.orElse(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1632" href="#L1632">1632</a>  }
+<a class="jxr_linenumber" name="L1585" href="#L1585">1585</a>                  
.filter(x -&gt; ap.has(NameProperty.<strong class="jxr_keyword">class</strong>, 
x) &amp;&amp; x.hasNumParameters(1))
+<a class="jxr_linenumber" name="L1586" href="#L1586">1586</a>                  
.map(x -&gt; x.accessible())
+<a class="jxr_linenumber" name="L1587" href="#L1587">1587</a>                  
.map(x -&gt; Property.&lt;T,String&gt;create().setter(x).build())
+<a class="jxr_linenumber" name="L1588" href="#L1588">1588</a>                  
.findFirst()
+<a class="jxr_linenumber" name="L1589" href="#L1589">1589</a>                  
.orElse(<strong class="jxr_keyword">null</strong>);
+<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>  <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="L1593" href="#L1593">1593</a> 
+<a class="jxr_linenumber" name="L1594" href="#L1594">1594</a>          <strong 
class="jxr_keyword">if</strong> (is(Object.<strong 
class="jxr_keyword">class</strong>))
+<a class="jxr_linenumber" name="L1595" href="#L1595">1595</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1596" href="#L1596">1596</a> 
+<a class="jxr_linenumber" name="L1597" href="#L1597">1597</a>          <strong 
class="jxr_keyword">if</strong> (implClass2.get() != <strong 
class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L1598" href="#L1598">1598</a>                  
<strong class="jxr_keyword">return</strong> 
implClass2.get().getPublicConstructor(x -&gt; 
x.hasNumParameters(0)).orElse(<strong class="jxr_keyword">null</strong>);
+<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> (isAbstract())
+<a class="jxr_linenumber" name="L1601" href="#L1601">1601</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1602" href="#L1602">1602</a> 
+<a class="jxr_linenumber" name="L1603" href="#L1603">1603</a>          <strong 
class="jxr_keyword">var</strong> numParams = isMemberClass() &amp;&amp; 
isNotStatic() ? 1 : 0;
+<a class="jxr_linenumber" name="L1604" href="#L1604">1604</a>          <strong 
class="jxr_keyword">return</strong> getPublicConstructors()
+<a class="jxr_linenumber" name="L1605" href="#L1605">1605</a>                  
.stream()
+<a class="jxr_linenumber" name="L1606" href="#L1606">1606</a>                  
.filter(x -&gt; x.isPublic() &amp;&amp; x.isNotDeprecated() &amp;&amp; 
x.hasNumParameters(numParams))
+<a class="jxr_linenumber" name="L1607" href="#L1607">1607</a>                  
.findFirst()
+<a class="jxr_linenumber" name="L1608" href="#L1608">1608</a>                  
.orElse(<strong class="jxr_keyword">null</strong>);
+<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> Property&lt;T,?&gt; 
findParentPropertySetter() {
+<a class="jxr_linenumber" name="L1612" href="#L1612">1612</a>          <strong 
class="jxr_keyword">var</strong> ap = beanContext.getAnnotationProvider();
+<a class="jxr_linenumber" name="L1613" href="#L1613">1613</a> 
+<a class="jxr_linenumber" name="L1614" href="#L1614">1614</a>          <strong 
class="jxr_keyword">var</strong> s = getAllFields()
+<a class="jxr_linenumber" name="L1615" href="#L1615">1615</a>                  
.stream()
+<a class="jxr_linenumber" name="L1616" href="#L1616">1616</a>                  
.filter(x -&gt; ap.has(ParentProperty.<strong 
class="jxr_keyword">class</strong>, x))
+<a class="jxr_linenumber" name="L1617" href="#L1617">1617</a>                  
.map(x -&gt; x.accessible())
+<a class="jxr_linenumber" name="L1618" href="#L1618">1618</a>                  
.map(x -&gt; Property.&lt;T,Object&gt;create().field(x).build())
+<a class="jxr_linenumber" name="L1619" href="#L1619">1619</a>                  
.findFirst();
+<a class="jxr_linenumber" name="L1620" href="#L1620">1620</a> 
+<a class="jxr_linenumber" name="L1621" href="#L1621">1621</a>          <strong 
class="jxr_keyword">if</strong> (s.isPresent()) <strong 
class="jxr_keyword">return</strong> s.get();
+<a class="jxr_linenumber" name="L1622" href="#L1622">1622</a> 
+<a class="jxr_linenumber" name="L1623" href="#L1623">1623</a>          <strong 
class="jxr_keyword">return</strong> getAllMethods()
+<a class="jxr_linenumber" name="L1624" href="#L1624">1624</a>                  
.stream()
+<a class="jxr_linenumber" name="L1625" href="#L1625">1625</a>                  
.filter(x -&gt; ap.has(ParentProperty.<strong 
class="jxr_keyword">class</strong>, x) &amp;&amp; x.hasNumParameters(1))
+<a class="jxr_linenumber" name="L1626" href="#L1626">1626</a>                  
.map(x -&gt; x.accessible())
+<a class="jxr_linenumber" name="L1627" href="#L1627">1627</a>                  
.map(x -&gt; Property.&lt;T,Object&gt;create().setter(x).build())
+<a class="jxr_linenumber" name="L1628" href="#L1628">1628</a>                  
.findFirst()
+<a class="jxr_linenumber" name="L1629" href="#L1629">1629</a>                  
.orElse(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1630" href="#L1630">1630</a>  }
+<a class="jxr_linenumber" name="L1631" href="#L1631">1631</a> 
+<a class="jxr_linenumber" name="L1632" href="#L1632">1632</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="L1633" href="#L1633">1633</a> 
-<a class="jxr_linenumber" name="L1634" href="#L1634">1634</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="L1635" href="#L1635">1635</a> 
-<a class="jxr_linenumber" name="L1636" href="#L1636">1636</a>          <strong 
class="jxr_keyword">if</strong> (is(Object.<strong 
class="jxr_keyword">class</strong>) || isAbstract())
-<a class="jxr_linenumber" name="L1637" href="#L1637">1637</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1638" href="#L1638">1638</a> 
-<a class="jxr_linenumber" name="L1639" href="#L1639">1639</a>          <strong 
class="jxr_keyword">if</strong> (implClass2.get() != <strong 
class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L1640" href="#L1640">1640</a>                  
<strong class="jxr_keyword">return</strong> 
implClass2.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="L1641" href="#L1641">1641</a> 
-<a class="jxr_linenumber" name="L1642" href="#L1642">1642</a>          <strong 
class="jxr_keyword">if</strong> (isAbstract())
-<a class="jxr_linenumber" name="L1643" href="#L1643">1643</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1644" href="#L1644">1644</a> 
-<a class="jxr_linenumber" name="L1645" href="#L1645">1645</a>          <strong 
class="jxr_keyword">var</strong> numParams = isMemberClass() &amp;&amp; 
isNotStatic() ? 2 : 1;
-<a class="jxr_linenumber" name="L1646" href="#L1646">1646</a>          <strong 
class="jxr_keyword">return</strong> getPublicConstructors()
-<a class="jxr_linenumber" name="L1647" href="#L1647">1647</a>                  
.stream()
-<a class="jxr_linenumber" name="L1648" href="#L1648">1648</a>                  
.filter(x -&gt; x.isPublic() &amp;&amp; x.isNotDeprecated() &amp;&amp; 
x.hasNumParameters(numParams))
-<a class="jxr_linenumber" name="L1649" href="#L1649">1649</a>                  
.filter(x -&gt; x.getParameter(numParams == 2 ? 1 : 0).isType(String.<strong 
class="jxr_keyword">class</strong>))
-<a class="jxr_linenumber" name="L1650" href="#L1650">1650</a>                  
.findFirst()
-<a class="jxr_linenumber" name="L1651" href="#L1651">1651</a>                  
.orElse(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L1652" href="#L1652">1652</a>  }
-<a class="jxr_linenumber" name="L1653" href="#L1653">1653</a> 
-<a class="jxr_linenumber" name="L1654" href="#L1654">1654</a>  <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1655" href="#L1655">1655</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="L1656" href="#L1656">1656</a> <em 
class="jxr_javadoccomment">   * child POJO swaps associated with this 
class.</em>
-<a class="jxr_linenumber" name="L1657" href="#L1657">1657</a> <em 
class="jxr_javadoccomment">   *</em>
-<a class="jxr_linenumber" name="L1658" href="#L1658">1658</a> <em 
class="jxr_javadoccomment">   * @param normalClass The normal class being 
resolved.</em>
-<a class="jxr_linenumber" name="L1659" href="#L1659">1659</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="L1660" href="#L1660">1660</a> <em 
class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="L1661" href="#L1661">1661</a>  <strong 
class="jxr_keyword">protected</strong> ObjectSwap&lt;?,?&gt; 
getChildObjectSwapForSwap(Class&lt;?&gt; normalClass) {
-<a class="jxr_linenumber" name="L1662" href="#L1662">1662</a>          <strong 
class="jxr_keyword">if</strong> (nn(childSwapMap)) {
-<a class="jxr_linenumber" name="L1663" href="#L1663">1663</a>                  
<strong class="jxr_keyword">var</strong> s = childSwapMap.get(normalClass);
-<a class="jxr_linenumber" name="L1664" href="#L1664">1664</a>                  
<strong class="jxr_keyword">if</strong> (s == <strong 
class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L1665" href="#L1665">1665</a>                  
        <strong class="jxr_keyword">for</strong> (<strong 
class="jxr_keyword">var</strong> f : childSwaps)
-<a class="jxr_linenumber" name="L1666" href="#L1666">1666</a>                  
                <strong class="jxr_keyword">if</strong> (s == <strong 
class="jxr_keyword">null</strong> &amp;&amp; 
f.getNormalClass().isParentOf(normalClass))
-<a class="jxr_linenumber" name="L1667" href="#L1667">1667</a>                  
                        s = f;
-<a class="jxr_linenumber" name="L1668" href="#L1668">1668</a>                  
        <strong class="jxr_keyword">if</strong> (s == <strong 
class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L1669" href="#L1669">1669</a>                  
                s = ObjectSwap.NULL;
-<a class="jxr_linenumber" name="L1670" href="#L1670">1670</a>                  
        <strong class="jxr_keyword">var</strong> s2 = 
childSwapMap.putIfAbsent(normalClass, s);
-<a class="jxr_linenumber" name="L1671" href="#L1671">1671</a>                  
        <strong class="jxr_keyword">if</strong> (nn(s2))
-<a class="jxr_linenumber" name="L1672" href="#L1672">1672</a>                  
                s = s2;
-<a class="jxr_linenumber" name="L1673" href="#L1673">1673</a>                  
}
-<a class="jxr_linenumber" name="L1674" href="#L1674">1674</a>                  
<strong class="jxr_keyword">if</strong> (s == ObjectSwap.NULL)
-<a class="jxr_linenumber" name="L1675" href="#L1675">1675</a>                  
        <strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1676" href="#L1676">1676</a>                  
<strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L1677" href="#L1677">1677</a>          }
-<a class="jxr_linenumber" name="L1678" href="#L1678">1678</a>          <strong 
class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1679" href="#L1679">1679</a>  }
-<a class="jxr_linenumber" name="L1680" href="#L1680">1680</a> 
-<a class="jxr_linenumber" name="L1681" href="#L1681">1681</a>  <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1682" href="#L1682">1682</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="L1683" href="#L1683">1683</a> <em 
class="jxr_javadoccomment">   * POJO swaps associated with this class.</em>
-<a class="jxr_linenumber" name="L1684" href="#L1684">1684</a> <em 
class="jxr_javadoccomment">   *</em>
-<a class="jxr_linenumber" name="L1685" href="#L1685">1685</a> <em 
class="jxr_javadoccomment">   * @param swapClass The swap class being 
resolved.</em>
-<a class="jxr_linenumber" name="L1686" href="#L1686">1686</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="L1687" href="#L1687">1687</a> <em 
class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="L1688" href="#L1688">1688</a>  <strong 
class="jxr_keyword">protected</strong> ObjectSwap&lt;?,?&gt; 
getChildObjectSwapForUnswap(Class&lt;?&gt; swapClass) {
-<a class="jxr_linenumber" name="L1689" href="#L1689">1689</a>          <strong 
class="jxr_keyword">if</strong> (nn(childUnswapMap)) {
-<a class="jxr_linenumber" name="L1690" href="#L1690">1690</a>                  
<strong class="jxr_keyword">var</strong> s = childUnswapMap.get(swapClass);
-<a class="jxr_linenumber" name="L1691" href="#L1691">1691</a>                  
<strong class="jxr_keyword">if</strong> (s == <strong 
class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L1692" href="#L1692">1692</a>                  
        <strong class="jxr_keyword">for</strong> (<strong 
class="jxr_keyword">var</strong> f : childSwaps)
-<a class="jxr_linenumber" name="L1693" href="#L1693">1693</a>                  
                <strong class="jxr_keyword">if</strong> (s == <strong 
class="jxr_keyword">null</strong> &amp;&amp; 
f.getSwapClass().isParentOf(swapClass))
-<a class="jxr_linenumber" name="L1694" href="#L1694">1694</a>                  
                        s = f;
-<a class="jxr_linenumber" name="L1695" href="#L1695">1695</a>                  
        <strong class="jxr_keyword">if</strong> (s == <strong 
class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L1696" href="#L1696">1696</a>                  
                s = ObjectSwap.NULL;
-<a class="jxr_linenumber" name="L1697" href="#L1697">1697</a>                  
        <strong class="jxr_keyword">var</strong> s2 = 
childUnswapMap.putIfAbsent(swapClass, s);
-<a class="jxr_linenumber" name="L1698" href="#L1698">1698</a>                  
        <strong class="jxr_keyword">if</strong> (nn(s2))
-<a class="jxr_linenumber" name="L1699" href="#L1699">1699</a>                  
                s = s2;
-<a class="jxr_linenumber" name="L1700" href="#L1700">1700</a>                  
}
-<a class="jxr_linenumber" name="L1701" href="#L1701">1701</a>                  
<strong class="jxr_keyword">if</strong> (s == ObjectSwap.NULL)
-<a class="jxr_linenumber" name="L1702" href="#L1702">1702</a>                  
        <strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1703" href="#L1703">1703</a>                  
<strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L1704" href="#L1704">1704</a>          }
-<a class="jxr_linenumber" name="L1705" href="#L1705">1705</a>          <strong 
class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L1706" href="#L1706">1706</a>  }
-<a class="jxr_linenumber" name="L1707" href="#L1707">1707</a> 
-<a class="jxr_linenumber" name="L1708" href="#L1708">1708</a>  <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1709" href="#L1709">1709</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="L1710" href="#L1710">1710</a> <em 
class="jxr_javadoccomment">   *</em>
-<a class="jxr_linenumber" name="L1711" href="#L1711">1711</a> <em 
class="jxr_javadoccomment">   * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L1712" href="#L1712">1712</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="L1713" href="#L1713">1713</a> <em 
class="jxr_javadoccomment">   * transforms are associated with a bean 
property.</em>
-<a class="jxr_linenumber" name="L1714" href="#L1714">1714</a> <em 
class="jxr_javadoccomment">   *</em>
-<a class="jxr_linenumber" name="L1715" href="#L1715">1715</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="L1716" href="#L1716">1716</a> <em 
class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="L1717" href="#L1717">1717</a>  <strong 
class="jxr_keyword">protected</strong> <strong 
class="jxr_keyword">boolean</strong> hasChildSwaps() {
-<a class="jxr_linenumber" name="L1718" href="#L1718">1718</a>          <strong 
class="jxr_keyword">return</strong> nn(childSwaps);
-<a class="jxr_linenumber" name="L1719" href="#L1719">1719</a>  }
-<a class="jxr_linenumber" name="L1720" href="#L1720">1720</a> 
-<a class="jxr_linenumber" name="L1721" href="#L1721">1721</a>  <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L1722" href="#L1722">1722</a> <em 
class="jxr_javadoccomment">   * Appends this object as a readable string to the 
specified string builder.</em>
-<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">   * @param sb The string builder to append this 
object to.</em>
-<a class="jxr_linenumber" name="L1725" href="#L1725">1725</a> <em 
class="jxr_javadoccomment">   * @param simple Print simple class names only (no 
package).</em>
-<a class="jxr_linenumber" name="L1726" href="#L1726">1726</a> <em 
class="jxr_javadoccomment">   * @return The passed-in string builder.</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>  <strong 
class="jxr_keyword">protected</strong> StringBuilder toString(StringBuilder sb, 
<strong class="jxr_keyword">boolean</strong> simple) {
-<a class="jxr_linenumber" name="L1729" href="#L1729">1729</a>          <strong 
class="jxr_keyword">var</strong> n = <strong 
class="jxr_keyword">inner</strong>().getName();
-<a class="jxr_linenumber" name="L1730" href="#L1730">1730</a>          <strong 
class="jxr_keyword">if</strong> (simple) {
-<a class="jxr_linenumber" name="L1731" href="#L1731">1731</a>                  
<strong class="jxr_keyword">var</strong> i = n.lastIndexOf('.');
-<a class="jxr_linenumber" name="L1732" href="#L1732">1732</a>                  
n = n.substring(i == -1 ? 0 : i + 1).replace('$', '.');
-<a class="jxr_linenumber" name="L1733" href="#L1733">1733</a>          }
-<a class="jxr_linenumber" name="L1734" href="#L1734">1734</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(ARRAY))
-<a class="jxr_linenumber" name="L1735" href="#L1735">1735</a>                  
<strong class="jxr_keyword">return</strong> elementType.toString(sb, 
simple).append('[').append(']');
-<a class="jxr_linenumber" name="L1736" href="#L1736">1736</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(BEANMAP))
-<a class="jxr_linenumber" name="L1737" href="#L1737">1737</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="L1738" href="#L1738">1738</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(MAP))
-<a class="jxr_linenumber" name="L1739" href="#L1739">1739</a>                  
<strong class="jxr_keyword">return</strong> 
sb.append(n).append(keyType.isObject() &amp;&amp; valueType.isObject() ? <span 
class="jxr_string">""</span> : <span class="jxr_string">"&lt;"</span> + 
keyType.toString(simple) + <span class="jxr_string">","</span> + 
valueType.toString(simple) + <span class="jxr_string">"&gt;"</span>);
-<a class="jxr_linenumber" name="L1740" href="#L1740">1740</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(COLLECTION) || is(Optional.<strong 
class="jxr_keyword">class</strong>))
-<a class="jxr_linenumber" name="L1741" href="#L1741">1741</a>                  
<strong class="jxr_keyword">return</strong> 
sb.append(n).append(elementType.isObject() ? <span class="jxr_string">""</span> 
: <span class="jxr_string">"&lt;"</span> + elementType.toString(simple) + <span 
class="jxr_string">"&gt;"</span>);
-<a class="jxr_linenumber" name="L1742" href="#L1742">1742</a>          <strong 
class="jxr_keyword">return</strong> sb.append(n);
-<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">   * Causes thread to wait until constructor has 
exited.</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>  <strong 
class="jxr_keyword">void</strong> waitForInit() {
-<a class="jxr_linenumber" name="L1749" href="#L1749">1749</a>          <strong 
class="jxr_keyword">try</strong> (<strong class="jxr_keyword">var</strong> x = 
lock.read()) {}
-<a class="jxr_linenumber" name="L1750" href="#L1750">1750</a>  }
-<a class="jxr_linenumber" name="L1751" href="#L1751">1751</a> }
+<a class="jxr_linenumber" name="L1634" href="#L1634">1634</a>          <strong 
class="jxr_keyword">if</strong> (is(Object.<strong 
class="jxr_keyword">class</strong>) || isAbstract())
+<a class="jxr_linenumber" name="L1635" href="#L1635">1635</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1636" href="#L1636">1636</a> 
+<a class="jxr_linenumber" name="L1637" href="#L1637">1637</a>          <strong 
class="jxr_keyword">if</strong> (implClass2.get() != <strong 
class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L1638" href="#L1638">1638</a>                  
<strong class="jxr_keyword">return</strong> 
implClass2.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="L1639" href="#L1639">1639</a> 
+<a class="jxr_linenumber" name="L1640" href="#L1640">1640</a>          <strong 
class="jxr_keyword">if</strong> (isAbstract())
+<a class="jxr_linenumber" name="L1641" href="#L1641">1641</a>                  
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<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> numParams = isMemberClass() &amp;&amp; 
isNotStatic() ? 2 : 1;
+<a class="jxr_linenumber" name="L1644" href="#L1644">1644</a>          <strong 
class="jxr_keyword">return</strong> getPublicConstructors()
+<a class="jxr_linenumber" name="L1645" href="#L1645">1645</a>                  
.stream()
+<a class="jxr_linenumber" name="L1646" href="#L1646">1646</a>                  
.filter(x -&gt; x.isPublic() &amp;&amp; x.isNotDeprecated() &amp;&amp; 
x.hasNumParameters(numParams))
+<a class="jxr_linenumber" name="L1647" href="#L1647">1647</a>                  
.filter(x -&gt; x.getParameter(numParams == 2 ? 1 : 0).isType(String.<strong 
class="jxr_keyword">class</strong>))
+<a class="jxr_linenumber" name="L1648" href="#L1648">1648</a>                  
.findFirst()
+<a class="jxr_linenumber" name="L1649" href="#L1649">1649</a>                  
.orElse(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L1650" href="#L1650">1650</a>  }
+<a class="jxr_linenumber" name="L1651" href="#L1651">1651</a> 
+<a class="jxr_linenumber" name="L1652" href="#L1652">1652</a>  <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1653" href="#L1653">1653</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="L1654" href="#L1654">1654</a> <em 
class="jxr_javadoccomment">   * child POJO swaps associated with this 
class.</em>
+<a class="jxr_linenumber" name="L1655" href="#L1655">1655</a> <em 
class="jxr_javadoccomment">   *</em>
+<a class="jxr_linenumber" name="L1656" href="#L1656">1656</a> <em 
class="jxr_javadoccomment">   * @param normalClass The normal class being 
resolved.</em>
+<a class="jxr_linenumber" name="L1657" href="#L1657">1657</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="L1658" href="#L1658">1658</a> <em 
class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="L1659" href="#L1659">1659</a>  <strong 
class="jxr_keyword">protected</strong> ObjectSwap&lt;?,?&gt; 
getChildObjectSwapForSwap(Class&lt;?&gt; normalClass) {
+<a class="jxr_linenumber" name="L1660" href="#L1660">1660</a>          <strong 
class="jxr_keyword">if</strong> (nn(childSwapMap)) {
+<a class="jxr_linenumber" name="L1661" href="#L1661">1661</a>                  
<strong class="jxr_keyword">var</strong> s = childSwapMap.get(normalClass);
+<a class="jxr_linenumber" name="L1662" href="#L1662">1662</a>                  
<strong class="jxr_keyword">if</strong> (s == <strong 
class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L1663" href="#L1663">1663</a>                  
        <strong class="jxr_keyword">for</strong> (<strong 
class="jxr_keyword">var</strong> f : childSwaps)
+<a class="jxr_linenumber" name="L1664" href="#L1664">1664</a>                  
                <strong class="jxr_keyword">if</strong> (s == <strong 
class="jxr_keyword">null</strong> &amp;&amp; 
f.getNormalClass().isParentOf(normalClass))
+<a class="jxr_linenumber" name="L1665" href="#L1665">1665</a>                  
                        s = f;
+<a class="jxr_linenumber" name="L1666" href="#L1666">1666</a>                  
        <strong class="jxr_keyword">if</strong> (s == <strong 
class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L1667" href="#L1667">1667</a>                  
                s = ObjectSwap.NULL;
+<a class="jxr_linenumber" name="L1668" href="#L1668">1668</a>                  
        <strong class="jxr_keyword">var</strong> s2 = 
childSwapMap.putIfAbsent(normalClass, s);
+<a class="jxr_linenumber" name="L1669" href="#L1669">1669</a>                  
        <strong class="jxr_keyword">if</strong> (nn(s2))
+<a class="jxr_linenumber" name="L1670" href="#L1670">1670</a>                  
                s = s2;
+<a class="jxr_linenumber" name="L1671" href="#L1671">1671</a>                  
}
+<a class="jxr_linenumber" name="L1672" href="#L1672">1672</a>                  
<strong class="jxr_keyword">if</strong> (s == ObjectSwap.NULL)
+<a class="jxr_linenumber" name="L1673" href="#L1673">1673</a>                  
        <strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1674" href="#L1674">1674</a>                  
<strong class="jxr_keyword">return</strong> s;
+<a class="jxr_linenumber" name="L1675" href="#L1675">1675</a>          }
+<a class="jxr_linenumber" name="L1676" href="#L1676">1676</a>          <strong 
class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1677" href="#L1677">1677</a>  }
+<a class="jxr_linenumber" name="L1678" href="#L1678">1678</a> 
+<a class="jxr_linenumber" name="L1679" href="#L1679">1679</a>  <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1680" href="#L1680">1680</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="L1681" href="#L1681">1681</a> <em 
class="jxr_javadoccomment">   * POJO swaps associated with this class.</em>
+<a class="jxr_linenumber" name="L1682" href="#L1682">1682</a> <em 
class="jxr_javadoccomment">   *</em>
+<a class="jxr_linenumber" name="L1683" href="#L1683">1683</a> <em 
class="jxr_javadoccomment">   * @param swapClass The swap class being 
resolved.</em>
+<a class="jxr_linenumber" name="L1684" href="#L1684">1684</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="L1685" href="#L1685">1685</a> <em 
class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="L1686" href="#L1686">1686</a>  <strong 
class="jxr_keyword">protected</strong> ObjectSwap&lt;?,?&gt; 
getChildObjectSwapForUnswap(Class&lt;?&gt; swapClass) {
+<a class="jxr_linenumber" name="L1687" href="#L1687">1687</a>          <strong 
class="jxr_keyword">if</strong> (nn(childUnswapMap)) {
+<a class="jxr_linenumber" name="L1688" href="#L1688">1688</a>                  
<strong class="jxr_keyword">var</strong> s = childUnswapMap.get(swapClass);
+<a class="jxr_linenumber" name="L1689" href="#L1689">1689</a>                  
<strong class="jxr_keyword">if</strong> (s == <strong 
class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L1690" href="#L1690">1690</a>                  
        <strong class="jxr_keyword">for</strong> (<strong 
class="jxr_keyword">var</strong> f : childSwaps)
+<a class="jxr_linenumber" name="L1691" href="#L1691">1691</a>                  
                <strong class="jxr_keyword">if</strong> (s == <strong 
class="jxr_keyword">null</strong> &amp;&amp; 
f.getSwapClass().isParentOf(swapClass))
+<a class="jxr_linenumber" name="L1692" href="#L1692">1692</a>                  
                        s = f;
+<a class="jxr_linenumber" name="L1693" href="#L1693">1693</a>                  
        <strong class="jxr_keyword">if</strong> (s == <strong 
class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L1694" href="#L1694">1694</a>                  
                s = ObjectSwap.NULL;
+<a class="jxr_linenumber" name="L1695" href="#L1695">1695</a>                  
        <strong class="jxr_keyword">var</strong> s2 = 
childUnswapMap.putIfAbsent(swapClass, s);
+<a class="jxr_linenumber" name="L1696" href="#L1696">1696</a>                  
        <strong class="jxr_keyword">if</strong> (nn(s2))
+<a class="jxr_linenumber" name="L1697" href="#L1697">1697</a>                  
                s = s2;
+<a class="jxr_linenumber" name="L1698" href="#L1698">1698</a>                  
}
+<a class="jxr_linenumber" name="L1699" href="#L1699">1699</a>                  
<strong class="jxr_keyword">if</strong> (s == ObjectSwap.NULL)
+<a class="jxr_linenumber" name="L1700" href="#L1700">1700</a>                  
        <strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1701" href="#L1701">1701</a>                  
<strong class="jxr_keyword">return</strong> s;
+<a class="jxr_linenumber" name="L1702" href="#L1702">1702</a>          }
+<a class="jxr_linenumber" name="L1703" href="#L1703">1703</a>          <strong 
class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L1704" href="#L1704">1704</a>  }
+<a class="jxr_linenumber" name="L1705" href="#L1705">1705</a> 
+<a class="jxr_linenumber" name="L1706" href="#L1706">1706</a>  <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1707" href="#L1707">1707</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="L1708" href="#L1708">1708</a> <em 
class="jxr_javadoccomment">   *</em>
+<a class="jxr_linenumber" name="L1709" href="#L1709">1709</a> <em 
class="jxr_javadoccomment">   * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L1710" href="#L1710">1710</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="L1711" href="#L1711">1711</a> <em 
class="jxr_javadoccomment">   * transforms are associated with a bean 
property.</em>
+<a class="jxr_linenumber" name="L1712" href="#L1712">1712</a> <em 
class="jxr_javadoccomment">   *</em>
+<a class="jxr_linenumber" name="L1713" href="#L1713">1713</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="L1714" href="#L1714">1714</a> <em 
class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="L1715" href="#L1715">1715</a>  <strong 
class="jxr_keyword">protected</strong> <strong 
class="jxr_keyword">boolean</strong> hasChildSwaps() {
+<a class="jxr_linenumber" name="L1716" href="#L1716">1716</a>          <strong 
class="jxr_keyword">return</strong> nn(childSwaps);
+<a class="jxr_linenumber" name="L1717" href="#L1717">1717</a>  }
+<a class="jxr_linenumber" name="L1718" href="#L1718">1718</a> 
+<a class="jxr_linenumber" name="L1719" href="#L1719">1719</a>  <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1720" href="#L1720">1720</a> <em 
class="jxr_javadoccomment">   * Appends this object as a readable string to the 
specified string builder.</em>
+<a class="jxr_linenumber" name="L1721" href="#L1721">1721</a> <em 
class="jxr_javadoccomment">   *</em>
+<a class="jxr_linenumber" name="L1722" href="#L1722">1722</a> <em 
class="jxr_javadoccomment">   * @param sb The string builder to append this 
object to.</em>
+<a class="jxr_linenumber" name="L1723" href="#L1723">1723</a> <em 
class="jxr_javadoccomment">   * @param simple Print simple class names only (no 
package).</em>
+<a class="jxr_linenumber" name="L1724" href="#L1724">1724</a> <em 
class="jxr_javadoccomment">   * @return The passed-in string builder.</em>
+<a class="jxr_linenumber" name="L1725" href="#L1725">1725</a> <em 
class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="L1726" href="#L1726">1726</a>  <strong 
class="jxr_keyword">protected</strong> StringBuilder toString(StringBuilder sb, 
<strong class="jxr_keyword">boolean</strong> simple) {
+<a class="jxr_linenumber" name="L1727" href="#L1727">1727</a>          <strong 
class="jxr_keyword">var</strong> n = <strong 
class="jxr_keyword">inner</strong>().getName();
+<a class="jxr_linenumber" name="L1728" href="#L1728">1728</a>          <strong 
class="jxr_keyword">if</strong> (simple) {
+<a class="jxr_linenumber" name="L1729" href="#L1729">1729</a>                  
<strong class="jxr_keyword">var</strong> i = n.lastIndexOf('.');
+<a class="jxr_linenumber" name="L1730" href="#L1730">1730</a>                  
n = n.substring(i == -1 ? 0 : i + 1).replace('$', '.');
+<a class="jxr_linenumber" name="L1731" href="#L1731">1731</a>          }
+<a class="jxr_linenumber" name="L1732" href="#L1732">1732</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(ARRAY))
+<a class="jxr_linenumber" name="L1733" href="#L1733">1733</a>                  
<strong class="jxr_keyword">return</strong> elementType.toString(sb, 
simple).append('[').append(']');
+<a class="jxr_linenumber" name="L1734" href="#L1734">1734</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(BEANMAP))
+<a class="jxr_linenumber" name="L1735" href="#L1735">1735</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="L1736" href="#L1736">1736</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(MAP))
+<a class="jxr_linenumber" name="L1737" href="#L1737">1737</a>                  
<strong class="jxr_keyword">return</strong> 
sb.append(n).append(keyType.isObject() &amp;&amp; valueType.isObject() ? <span 
class="jxr_string">""</span> : <span class="jxr_string">"&lt;"</span> + 
keyType.toString(simple) + <span class="jxr_string">","</span> + 
valueType.toString(simple) + <span class="jxr_string">"&gt;"</span>);
+<a class="jxr_linenumber" name="L1738" href="#L1738">1738</a>          <strong 
class="jxr_keyword">if</strong> (cat.is(COLLECTION) || is(Optional.<strong 
class="jxr_keyword">class</strong>))
+<a class="jxr_linenumber" name="L1739" href="#L1739">1739</a>                  
<strong class="jxr_keyword">return</strong> 
sb.append(n).append(elementType.isObject() ? <span class="jxr_string">""</span> 
: <span class="jxr_string">"&lt;"</span> + elementType.toString(simple) + <span 
class="jxr_string">"&gt;"</span>);
+<a class="jxr_linenumber" name="L1740" href="#L1740">1740</a>          <strong 
class="jxr_keyword">return</strong> sb.append(n);
+<a class="jxr_linenumber" name="L1741" href="#L1741">1741</a>  }
+<a class="jxr_linenumber" name="L1742" href="#L1742">1742</a> 
+<a class="jxr_linenumber" name="L1743" href="#L1743">1743</a>  <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L1744" href="#L1744">1744</a> <em 
class="jxr_javadoccomment">   * Causes thread to wait until constructor has 
exited.</em>
+<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>  <strong 
class="jxr_keyword">void</strong> waitForInit() {
+<a class="jxr_linenumber" name="L1747" href="#L1747">1747</a>          <strong 
class="jxr_keyword">try</strong> (<strong class="jxr_keyword">var</strong> x = 
lock.read()) {}
+<a class="jxr_linenumber" name="L1748" href="#L1748">1748</a>  }
+<a class="jxr_linenumber" name="L1749" href="#L1749">1749</a> }
 </pre>
 <hr/>
 <div id="footer">© 2016–2025 <a href="https://www.apache.org/";>The Apache 
Software Foundation</a></div>
diff --git a/site/xref/org/apache/juneau/commons/reflect/Property.html 
b/site/xref/org/apache/juneau/commons/reflect/Property.html
index 422177ebdb..fc3c5c6c47 100644
--- a/site/xref/org/apache/juneau/commons/reflect/Property.html
+++ b/site/xref/org/apache/juneau/commons/reflect/Property.html
@@ -216,55 +216,58 @@
 <a class="jxr_linenumber" name="L208" href="#L208">208</a>             <strong 
class="jxr_keyword">public</strong> Builder&lt;T, V&gt; field(<a 
name="FieldInfo" 
href="../../../../../org/apache/juneau/commons/reflect/FieldInfo.html#FieldInfo">FieldInfo</a>
 field) {
 <a class="jxr_linenumber" name="L209" href="#L209">209</a>                     
assertArgNotNull(<span class="jxr_string">"field"</span>, field);
 <a class="jxr_linenumber" name="L210" href="#L210">210</a>                     
field.accessible();
-<a class="jxr_linenumber" name="L211" href="#L211">211</a>                     
<strong class="jxr_keyword">this</strong>.producer = obj -&gt; 
(V)field.get(obj);
-<a class="jxr_linenumber" name="L212" href="#L212">212</a>                     
<strong class="jxr_keyword">this</strong>.consumer = (obj, val) -&gt; 
field.set(obj, val);
-<a class="jxr_linenumber" name="L213" href="#L213">213</a>                     
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L214" href="#L214">214</a>             }
-<a class="jxr_linenumber" name="L215" href="#L215">215</a> 
-<a class="jxr_linenumber" name="L216" href="#L216">216</a>             <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L217" href="#L217">217</a> <em 
class="jxr_javadoccomment">              * Sets the producer (getter) from a 
{@link MethodInfo}.</em>
-<a class="jxr_linenumber" name="L218" href="#L218">218</a> <em 
class="jxr_javadoccomment">              *</em>
-<a class="jxr_linenumber" name="L219" href="#L219">219</a> <em 
class="jxr_javadoccomment">              * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L220" href="#L220">220</a> <em 
class="jxr_javadoccomment">              * The method should take no parameters 
and return the property value.</em>
-<a class="jxr_linenumber" name="L221" href="#L221">221</a> <em 
class="jxr_javadoccomment">              *</em>
-<a class="jxr_linenumber" name="L222" href="#L222">222</a> <em 
class="jxr_javadoccomment">              * @param method The method info. Must 
not be &lt;jk&gt;null&lt;/jk&gt;.</em>
-<a class="jxr_linenumber" name="L223" href="#L223">223</a> <em 
class="jxr_javadoccomment">              * @return This object.</em>
-<a class="jxr_linenumber" name="L224" href="#L224">224</a> <em 
class="jxr_javadoccomment">              */</em>
-<a class="jxr_linenumber" name="L225" href="#L225">225</a>             
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="L226" href="#L226">226</a>             <strong 
class="jxr_keyword">public</strong> Builder&lt;T, V&gt; getter(<a 
name="MethodInfo" 
href="../../../../../org/apache/juneau/commons/reflect/MethodInfo.html#MethodInfo">MethodInfo</a>
 method) {
-<a class="jxr_linenumber" name="L227" href="#L227">227</a>                     
assertArgNotNull(<span class="jxr_string">"method"</span>, method);
-<a class="jxr_linenumber" name="L228" href="#L228">228</a>                     
method.accessible();
-<a class="jxr_linenumber" name="L229" href="#L229">229</a>                     
<strong class="jxr_keyword">this</strong>.producer = obj -&gt; 
(V)method.invoke(obj);
-<a class="jxr_linenumber" name="L230" href="#L230">230</a>                     
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L231" href="#L231">231</a>             }
-<a class="jxr_linenumber" name="L232" href="#L232">232</a> 
-<a class="jxr_linenumber" name="L233" href="#L233">233</a>             <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L234" href="#L234">234</a> <em 
class="jxr_javadoccomment">              * Sets the consumer (setter) from a 
{@link MethodInfo}.</em>
-<a class="jxr_linenumber" name="L235" href="#L235">235</a> <em 
class="jxr_javadoccomment">              *</em>
-<a class="jxr_linenumber" name="L236" href="#L236">236</a> <em 
class="jxr_javadoccomment">              * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L237" href="#L237">237</a> <em 
class="jxr_javadoccomment">              * The method should take one parameter 
(the value to set) and return void.</em>
-<a class="jxr_linenumber" name="L238" href="#L238">238</a> <em 
class="jxr_javadoccomment">              *</em>
-<a class="jxr_linenumber" name="L239" href="#L239">239</a> <em 
class="jxr_javadoccomment">              * @param method The method info. Must 
not be &lt;jk&gt;null&lt;/jk&gt;.</em>
-<a class="jxr_linenumber" name="L240" href="#L240">240</a> <em 
class="jxr_javadoccomment">              * @return This object.</em>
-<a class="jxr_linenumber" name="L241" href="#L241">241</a> <em 
class="jxr_javadoccomment">              */</em>
-<a class="jxr_linenumber" name="L242" href="#L242">242</a>             <strong 
class="jxr_keyword">public</strong> Builder&lt;T, V&gt; setter(<a 
name="MethodInfo" 
href="../../../../../org/apache/juneau/commons/reflect/MethodInfo.html#MethodInfo">MethodInfo</a>
 method) {
-<a class="jxr_linenumber" name="L243" href="#L243">243</a>                     
assertArgNotNull(<span class="jxr_string">"method"</span>, method);
-<a class="jxr_linenumber" name="L244" href="#L244">244</a>                     
method.accessible();
-<a class="jxr_linenumber" name="L245" href="#L245">245</a>                     
<strong class="jxr_keyword">this</strong>.consumer = (obj, val) -&gt; 
method.invoke(obj, val);
-<a class="jxr_linenumber" name="L246" href="#L246">246</a>                     
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L247" href="#L247">247</a>             }
-<a class="jxr_linenumber" name="L248" href="#L248">248</a> 
-<a class="jxr_linenumber" name="L249" href="#L249">249</a>             <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L250" href="#L250">250</a> <em 
class="jxr_javadoccomment">              * Builds the property instance.</em>
-<a class="jxr_linenumber" name="L251" href="#L251">251</a> <em 
class="jxr_javadoccomment">              *</em>
-<a class="jxr_linenumber" name="L252" href="#L252">252</a> <em 
class="jxr_javadoccomment">              * @return A new property instance.</em>
-<a class="jxr_linenumber" name="L253" href="#L253">253</a> <em 
class="jxr_javadoccomment">              */</em>
-<a class="jxr_linenumber" name="L254" href="#L254">254</a>             <strong 
class="jxr_keyword">public</strong> Property&lt;T, V&gt; build() {
-<a class="jxr_linenumber" name="L255" href="#L255">255</a>                     
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">new</strong> Property&lt;&gt;(producer, consumer);
-<a class="jxr_linenumber" name="L256" href="#L256">256</a>             }
-<a class="jxr_linenumber" name="L257" href="#L257">257</a>     }
-<a class="jxr_linenumber" name="L258" href="#L258">258</a> }
-<a class="jxr_linenumber" name="L259" href="#L259">259</a> 
+<a class="jxr_linenumber" name="L211" href="#L211">211</a>                     
<strong class="jxr_keyword">boolean</strong> isStatic = field.isStatic();
+<a class="jxr_linenumber" name="L212" href="#L212">212</a>                     
<strong class="jxr_keyword">this</strong>.producer = obj -&gt; 
(V)field.get(isStatic ? <strong class="jxr_keyword">null</strong> : obj);
+<a class="jxr_linenumber" name="L213" href="#L213">213</a>                     
<strong class="jxr_keyword">this</strong>.consumer = (obj, val) -&gt; 
field.set(isStatic ? <strong class="jxr_keyword">null</strong> : obj, val);
+<a class="jxr_linenumber" name="L214" href="#L214">214</a>                     
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L215" href="#L215">215</a>             }
+<a class="jxr_linenumber" name="L216" href="#L216">216</a> 
+<a class="jxr_linenumber" name="L217" href="#L217">217</a>             <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L218" href="#L218">218</a> <em 
class="jxr_javadoccomment">              * Sets the producer (getter) from a 
{@link MethodInfo}.</em>
+<a class="jxr_linenumber" name="L219" href="#L219">219</a> <em 
class="jxr_javadoccomment">              *</em>
+<a class="jxr_linenumber" name="L220" href="#L220">220</a> <em 
class="jxr_javadoccomment">              * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L221" href="#L221">221</a> <em 
class="jxr_javadoccomment">              * The method should take no parameters 
and return the property value.</em>
+<a class="jxr_linenumber" name="L222" href="#L222">222</a> <em 
class="jxr_javadoccomment">              *</em>
+<a class="jxr_linenumber" name="L223" href="#L223">223</a> <em 
class="jxr_javadoccomment">              * @param method The method info. Must 
not be &lt;jk&gt;null&lt;/jk&gt;.</em>
+<a class="jxr_linenumber" name="L224" href="#L224">224</a> <em 
class="jxr_javadoccomment">              * @return This object.</em>
+<a class="jxr_linenumber" name="L225" href="#L225">225</a> <em 
class="jxr_javadoccomment">              */</em>
+<a class="jxr_linenumber" name="L226" href="#L226">226</a>             
@SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="L227" href="#L227">227</a>             <strong 
class="jxr_keyword">public</strong> Builder&lt;T, V&gt; getter(<a 
name="MethodInfo" 
href="../../../../../org/apache/juneau/commons/reflect/MethodInfo.html#MethodInfo">MethodInfo</a>
 method) {
+<a class="jxr_linenumber" name="L228" href="#L228">228</a>                     
assertArgNotNull(<span class="jxr_string">"method"</span>, method);
+<a class="jxr_linenumber" name="L229" href="#L229">229</a>                     
method.accessible();
+<a class="jxr_linenumber" name="L230" href="#L230">230</a>                     
<strong class="jxr_keyword">boolean</strong> isStatic = method.isStatic();
+<a class="jxr_linenumber" name="L231" href="#L231">231</a>                     
<strong class="jxr_keyword">this</strong>.producer = obj -&gt; 
(V)method.invoke(isStatic ? <strong class="jxr_keyword">null</strong> : obj);
+<a class="jxr_linenumber" name="L232" href="#L232">232</a>                     
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L233" href="#L233">233</a>             }
+<a class="jxr_linenumber" name="L234" href="#L234">234</a> 
+<a class="jxr_linenumber" name="L235" href="#L235">235</a>             <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L236" href="#L236">236</a> <em 
class="jxr_javadoccomment">              * Sets the consumer (setter) from a 
{@link MethodInfo}.</em>
+<a class="jxr_linenumber" name="L237" href="#L237">237</a> <em 
class="jxr_javadoccomment">              *</em>
+<a class="jxr_linenumber" name="L238" href="#L238">238</a> <em 
class="jxr_javadoccomment">              * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L239" href="#L239">239</a> <em 
class="jxr_javadoccomment">              * The method should take one parameter 
(the value to set) and return void.</em>
+<a class="jxr_linenumber" name="L240" href="#L240">240</a> <em 
class="jxr_javadoccomment">              *</em>
+<a class="jxr_linenumber" name="L241" href="#L241">241</a> <em 
class="jxr_javadoccomment">              * @param method The method info. Must 
not be &lt;jk&gt;null&lt;/jk&gt;.</em>
+<a class="jxr_linenumber" name="L242" href="#L242">242</a> <em 
class="jxr_javadoccomment">              * @return This object.</em>
+<a class="jxr_linenumber" name="L243" href="#L243">243</a> <em 
class="jxr_javadoccomment">              */</em>
+<a class="jxr_linenumber" name="L244" href="#L244">244</a>             <strong 
class="jxr_keyword">public</strong> Builder&lt;T, V&gt; setter(<a 
name="MethodInfo" 
href="../../../../../org/apache/juneau/commons/reflect/MethodInfo.html#MethodInfo">MethodInfo</a>
 method) {
+<a class="jxr_linenumber" name="L245" href="#L245">245</a>                     
assertArgNotNull(<span class="jxr_string">"method"</span>, method);
+<a class="jxr_linenumber" name="L246" href="#L246">246</a>                     
method.accessible();
+<a class="jxr_linenumber" name="L247" href="#L247">247</a>                     
<strong class="jxr_keyword">boolean</strong> isStatic = method.isStatic();
+<a class="jxr_linenumber" name="L248" href="#L248">248</a>                     
<strong class="jxr_keyword">this</strong>.consumer = (obj, val) -&gt; 
method.invoke(isStatic ? <strong class="jxr_keyword">null</strong> : obj, val);
+<a class="jxr_linenumber" name="L249" href="#L249">249</a>                     
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L250" href="#L250">250</a>             }
+<a class="jxr_linenumber" name="L251" href="#L251">251</a> 
+<a class="jxr_linenumber" name="L252" href="#L252">252</a>             <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L253" href="#L253">253</a> <em 
class="jxr_javadoccomment">              * Builds the property instance.</em>
+<a class="jxr_linenumber" name="L254" href="#L254">254</a> <em 
class="jxr_javadoccomment">              *</em>
+<a class="jxr_linenumber" name="L255" href="#L255">255</a> <em 
class="jxr_javadoccomment">              * @return A new property instance.</em>
+<a class="jxr_linenumber" name="L256" href="#L256">256</a> <em 
class="jxr_javadoccomment">              */</em>
+<a class="jxr_linenumber" name="L257" href="#L257">257</a>             <strong 
class="jxr_keyword">public</strong> Property&lt;T, V&gt; build() {
+<a class="jxr_linenumber" name="L258" href="#L258">258</a>                     
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">new</strong> Property&lt;&gt;(producer, consumer);
+<a class="jxr_linenumber" name="L259" href="#L259">259</a>             }
+<a class="jxr_linenumber" name="L260" href="#L260">260</a>     }
+<a class="jxr_linenumber" name="L261" href="#L261">261</a> }
+<a class="jxr_linenumber" name="L262" href="#L262">262</a> 
 </pre>
 <hr/>
 <div id="footer">© 2016–2025 <a href="https://www.apache.org/";>The Apache 
Software Foundation</a></div>
diff --git a/site/xref/org/apache/juneau/parser/ParserSession.html 
b/site/xref/org/apache/juneau/parser/ParserSession.html
index fd4ee786c9..9c5a5db0ff 100644
--- a/site/xref/org/apache/juneau/parser/ParserSession.html
+++ b/site/xref/org/apache/juneau/parser/ParserSession.html
@@ -227,7 +227,7 @@
 <a class="jxr_linenumber" name="L219" href="#L219">219</a> <em 
class="jxr_javadoccomment">      */</em>
 <a class="jxr_linenumber" name="L220" href="#L220">220</a>     <strong 
class="jxr_keyword">protected</strong> <strong 
class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> 
<strong class="jxr_keyword">void</strong> setName(ClassMeta&lt;?&gt; cm, Object 
o, Object name) <strong class="jxr_keyword">throws</strong> <a 
name="ExecutableException" 
href="../../../../org/apache/juneau/commons/reflect/ExecutableException.html#ExecutableException">ExecutableException</a>
 {
 <a class="jxr_linenumber" name="L221" href="#L221">221</a>             <strong 
class="jxr_keyword">if</strong> (nn(cm)) {
-<a class="jxr_linenumber" name="L222" href="#L222">222</a>                     
Setter m = cm.getNameProperty();
+<a class="jxr_linenumber" name="L222" href="#L222">222</a>                     
Property m = cm.getNameProperty();
 <a class="jxr_linenumber" name="L223" href="#L223">223</a>                     
<strong class="jxr_keyword">if</strong> (nn(m))
 <a class="jxr_linenumber" name="L224" href="#L224">224</a>                     
        m.set(o, name);
 <a class="jxr_linenumber" name="L225" href="#L225">225</a>             }
@@ -243,7 +243,7 @@
 <a class="jxr_linenumber" name="L235" href="#L235">235</a> <em 
class="jxr_javadoccomment">      * @throws ExecutableException Exception 
occurred on invoked constructor/method/field.</em>
 <a class="jxr_linenumber" name="L236" href="#L236">236</a> <em 
class="jxr_javadoccomment">      */</em>
 <a class="jxr_linenumber" name="L237" href="#L237">237</a>     <strong 
class="jxr_keyword">protected</strong> <strong 
class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> 
<strong class="jxr_keyword">void</strong> setParent(ClassMeta&lt;?&gt; cm, 
Object o, Object parent) <strong class="jxr_keyword">throws</strong> <a 
name="ExecutableException" 
href="../../../../org/apache/juneau/commons/reflect/ExecutableException.html#ExecutableException">ExecutableException</a>
 {
-<a class="jxr_linenumber" name="L238" href="#L238">238</a>             Setter 
m = cm.getParentProperty();
+<a class="jxr_linenumber" name="L238" href="#L238">238</a>             
Property m = cm.getParentProperty();
 <a class="jxr_linenumber" name="L239" href="#L239">239</a>             <strong 
class="jxr_keyword">if</strong> (nn(m))
 <a class="jxr_linenumber" name="L240" href="#L240">240</a>                     
m.set(o, parent);
 <a class="jxr_linenumber" name="L241" href="#L241">241</a>     }

Reply via email to