You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2017/09/10 20:32:13 UTC

[01/34] incubator-juneau-website git commit: Update javadocs

Repository: incubator-juneau-website
Updated Branches:
  refs/heads/asf-site 1019556e2 -> 62afb533d


http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/stylesheet.css
----------------------------------------------------------------------
diff --git a/content/site/apidocs/stylesheet.css b/content/site/apidocs/stylesheet.css
deleted file mode 100644
index 98055b2..0000000
--- a/content/site/apidocs/stylesheet.css
+++ /dev/null
@@ -1,574 +0,0 @@
-/* Javadoc style sheet */
-/*
-Overall document style
-*/
-
-@import url('resources/fonts/dejavu.css');
-
-body {
-    background-color:#ffffff;
-    color:#353833;
-    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
-    font-size:14px;
-    margin:0;
-}
-a:link, a:visited {
-    text-decoration:none;
-    color:#4A6782;
-}
-a:hover, a:focus {
-    text-decoration:none;
-    color:#bb7a2a;
-}
-a:active {
-    text-decoration:none;
-    color:#4A6782;
-}
-a[name] {
-    color:#353833;
-}
-a[name]:hover {
-    text-decoration:none;
-    color:#353833;
-}
-pre {
-    font-family:'DejaVu Sans Mono', monospace;
-    font-size:14px;
-}
-h1 {
-    font-size:20px;
-}
-h2 {
-    font-size:18px;
-}
-h3 {
-    font-size:16px;
-    font-style:italic;
-}
-h4 {
-    font-size:13px;
-}
-h5 {
-    font-size:12px;
-}
-h6 {
-    font-size:11px;
-}
-ul {
-    list-style-type:disc;
-}
-code, tt {
-    font-family:'DejaVu Sans Mono', monospace;
-    font-size:14px;
-    padding-top:4px;
-    margin-top:8px;
-    line-height:1.4em;
-}
-dt code {
-    font-family:'DejaVu Sans Mono', monospace;
-    font-size:14px;
-    padding-top:4px;
-}
-table tr td dt code {
-    font-family:'DejaVu Sans Mono', monospace;
-    font-size:14px;
-    vertical-align:top;
-    padding-top:4px;
-}
-sup {
-    font-size:8px;
-}
-/*
-Document title and Copyright styles
-*/
-.clear {
-    clear:both;
-    height:0px;
-    overflow:hidden;
-}
-.aboutLanguage {
-    float:right;
-    padding:0px 21px;
-    font-size:11px;
-    z-index:200;
-    margin-top:-9px;
-}
-.legalCopy {
-    margin-left:.5em;
-}
-.bar a, .bar a:link, .bar a:visited, .bar a:active {
-    color:#FFFFFF;
-    text-decoration:none;
-}
-.bar a:hover, .bar a:focus {
-    color:#bb7a2a;
-}
-.tab {
-    background-color:#0066FF;
-    color:#ffffff;
-    padding:8px;
-    width:5em;
-    font-weight:bold;
-}
-/*
-Navigation bar styles
-*/
-.bar {
-    background-color:#4D7A97;
-    color:#FFFFFF;
-    padding:.8em .5em .4em .8em;
-    height:auto;/*height:1.8em;*/
-    font-size:11px;
-    margin:0;
-}
-.topNav {
-    background-color:#4D7A97;
-    color:#FFFFFF;
-    float:left;
-    padding:0;
-    width:100%;
-    clear:right;
-    height:2.8em;
-    padding-top:10px;
-    overflow:hidden;
-    font-size:12px; 
-}
-.bottomNav {
-    margin-top:10px;
-    background-color:#4D7A97;
-    color:#FFFFFF;
-    float:left;
-    padding:0;
-    width:100%;
-    clear:right;
-    height:2.8em;
-    padding-top:10px;
-    overflow:hidden;
-    font-size:12px;
-}
-.subNav {
-    background-color:#dee3e9;
-    float:left;
-    width:100%;
-    overflow:hidden;
-    font-size:12px;
-}
-.subNav div {
-    clear:left;
-    float:left;
-    padding:0 0 5px 6px;
-    text-transform:uppercase;
-}
-ul.navList, ul.subNavList {
-    float:left;
-    margin:0 25px 0 0;
-    padding:0;
-}
-ul.navList li{
-    list-style:none;
-    float:left;
-    padding: 5px 6px;
-    text-transform:uppercase;
-}
-ul.subNavList li{
-    list-style:none;
-    float:left;
-}
-.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
-    color:#FFFFFF;
-    text-decoration:none;
-    text-transform:uppercase;
-}
-.topNav a:hover, .bottomNav a:hover {
-    text-decoration:none;
-    color:#bb7a2a;
-    text-transform:uppercase;
-}
-.navBarCell1Rev {
-    background-color:#F8981D;
-    color:#253441;
-    margin: auto 5px;
-}
-.skipNav {
-    position:absolute;
-    top:auto;
-    left:-9999px;
-    overflow:hidden;
-}
-/*
-Page header and footer styles
-*/
-.header, .footer {
-    clear:both;
-    margin:0 20px;
-    padding:5px 0 0 0;
-}
-.indexHeader {
-    margin:10px;
-    position:relative;
-}
-.indexHeader span{
-    margin-right:15px;
-}
-.indexHeader h1 {
-    font-size:13px;
-}
-.title {
-    color:#2c4557;
-    margin:10px 0;
-}
-.subTitle {
-    margin:5px 0 0 0;
-}
-.header ul {
-    margin:0 0 15px 0;
-    padding:0;
-}
-.footer ul {
-    margin:20px 0 5px 0;
-}
-.header ul li, .footer ul li {
-    list-style:none;
-    font-size:13px;
-}
-/*
-Heading styles
-*/
-div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
-    background-color:#dee3e9;
-    border:1px solid #d0d9e0;
-    margin:0 0 6px -8px;
-    padding:7px 5px;
-}
-ul.blockList ul.blockList ul.blockList li.blockList h3 {
-    background-color:#dee3e9;
-    border:1px solid #d0d9e0;
-    margin:0 0 6px -8px;
-    padding:7px 5px;
-}
-ul.blockList ul.blockList li.blockList h3 {
-    padding:0;
-    margin:15px 0;
-}
-ul.blockList li.blockList h2 {
-    padding:0px 0 20px 0;
-}
-/*
-Page layout container styles
-*/
-.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
-    clear:both;
-    padding:10px 20px;
-    position:relative;
-}
-.indexContainer {
-    margin:10px;
-    position:relative;
-    font-size:12px;
-}
-.indexContainer h2 {
-    font-size:13px;
-    padding:0 0 3px 0;
-}
-.indexContainer ul {
-    margin:0;
-    padding:0;
-}
-.indexContainer ul li {
-    list-style:none;
-    padding-top:2px;
-}
-.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
-    font-size:12px;
-    font-weight:bold;
-    margin:10px 0 0 0;
-    color:#4E4E4E;
-}
-.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
-    margin:5px 0 10px 0px;
-    font-size:14px;
-    font-family:'DejaVu Sans Mono',monospace;
-}
-.serializedFormContainer dl.nameValue dt {
-    margin-left:1px;
-    font-size:1.1em;
-    display:inline;
-    font-weight:bold;
-}
-.serializedFormContainer dl.nameValue dd {
-    margin:0 0 0 1px;
-    font-size:1.1em;
-    display:inline;
-}
-/*
-List styles
-*/
-ul.horizontal li {
-    display:inline;
-    font-size:0.9em;
-}
-ul.inheritance {
-    margin:0;
-    padding:0;
-}
-ul.inheritance li {
-    display:inline;
-    list-style:none;
-}
-ul.inheritance li ul.inheritance {
-    margin-left:15px;
-    padding-left:15px;
-    padding-top:1px;
-}
-ul.blockList, ul.blockListLast {
-    margin:10px 0 10px 0;
-    padding:0;
-}
-ul.blockList li.blockList, ul.blockListLast li.blockList {
-    list-style:none;
-    margin-bottom:15px;
-    line-height:1.4;
-}
-ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
-    padding:0px 20px 5px 10px;
-    border:1px solid #ededed; 
-    background-color:#f8f8f8;
-}
-ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
-    padding:0 0 5px 8px;
-    background-color:#ffffff;
-    border:none;
-}
-ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
-    margin-left:0;
-    padding-left:0;
-    padding-bottom:15px;
-    border:none;
-}
-ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
-    list-style:none;
-    border-bottom:none;
-    padding-bottom:0;
-}
-table tr td dl, table tr td dl dt, table tr td dl dd {
-    margin-top:0;
-    margin-bottom:1px;
-}
-/*
-Table styles
-*/
-.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
-    width:100%;
-    border-left:1px solid #EEE; 
-    border-right:1px solid #EEE; 
-    border-bottom:1px solid #EEE; 
-}
-.overviewSummary, .memberSummary  {
-    padding:0px;
-}
-.overviewSummary caption, .memberSummary caption, .typeSummary caption,
-.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
-    position:relative;
-    text-align:left;
-    background-repeat:no-repeat;
-    color:#253441;
-    font-weight:bold;
-    clear:none;
-    overflow:hidden;
-    padding:0px;
-    padding-top:10px;
-    padding-left:1px;
-    margin:0px;
-    white-space:pre;
-}
-.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
-.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
-.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
-.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
-.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
-.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
-.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
-.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
-    color:#FFFFFF;
-}
-.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
-.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
-    white-space:nowrap;
-    padding-top:5px;
-    padding-left:12px;
-    padding-right:12px;
-    padding-bottom:7px;
-    display:inline-block;
-    float:left;
-    background-color:#F8981D;
-    border: none;
-    height:16px;
-}
-.memberSummary caption span.activeTableTab span {
-    white-space:nowrap;
-    padding-top:5px;
-    padding-left:12px;
-    padding-right:12px;
-    margin-right:3px;
-    display:inline-block;
-    float:left;
-    background-color:#F8981D;
-    height:16px;
-}
-.memberSummary caption span.tableTab span {
-    white-space:nowrap;
-    padding-top:5px;
-    padding-left:12px;
-    padding-right:12px;
-    margin-right:3px;
-    display:inline-block;
-    float:left;
-    background-color:#4D7A97;
-    height:16px;
-}
-.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
-    padding-top:0px;
-    padding-left:0px;
-    padding-right:0px;
-    background-image:none;
-    float:none;
-    display:inline;
-}
-.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
-.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
-    display:none;
-    width:5px;
-    position:relative;
-    float:left;
-    background-color:#F8981D;
-}
-.memberSummary .activeTableTab .tabEnd {
-    display:none;
-    width:5px;
-    margin-right:3px;
-    position:relative; 
-    float:left;
-    background-color:#F8981D;
-}
-.memberSummary .tableTab .tabEnd {
-    display:none;
-    width:5px;
-    margin-right:3px;
-    position:relative;
-    background-color:#4D7A97;
-    float:left;
-
-}
-.overviewSummary td, .memberSummary td, .typeSummary td,
-.useSummary td, .constantsSummary td, .deprecatedSummary td {
-    text-align:left;
-    padding:0px 0px 12px 10px;
-}
-th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
-td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
-    vertical-align:top;
-    padding-right:0px;
-    padding-top:8px;
-    padding-bottom:3px;
-}
-th.colFirst, th.colLast, th.colOne, .constantsSummary th {
-    background:#dee3e9;
-    text-align:left;
-    padding:8px 3px 3px 7px;
-}
-td.colFirst, th.colFirst {
-    white-space:nowrap;
-    font-size:13px;
-}
-td.colLast, th.colLast {
-    font-size:13px;
-}
-td.colOne, th.colOne {
-    font-size:13px;
-}
-.overviewSummary td.colFirst, .overviewSummary th.colFirst,
-.useSummary td.colFirst, .useSummary th.colFirst,
-.overviewSummary td.colOne, .overviewSummary th.colOne,
-.memberSummary td.colFirst, .memberSummary th.colFirst,
-.memberSummary td.colOne, .memberSummary th.colOne,
-.typeSummary td.colFirst{
-    width:25%;
-    vertical-align:top;
-}
-td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
-    font-weight:bold;
-}
-.tableSubHeadingColor {
-    background-color:#EEEEFF;
-}
-.altColor {
-    background-color:#FFFFFF;
-}
-.rowColor {
-    background-color:#EEEEEF;
-}
-/*
-Content styles
-*/
-.description pre {
-    margin-top:0;
-}
-.deprecatedContent {
-    margin:0;
-    padding:10px 0;
-}
-.docSummary {
-    padding:0;
-}
-
-ul.blockList ul.blockList ul.blockList li.blockList h3 {
-    font-style:normal;
-}
-
-div.block {
-    font-size:14px;
-    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
-}
-
-td.colLast div {
-    padding-top:0px;
-}
-
-
-td.colLast a {
-    padding-bottom:3px;
-}
-/*
-Formatting effect styles
-*/
-.sourceLineNo {
-    color:green;
-    padding:0 30px 0 0;
-}
-h1.hidden {
-    visibility:hidden;
-    overflow:hidden;
-    font-size:10px;
-}
-.block {
-    display:block;
-    margin:3px 10px 2px 0px;
-    color:#474747;
-}
-.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
-.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
-.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
-    font-weight:bold;
-}
-.deprecationComment, .emphasizedPhrase, .interfaceName {
-    font-style:italic;
-}
-
-div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
-div.block div.block span.interfaceName {
-    font-style:normal;
-}
-
-div.contentContainer ul.blockList li.blockList h2{
-    padding-bottom:0px;
-}


[11/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/internal/ClassUtils.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/internal/ClassUtils.html b/content/site/apidocs/src-html/org/apache/juneau/internal/ClassUtils.html
index 6cbb889..57fc64b 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/internal/ClassUtils.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/internal/ClassUtils.html
@@ -464,656 +464,662 @@
 <span class="sourceLineNo">456</span>         oc = oc.getSuperclass();<a name="line.456"></a>
 <span class="sourceLineNo">457</span>      }<a name="line.457"></a>
 <span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span>      ParameterizedType opt = (ParameterizedType)oc.getGenericSuperclass();<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      Type actualType = opt.getActualTypeArguments()[index];<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>      if (typeMap.containsKey(actualType))<a name="line.462"></a>
-<span class="sourceLineNo">463</span>         actualType = typeMap.get(actualType);<a name="line.463"></a>
+<span class="sourceLineNo">459</span>      Type gsc = oc.getGenericSuperclass();<a name="line.459"></a>
+<span class="sourceLineNo">460</span>      <a name="line.460"></a>
+<span class="sourceLineNo">461</span>      // Not actually a parameterized type.<a name="line.461"></a>
+<span class="sourceLineNo">462</span>      if (! (gsc instanceof ParameterizedType))<a name="line.462"></a>
+<span class="sourceLineNo">463</span>         return Object.class;<a name="line.463"></a>
 <span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>      if (actualType instanceof Class) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>         return (Class&lt;?&gt;)actualType;<a name="line.466"></a>
+<span class="sourceLineNo">465</span>      ParameterizedType opt = (ParameterizedType)gsc;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>      Type actualType = opt.getActualTypeArguments()[index];<a name="line.466"></a>
 <span class="sourceLineNo">467</span><a name="line.467"></a>
-<span class="sourceLineNo">468</span>      } else if (actualType instanceof GenericArrayType) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>         Class&lt;?&gt; cmpntType = (Class&lt;?&gt;)((GenericArrayType)actualType).getGenericComponentType();<a name="line.469"></a>
-<span class="sourceLineNo">470</span>         return Array.newInstance(cmpntType, 0).getClass();<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>      } else if (actualType instanceof TypeVariable) {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>         TypeVariable&lt;?&gt; typeVariable = (TypeVariable&lt;?&gt;)actualType;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>         List&lt;Class&lt;?&gt;&gt; nestedOuterTypes = new LinkedList&lt;Class&lt;?&gt;&gt;();<a name="line.474"></a>
-<span class="sourceLineNo">475</span>         for (Class&lt;?&gt; ec = oc.getEnclosingClass(); ec != null; ec = ec.getEnclosingClass()) {<a name="line.475"></a>
-<span class="sourceLineNo">476</span>            try {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>               Class&lt;?&gt; outerClass = oc.getClass();<a name="line.477"></a>
-<span class="sourceLineNo">478</span>               nestedOuterTypes.add(outerClass);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>               Map&lt;Type,Type&gt; outerTypeMap = new HashMap&lt;Type,Type&gt;();<a name="line.479"></a>
-<span class="sourceLineNo">480</span>               extractTypes(outerTypeMap, outerClass);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>               for (Map.Entry&lt;Type,Type&gt; entry : outerTypeMap.entrySet()) {<a name="line.481"></a>
-<span class="sourceLineNo">482</span>                  Type key = entry.getKey(), value = entry.getValue();<a name="line.482"></a>
-<span class="sourceLineNo">483</span>                  if (key instanceof TypeVariable) {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>                     TypeVariable&lt;?&gt; keyType = (TypeVariable&lt;?&gt;)key;<a name="line.484"></a>
-<span class="sourceLineNo">485</span>                     if (keyType.getName().equals(typeVariable.getName()) &amp;&amp; isInnerClass(keyType.getGenericDeclaration(), typeVariable.getGenericDeclaration())) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>                        if (value instanceof Class)<a name="line.486"></a>
-<span class="sourceLineNo">487</span>                           return (Class&lt;?&gt;)value;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>                        typeVariable = (TypeVariable&lt;?&gt;)entry.getValue();<a name="line.488"></a>
-<span class="sourceLineNo">489</span>                     }<a name="line.489"></a>
-<span class="sourceLineNo">490</span>                  }<a name="line.490"></a>
-<span class="sourceLineNo">491</span>               }<a name="line.491"></a>
-<span class="sourceLineNo">492</span>            } catch (Exception e) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>               throw new RuntimeException(e);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>            }<a name="line.494"></a>
-<span class="sourceLineNo">495</span>         }<a name="line.495"></a>
-<span class="sourceLineNo">496</span>         throw new FormattedRuntimeException("Could not resolve type: {0}", actualType);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      } else {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>         throw new FormattedRuntimeException("Invalid type found in resolveParameterType: {0}", actualType);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      }<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   }<a name="line.500"></a>
-<span class="sourceLineNo">501</span><a name="line.501"></a>
-<span class="sourceLineNo">502</span>   private static boolean isInnerClass(GenericDeclaration od, GenericDeclaration id) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      if (od instanceof Class &amp;&amp; id instanceof Class) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>         Class&lt;?&gt; oc = (Class&lt;?&gt;)od;<a name="line.504"></a>
-<span class="sourceLineNo">505</span>         Class&lt;?&gt; ic = (Class&lt;?&gt;)id;<a name="line.505"></a>
-<span class="sourceLineNo">506</span>         while ((ic = ic.getEnclosingClass()) != null)<a name="line.506"></a>
-<span class="sourceLineNo">507</span>            if (ic == oc)<a name="line.507"></a>
-<span class="sourceLineNo">508</span>               return true;<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      }<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      return false;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   }<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>   private static void extractTypes(Map&lt;Type,Type&gt; typeMap, Class&lt;?&gt; c) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      Type gs = c.getGenericSuperclass();<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      if (gs instanceof ParameterizedType) {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>         ParameterizedType pt = (ParameterizedType)gs;<a name="line.516"></a>
-<span class="sourceLineNo">517</span>         Type[] typeParameters = ((Class&lt;?&gt;)pt.getRawType()).getTypeParameters();<a name="line.517"></a>
-<span class="sourceLineNo">518</span>         Type[] actualTypeArguments = pt.getActualTypeArguments();<a name="line.518"></a>
-<span class="sourceLineNo">519</span>         for (int i = 0; i &lt; typeParameters.length; i++) {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>            if (typeMap.containsKey(actualTypeArguments[i]))<a name="line.520"></a>
-<span class="sourceLineNo">521</span>               actualTypeArguments[i] = typeMap.get(actualTypeArguments[i]);<a name="line.521"></a>
-<span class="sourceLineNo">522</span>            typeMap.put(typeParameters[i], actualTypeArguments[i]);<a name="line.522"></a>
-<span class="sourceLineNo">523</span>         }<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
-<span class="sourceLineNo">525</span>   }<a name="line.525"></a>
-<span class="sourceLineNo">526</span><a name="line.526"></a>
-<span class="sourceLineNo">527</span>   /**<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    * Finds a public method with the specified parameters.<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    *<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    * @param c The class to look for the method.<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    * @param name The method name.<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    * @param returnType<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    *    The return type of the method.<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    *    Can be a super type of the actual return type.<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    *    For example, if the actual return type is &lt;code&gt;CharSequence&lt;/code&gt;, then &lt;code&gt;Object&lt;/code&gt; will match but<a name="line.535"></a>
-<span class="sourceLineNo">536</span>    *    &lt;code&gt;String&lt;/code&gt; will not.<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    * @param parameterTypes<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    *    The parameter types of the method.<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    *    Can be subtypes of the actual parameter types.<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    *    For example, if the parameter type is &lt;code&gt;CharSequence&lt;/code&gt;, then &lt;code&gt;String&lt;/code&gt; will match but<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    *    &lt;code&gt;Object&lt;/code&gt; will not.<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    * @return The matched method, or &lt;jk&gt;null&lt;/jk&gt; if no match was found.<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    */<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   public static Method findPublicMethod(Class&lt;?&gt; c, String name, Class&lt;?&gt; returnType, Class&lt;?&gt;...parameterTypes) {<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      for (Method m : c.getMethods()) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>         if (isPublic(m) &amp;&amp; m.getName().equals(name)) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>            Class&lt;?&gt; rt = m.getReturnType();<a name="line.547"></a>
-<span class="sourceLineNo">548</span>            if (isParentClass(returnType, rt)) {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>               Class&lt;?&gt;[] pt = m.getParameterTypes();<a name="line.549"></a>
-<span class="sourceLineNo">550</span>               if (pt.length == parameterTypes.length) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>                  boolean matches = true;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>                  for (int i = 0; i &lt; pt.length; i++) {<a name="line.552"></a>
-<span class="sourceLineNo">553</span>                     if (! isParentClass(pt[i], parameterTypes[i])) {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>                        matches = false;<a name="line.554"></a>
-<span class="sourceLineNo">555</span>                        break;<a name="line.555"></a>
-<span class="sourceLineNo">556</span>                     }<a name="line.556"></a>
-<span class="sourceLineNo">557</span>                  }<a name="line.557"></a>
-<span class="sourceLineNo">558</span>                  if (matches)<a name="line.558"></a>
-<span class="sourceLineNo">559</span>                     return m;<a name="line.559"></a>
-<span class="sourceLineNo">560</span>               }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>            }<a name="line.561"></a>
-<span class="sourceLineNo">562</span>         }<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      }<a name="line.563"></a>
-<span class="sourceLineNo">564</span>      return null;<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   }<a name="line.565"></a>
-<span class="sourceLineNo">566</span><a name="line.566"></a>
-<span class="sourceLineNo">567</span>   /**<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    * Finds a public constructor with the specified parameters without throwing an exception.<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    *<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    * @param c The class to search for a constructor.<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    * @param parameterTypes<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    *    The parameter types in the constructor.<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    *    Can be subtypes of the actual constructor argument types.<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    * @return The matching constructor, or &lt;jk&gt;null&lt;/jk&gt; if constructor could not be found.<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    */<a name="line.575"></a>
-<span class="sourceLineNo">576</span>   @SuppressWarnings("unchecked")<a name="line.576"></a>
-<span class="sourceLineNo">577</span>   public static &lt;T&gt; Constructor&lt;T&gt; findPublicConstructor(Class&lt;T&gt; c, Class&lt;?&gt;...parameterTypes) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      for (Constructor&lt;?&gt; n : c.getConstructors()) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>         if (isPublic(n)) {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>            Class&lt;?&gt;[] pt = n.getParameterTypes();<a name="line.580"></a>
-<span class="sourceLineNo">581</span>            if (pt.length == parameterTypes.length) {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>               boolean matches = true;<a name="line.582"></a>
-<span class="sourceLineNo">583</span>               for (int i = 0; i &lt; pt.length; i++) {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>                  if (! isParentClass(pt[i], parameterTypes[i])) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>                     matches = false;<a name="line.585"></a>
-<span class="sourceLineNo">586</span>                     break;<a name="line.586"></a>
-<span class="sourceLineNo">587</span>                  }<a name="line.587"></a>
-<span class="sourceLineNo">588</span>               }<a name="line.588"></a>
-<span class="sourceLineNo">589</span>               if (matches)<a name="line.589"></a>
-<span class="sourceLineNo">590</span>                  return (Constructor&lt;T&gt;)n;<a name="line.590"></a>
-<span class="sourceLineNo">591</span>            }<a name="line.591"></a>
-<span class="sourceLineNo">592</span>         }<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      }<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      return null;<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   }<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>   /**<a name="line.597"></a>
-<span class="sourceLineNo">598</span>    * Finds the public constructor that can take in the specified arguments.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>    *<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    * @param c The class we're trying to construct.<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    * @param args The arguments we want to pass into the constructor.<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    * @return<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    *    The constructor, or &lt;jk&gt;null&lt;/jk&gt; if a public constructor could not be found that takes in the specified<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    *    arguments.<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    */<a name="line.605"></a>
-<span class="sourceLineNo">606</span>   public static &lt;T&gt; Constructor&lt;T&gt; findPublicConstructor(Class&lt;T&gt; c, Object...args) {<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      return findPublicConstructor(c, getClasses(args));<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   }<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>   /**<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    * Returns the class types for the specified arguments.<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    *<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    * @param args The objects we're getting the classes of.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    * @return The classes of the arguments.<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    */<a name="line.615"></a>
-<span class="sourceLineNo">616</span>   public static Class&lt;?&gt;[] getClasses(Object...args) {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>      Class&lt;?&gt;[] pt = new Class&lt;?&gt;[args.length];<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      for (int i = 0; i &lt; args.length; i++)<a name="line.618"></a>
-<span class="sourceLineNo">619</span>         pt[i] = args[i] == null ? null : args[i].getClass();<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      return pt;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>   }<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>// This code is inherently unsafe (but still potentially useful?)<a name="line.623"></a>
-<span class="sourceLineNo">624</span>//<a name="line.624"></a>
-<span class="sourceLineNo">625</span>// /**<a name="line.625"></a>
-<span class="sourceLineNo">626</span>//  * Converts class name strings to ClassMeta objects.<a name="line.626"></a>
-<span class="sourceLineNo">627</span>//  *<a name="line.627"></a>
-<span class="sourceLineNo">628</span>//  * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.628"></a>
-<span class="sourceLineNo">629</span>//  * &lt;ul&gt;<a name="line.629"></a>
-<span class="sourceLineNo">630</span>//  *    &lt;li&gt;&lt;js&gt;"java.lang.String"&lt;/js&gt;<a name="line.630"></a>
-<span class="sourceLineNo">631</span>//  *    &lt;li&gt;&lt;js&gt;"com.foo.sample.MyBean[]"&lt;/js&gt;<a name="line.631"></a>
-<span class="sourceLineNo">632</span>//  *    &lt;li&gt;&lt;js&gt;"java.util.HashMap&lt;java.lang.String,java.lang.Integer&gt;"&lt;/js&gt;<a name="line.632"></a>
-<span class="sourceLineNo">633</span>//  *    &lt;li&gt;&lt;js&gt;"[Ljava.lang.String;"&lt;/js&gt; (i.e. the value of &lt;code&gt;String[].&lt;jk&gt;class&lt;/jk&gt;.getName()&lt;/code&gt;)<a name="line.633"></a>
-<span class="sourceLineNo">634</span>//  * &lt;/ul&gt;<a name="line.634"></a>
-<span class="sourceLineNo">635</span>//  *<a name="line.635"></a>
-<span class="sourceLineNo">636</span>//  * @param s The class name.<a name="line.636"></a>
-<span class="sourceLineNo">637</span>//  * @return The ClassMeta corresponding to the class name string.<a name="line.637"></a>
-<span class="sourceLineNo">638</span>//  */<a name="line.638"></a>
-<span class="sourceLineNo">639</span>// protected final ClassMeta&lt;?&gt; getClassMetaFromString(String s) {<a name="line.639"></a>
-<span class="sourceLineNo">640</span>//    int d = 0;<a name="line.640"></a>
-<span class="sourceLineNo">641</span>//    if (s == null || s.isEmpty())<a name="line.641"></a>
-<span class="sourceLineNo">642</span>//       return null;<a name="line.642"></a>
-<span class="sourceLineNo">643</span>//<a name="line.643"></a>
-<span class="sourceLineNo">644</span>//    // Check for Class.getName() on array class types.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>//    if (s.charAt(0) == '[') {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>//       try {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>//          return getClassMeta(findClass(s));<a name="line.647"></a>
-<span class="sourceLineNo">648</span>//       } catch (ClassNotFoundException e) {<a name="line.648"></a>
-<span class="sourceLineNo">649</span>//          throw new RuntimeException(e);<a name="line.649"></a>
-<span class="sourceLineNo">650</span>//       }<a name="line.650"></a>
-<span class="sourceLineNo">651</span>//    }<a name="line.651"></a>
-<span class="sourceLineNo">652</span>//<a name="line.652"></a>
-<span class="sourceLineNo">653</span>//    int i1 = 0;<a name="line.653"></a>
-<span class="sourceLineNo">654</span>//    int i2 = 0;<a name="line.654"></a>
-<span class="sourceLineNo">655</span>//    int dim = 0;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>//    List&lt;ClassMeta&lt;?&gt;&gt; p = null;<a name="line.656"></a>
-<span class="sourceLineNo">657</span>//    for (int i = 0; i &lt; s.length(); i++) {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>//       char c = s.charAt(i);<a name="line.658"></a>
-<span class="sourceLineNo">659</span>//       if (c == '&lt;') {<a name="line.659"></a>
-<span class="sourceLineNo">660</span>//          if (d == 0) {<a name="line.660"></a>
-<span class="sourceLineNo">661</span>//             i1 = i;<a name="line.661"></a>
-<span class="sourceLineNo">662</span>//             i2 = i+1;<a name="line.662"></a>
-<span class="sourceLineNo">663</span>//             p = new LinkedList&lt;ClassMeta&lt;?&gt;&gt;();<a name="line.663"></a>
-<span class="sourceLineNo">664</span>//          }<a name="line.664"></a>
-<span class="sourceLineNo">665</span>//          d++;<a name="line.665"></a>
-<span class="sourceLineNo">666</span>//       } else if (c == '&gt;') {<a name="line.666"></a>
-<span class="sourceLineNo">667</span>//          d--;<a name="line.667"></a>
-<span class="sourceLineNo">668</span>//          if (d == 0 &amp;&amp; p != null)<a name="line.668"></a>
-<span class="sourceLineNo">669</span>//             p.add(getClassMetaFromString(s.substring(i2, i)));<a name="line.669"></a>
-<span class="sourceLineNo">670</span>//       } else if (c == ',' &amp;&amp; d == 1) {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>//          if (p != null)<a name="line.671"></a>
-<span class="sourceLineNo">672</span>//             p.add(getClassMetaFromString(s.substring(i2, i)));<a name="line.672"></a>
-<span class="sourceLineNo">673</span>//          i2 = i+1;<a name="line.673"></a>
-<span class="sourceLineNo">674</span>//       }<a name="line.674"></a>
-<span class="sourceLineNo">675</span>//       if (c == '[') {<a name="line.675"></a>
-<span class="sourceLineNo">676</span>//          if (i1 == 0)<a name="line.676"></a>
-<span class="sourceLineNo">677</span>//             i1 = i;<a name="line.677"></a>
-<span class="sourceLineNo">678</span>//          dim++;<a name="line.678"></a>
-<span class="sourceLineNo">679</span>//       }<a name="line.679"></a>
-<span class="sourceLineNo">680</span>//    }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>//    if (i1 == 0)<a name="line.681"></a>
-<span class="sourceLineNo">682</span>//       i1 = s.length();<a name="line.682"></a>
-<span class="sourceLineNo">683</span>//    try {<a name="line.683"></a>
-<span class="sourceLineNo">684</span>//       String name = s.substring(0, i1).trim();<a name="line.684"></a>
-<span class="sourceLineNo">685</span>//       char x = name.charAt(0);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>//       Class&lt;?&gt; c = null;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>//       if (x &gt;= 'b' &amp;&amp; x &lt;= 's') {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>//          if (x == 'b' &amp;&amp; name.equals("boolean"))<a name="line.688"></a>
-<span class="sourceLineNo">689</span>//             c = boolean.class;<a name="line.689"></a>
-<span class="sourceLineNo">690</span>//          else if (x == 'b' &amp;&amp; name.equals("byte"))<a name="line.690"></a>
-<span class="sourceLineNo">691</span>//             c = byte.class;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>//          else if (x == 'c' &amp;&amp; name.equals("char"))<a name="line.692"></a>
-<span class="sourceLineNo">693</span>//             c = char.class;<a name="line.693"></a>
-<span class="sourceLineNo">694</span>//          else if (x == 'd' &amp;&amp; name.equals("double"))<a name="line.694"></a>
-<span class="sourceLineNo">695</span>//             c = double.class;<a name="line.695"></a>
-<span class="sourceLineNo">696</span>//          else if (x == 'i' &amp;&amp; name.equals("int"))<a name="line.696"></a>
-<span class="sourceLineNo">697</span>//             c = int.class;<a name="line.697"></a>
-<span class="sourceLineNo">698</span>//          else if (x == 'l' &amp;&amp; name.equals("long"))<a name="line.698"></a>
-<span class="sourceLineNo">699</span>//             c = long.class;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>//          else if (x == 's' &amp;&amp; name.equals("short"))<a name="line.700"></a>
-<span class="sourceLineNo">701</span>//             c = short.class;<a name="line.701"></a>
-<span class="sourceLineNo">702</span>//          else<a name="line.702"></a>
-<span class="sourceLineNo">703</span>//             c = findClass(name);<a name="line.703"></a>
-<span class="sourceLineNo">704</span>//       } else {<a name="line.704"></a>
-<span class="sourceLineNo">705</span>//          c = findClass(name);<a name="line.705"></a>
-<span class="sourceLineNo">706</span>//       }<a name="line.706"></a>
-<span class="sourceLineNo">707</span>//<a name="line.707"></a>
-<span class="sourceLineNo">708</span>//       ClassMeta&lt;?&gt; cm = getClassMeta(c);<a name="line.708"></a>
-<span class="sourceLineNo">709</span>//<a name="line.709"></a>
-<span class="sourceLineNo">710</span>//       if (p != null) {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>//          if (cm.isMap())<a name="line.711"></a>
-<span class="sourceLineNo">712</span>//             cm = new ClassMeta(c, this).setKeyType(p.get(0)).setValueType(p.get(1));<a name="line.712"></a>
-<span class="sourceLineNo">713</span>//          if (cm.isCollection())<a name="line.713"></a>
-<span class="sourceLineNo">714</span>//             cm = new ClassMeta(c, this).setElementType(p.get(0));<a name="line.714"></a>
-<span class="sourceLineNo">715</span>//       }<a name="line.715"></a>
-<span class="sourceLineNo">716</span>//<a name="line.716"></a>
-<span class="sourceLineNo">717</span>//       while (dim &gt; 0) {<a name="line.717"></a>
-<span class="sourceLineNo">718</span>//          cm = new ClassMeta(Array.newInstance(cm.getInnerClass(), 0).getClass(), this);<a name="line.718"></a>
-<span class="sourceLineNo">719</span>//          dim--;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>//       }<a name="line.720"></a>
-<span class="sourceLineNo">721</span>//<a name="line.721"></a>
-<span class="sourceLineNo">722</span>//       return cm;<a name="line.722"></a>
-<span class="sourceLineNo">723</span>//    } catch (ClassNotFoundException e) {<a name="line.723"></a>
-<span class="sourceLineNo">724</span>//       throw new RuntimeException(e);<a name="line.724"></a>
-<span class="sourceLineNo">725</span>//    }<a name="line.725"></a>
-<span class="sourceLineNo">726</span>// }<a name="line.726"></a>
+<span class="sourceLineNo">468</span>      if (typeMap.containsKey(actualType))<a name="line.468"></a>
+<span class="sourceLineNo">469</span>         actualType = typeMap.get(actualType);<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>      if (actualType instanceof Class) {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         return (Class&lt;?&gt;)actualType;<a name="line.472"></a>
+<span class="sourceLineNo">473</span><a name="line.473"></a>
+<span class="sourceLineNo">474</span>      } else if (actualType instanceof GenericArrayType) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>         Class&lt;?&gt; cmpntType = (Class&lt;?&gt;)((GenericArrayType)actualType).getGenericComponentType();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>         return Array.newInstance(cmpntType, 0).getClass();<a name="line.476"></a>
+<span class="sourceLineNo">477</span><a name="line.477"></a>
+<span class="sourceLineNo">478</span>      } else if (actualType instanceof TypeVariable) {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>         TypeVariable&lt;?&gt; typeVariable = (TypeVariable&lt;?&gt;)actualType;<a name="line.479"></a>
+<span class="sourceLineNo">480</span>         List&lt;Class&lt;?&gt;&gt; nestedOuterTypes = new LinkedList&lt;Class&lt;?&gt;&gt;();<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         for (Class&lt;?&gt; ec = oc.getEnclosingClass(); ec != null; ec = ec.getEnclosingClass()) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>            try {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>               Class&lt;?&gt; outerClass = oc.getClass();<a name="line.483"></a>
+<span class="sourceLineNo">484</span>               nestedOuterTypes.add(outerClass);<a name="line.484"></a>
+<span class="sourceLineNo">485</span>               Map&lt;Type,Type&gt; outerTypeMap = new HashMap&lt;Type,Type&gt;();<a name="line.485"></a>
+<span class="sourceLineNo">486</span>               extractTypes(outerTypeMap, outerClass);<a name="line.486"></a>
+<span class="sourceLineNo">487</span>               for (Map.Entry&lt;Type,Type&gt; entry : outerTypeMap.entrySet()) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                  Type key = entry.getKey(), value = entry.getValue();<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                  if (key instanceof TypeVariable) {<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                     TypeVariable&lt;?&gt; keyType = (TypeVariable&lt;?&gt;)key;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                     if (keyType.getName().equals(typeVariable.getName()) &amp;&amp; isInnerClass(keyType.getGenericDeclaration(), typeVariable.getGenericDeclaration())) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                        if (value instanceof Class)<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                           return (Class&lt;?&gt;)value;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                        typeVariable = (TypeVariable&lt;?&gt;)entry.getValue();<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                     }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                  }<a name="line.496"></a>
+<span class="sourceLineNo">497</span>               }<a name="line.497"></a>
+<span class="sourceLineNo">498</span>            } catch (Exception e) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>               throw new RuntimeException(e);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>            }<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         }<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         throw new FormattedRuntimeException("Could not resolve type: {0}", actualType);<a name="line.502"></a>
+<span class="sourceLineNo">503</span>      } else {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         throw new FormattedRuntimeException("Invalid type found in resolveParameterType: {0}", actualType);<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      }<a name="line.505"></a>
+<span class="sourceLineNo">506</span>   }<a name="line.506"></a>
+<span class="sourceLineNo">507</span><a name="line.507"></a>
+<span class="sourceLineNo">508</span>   private static boolean isInnerClass(GenericDeclaration od, GenericDeclaration id) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>      if (od instanceof Class &amp;&amp; id instanceof Class) {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>         Class&lt;?&gt; oc = (Class&lt;?&gt;)od;<a name="line.510"></a>
+<span class="sourceLineNo">511</span>         Class&lt;?&gt; ic = (Class&lt;?&gt;)id;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>         while ((ic = ic.getEnclosingClass()) != null)<a name="line.512"></a>
+<span class="sourceLineNo">513</span>            if (ic == oc)<a name="line.513"></a>
+<span class="sourceLineNo">514</span>               return true;<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
+<span class="sourceLineNo">516</span>      return false;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>   }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>   private static void extractTypes(Map&lt;Type,Type&gt; typeMap, Class&lt;?&gt; c) {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      Type gs = c.getGenericSuperclass();<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      if (gs instanceof ParameterizedType) {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         ParameterizedType pt = (ParameterizedType)gs;<a name="line.522"></a>
+<span class="sourceLineNo">523</span>         Type[] typeParameters = ((Class&lt;?&gt;)pt.getRawType()).getTypeParameters();<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         Type[] actualTypeArguments = pt.getActualTypeArguments();<a name="line.524"></a>
+<span class="sourceLineNo">525</span>         for (int i = 0; i &lt; typeParameters.length; i++) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>            if (typeMap.containsKey(actualTypeArguments[i]))<a name="line.526"></a>
+<span class="sourceLineNo">527</span>               actualTypeArguments[i] = typeMap.get(actualTypeArguments[i]);<a name="line.527"></a>
+<span class="sourceLineNo">528</span>            typeMap.put(typeParameters[i], actualTypeArguments[i]);<a name="line.528"></a>
+<span class="sourceLineNo">529</span>         }<a name="line.529"></a>
+<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
+<span class="sourceLineNo">531</span>   }<a name="line.531"></a>
+<span class="sourceLineNo">532</span><a name="line.532"></a>
+<span class="sourceLineNo">533</span>   /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>    * Finds a public method with the specified parameters.<a name="line.534"></a>
+<span class="sourceLineNo">535</span>    *<a name="line.535"></a>
+<span class="sourceLineNo">536</span>    * @param c The class to look for the method.<a name="line.536"></a>
+<span class="sourceLineNo">537</span>    * @param name The method name.<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    * @param returnType<a name="line.538"></a>
+<span class="sourceLineNo">539</span>    *    The return type of the method.<a name="line.539"></a>
+<span class="sourceLineNo">540</span>    *    Can be a super type of the actual return type.<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    *    For example, if the actual return type is &lt;code&gt;CharSequence&lt;/code&gt;, then &lt;code&gt;Object&lt;/code&gt; will match but<a name="line.541"></a>
+<span class="sourceLineNo">542</span>    *    &lt;code&gt;String&lt;/code&gt; will not.<a name="line.542"></a>
+<span class="sourceLineNo">543</span>    * @param parameterTypes<a name="line.543"></a>
+<span class="sourceLineNo">544</span>    *    The parameter types of the method.<a name="line.544"></a>
+<span class="sourceLineNo">545</span>    *    Can be subtypes of the actual parameter types.<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    *    For example, if the parameter type is &lt;code&gt;CharSequence&lt;/code&gt;, then &lt;code&gt;String&lt;/code&gt; will match but<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    *    &lt;code&gt;Object&lt;/code&gt; will not.<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    * @return The matched method, or &lt;jk&gt;null&lt;/jk&gt; if no match was found.<a name="line.548"></a>
+<span class="sourceLineNo">549</span>    */<a name="line.549"></a>
+<span class="sourceLineNo">550</span>   public static Method findPublicMethod(Class&lt;?&gt; c, String name, Class&lt;?&gt; returnType, Class&lt;?&gt;...parameterTypes) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>      for (Method m : c.getMethods()) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         if (isPublic(m) &amp;&amp; m.getName().equals(name)) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>            Class&lt;?&gt; rt = m.getReturnType();<a name="line.553"></a>
+<span class="sourceLineNo">554</span>            if (isParentClass(returnType, rt)) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>               Class&lt;?&gt;[] pt = m.getParameterTypes();<a name="line.555"></a>
+<span class="sourceLineNo">556</span>               if (pt.length == parameterTypes.length) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                  boolean matches = true;<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                  for (int i = 0; i &lt; pt.length; i++) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                     if (! isParentClass(pt[i], parameterTypes[i])) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        matches = false;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                        break;<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                     }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                  }<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                  if (matches)<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                     return m;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>               }<a name="line.566"></a>
+<span class="sourceLineNo">567</span>            }<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         }<a name="line.568"></a>
+<span class="sourceLineNo">569</span>      }<a name="line.569"></a>
+<span class="sourceLineNo">570</span>      return null;<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>   /**<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    * Finds a public constructor with the specified parameters without throwing an exception.<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    *<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    * @param c The class to search for a constructor.<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    * @param parameterTypes<a name="line.577"></a>
+<span class="sourceLineNo">578</span>    *    The parameter types in the constructor.<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    *    Can be subtypes of the actual constructor argument types.<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    * @return The matching constructor, or &lt;jk&gt;null&lt;/jk&gt; if constructor could not be found.<a name="line.580"></a>
+<span class="sourceLineNo">581</span>    */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>   @SuppressWarnings("unchecked")<a name="line.582"></a>
+<span class="sourceLineNo">583</span>   public static &lt;T&gt; Constructor&lt;T&gt; findPublicConstructor(Class&lt;T&gt; c, Class&lt;?&gt;...parameterTypes) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>      for (Constructor&lt;?&gt; n : c.getConstructors()) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         if (isPublic(n)) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>            Class&lt;?&gt;[] pt = n.getParameterTypes();<a name="line.586"></a>
+<span class="sourceLineNo">587</span>            if (pt.length == parameterTypes.length) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>               boolean matches = true;<a name="line.588"></a>
+<span class="sourceLineNo">589</span>               for (int i = 0; i &lt; pt.length; i++) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                  if (! isParentClass(pt[i], parameterTypes[i])) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                     matches = false;<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                     break;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                  }<a name="line.593"></a>
+<span class="sourceLineNo">594</span>               }<a name="line.594"></a>
+<span class="sourceLineNo">595</span>               if (matches)<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                  return (Constructor&lt;T&gt;)n;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>            }<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>      }<a name="line.599"></a>
+<span class="sourceLineNo">600</span>      return null;<a name="line.600"></a>
+<span class="sourceLineNo">601</span>   }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>   /**<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    * Finds the public constructor that can take in the specified arguments.<a name="line.604"></a>
+<span class="sourceLineNo">605</span>    *<a name="line.605"></a>
+<span class="sourceLineNo">606</span>    * @param c The class we're trying to construct.<a name="line.606"></a>
+<span class="sourceLineNo">607</span>    * @param args The arguments we want to pass into the constructor.<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    * @return<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    *    The constructor, or &lt;jk&gt;null&lt;/jk&gt; if a public constructor could not be found that takes in the specified<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    *    arguments.<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    */<a name="line.611"></a>
+<span class="sourceLineNo">612</span>   public static &lt;T&gt; Constructor&lt;T&gt; findPublicConstructor(Class&lt;T&gt; c, Object...args) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>      return findPublicConstructor(c, getClasses(args));<a name="line.613"></a>
+<span class="sourceLineNo">614</span>   }<a name="line.614"></a>
+<span class="sourceLineNo">615</span><a name="line.615"></a>
+<span class="sourceLineNo">616</span>   /**<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    * Returns the class types for the specified arguments.<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    *<a name="line.618"></a>
+<span class="sourceLineNo">619</span>    * @param args The objects we're getting the classes of.<a name="line.619"></a>
+<span class="sourceLineNo">620</span>    * @return The classes of the arguments.<a name="line.620"></a>
+<span class="sourceLineNo">621</span>    */<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   public static Class&lt;?&gt;[] getClasses(Object...args) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>      Class&lt;?&gt;[] pt = new Class&lt;?&gt;[args.length];<a name="line.623"></a>
+<span class="sourceLineNo">624</span>      for (int i = 0; i &lt; args.length; i++)<a name="line.624"></a>
+<span class="sourceLineNo">625</span>         pt[i] = args[i] == null ? null : args[i].getClass();<a name="line.625"></a>
+<span class="sourceLineNo">626</span>      return pt;<a name="line.626"></a>
+<span class="sourceLineNo">627</span>   }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>// This code is inherently unsafe (but still potentially useful?)<a name="line.629"></a>
+<span class="sourceLineNo">630</span>//<a name="line.630"></a>
+<span class="sourceLineNo">631</span>// /**<a name="line.631"></a>
+<span class="sourceLineNo">632</span>//  * Converts class name strings to ClassMeta objects.<a name="line.632"></a>
+<span class="sourceLineNo">633</span>//  *<a name="line.633"></a>
+<span class="sourceLineNo">634</span>//  * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.634"></a>
+<span class="sourceLineNo">635</span>//  * &lt;ul&gt;<a name="line.635"></a>
+<span class="sourceLineNo">636</span>//  *    &lt;li&gt;&lt;js&gt;"java.lang.String"&lt;/js&gt;<a name="line.636"></a>
+<span class="sourceLineNo">637</span>//  *    &lt;li&gt;&lt;js&gt;"com.foo.sample.MyBean[]"&lt;/js&gt;<a name="line.637"></a>
+<span class="sourceLineNo">638</span>//  *    &lt;li&gt;&lt;js&gt;"java.util.HashMap&lt;java.lang.String,java.lang.Integer&gt;"&lt;/js&gt;<a name="line.638"></a>
+<span class="sourceLineNo">639</span>//  *    &lt;li&gt;&lt;js&gt;"[Ljava.lang.String;"&lt;/js&gt; (i.e. the value of &lt;code&gt;String[].&lt;jk&gt;class&lt;/jk&gt;.getName()&lt;/code&gt;)<a name="line.639"></a>
+<span class="sourceLineNo">640</span>//  * &lt;/ul&gt;<a name="line.640"></a>
+<span class="sourceLineNo">641</span>//  *<a name="line.641"></a>
+<span class="sourceLineNo">642</span>//  * @param s The class name.<a name="line.642"></a>
+<span class="sourceLineNo">643</span>//  * @return The ClassMeta corresponding to the class name string.<a name="line.643"></a>
+<span class="sourceLineNo">644</span>//  */<a name="line.644"></a>
+<span class="sourceLineNo">645</span>// protected final ClassMeta&lt;?&gt; getClassMetaFromString(String s) {<a name="line.645"></a>
+<span class="sourceLineNo">646</span>//    int d = 0;<a name="line.646"></a>
+<span class="sourceLineNo">647</span>//    if (s == null || s.isEmpty())<a name="line.647"></a>
+<span class="sourceLineNo">648</span>//       return null;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>//<a name="line.649"></a>
+<span class="sourceLineNo">650</span>//    // Check for Class.getName() on array class types.<a name="line.650"></a>
+<span class="sourceLineNo">651</span>//    if (s.charAt(0) == '[') {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>//       try {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>//          return getClassMeta(findClass(s));<a name="line.653"></a>
+<span class="sourceLineNo">654</span>//       } catch (ClassNotFoundException e) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>//          throw new RuntimeException(e);<a name="line.655"></a>
+<span class="sourceLineNo">656</span>//       }<a name="line.656"></a>
+<span class="sourceLineNo">657</span>//    }<a name="line.657"></a>
+<span class="sourceLineNo">658</span>//<a name="line.658"></a>
+<span class="sourceLineNo">659</span>//    int i1 = 0;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>//    int i2 = 0;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>//    int dim = 0;<a name="line.661"></a>
+<span class="sourceLineNo">662</span>//    List&lt;ClassMeta&lt;?&gt;&gt; p = null;<a name="line.662"></a>
+<span class="sourceLineNo">663</span>//    for (int i = 0; i &lt; s.length(); i++) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>//       char c = s.charAt(i);<a name="line.664"></a>
+<span class="sourceLineNo">665</span>//       if (c == '&lt;') {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>//          if (d == 0) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>//             i1 = i;<a name="line.667"></a>
+<span class="sourceLineNo">668</span>//             i2 = i+1;<a name="line.668"></a>
+<span class="sourceLineNo">669</span>//             p = new LinkedList&lt;ClassMeta&lt;?&gt;&gt;();<a name="line.669"></a>
+<span class="sourceLineNo">670</span>//          }<a name="line.670"></a>
+<span class="sourceLineNo">671</span>//          d++;<a name="line.671"></a>
+<span class="sourceLineNo">672</span>//       } else if (c == '&gt;') {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>//          d--;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>//          if (d == 0 &amp;&amp; p != null)<a name="line.674"></a>
+<span class="sourceLineNo">675</span>//             p.add(getClassMetaFromString(s.substring(i2, i)));<a name="line.675"></a>
+<span class="sourceLineNo">676</span>//       } else if (c == ',' &amp;&amp; d == 1) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>//          if (p != null)<a name="line.677"></a>
+<span class="sourceLineNo">678</span>//             p.add(getClassMetaFromString(s.substring(i2, i)));<a name="line.678"></a>
+<span class="sourceLineNo">679</span>//          i2 = i+1;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>//       }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>//       if (c == '[') {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>//          if (i1 == 0)<a name="line.682"></a>
+<span class="sourceLineNo">683</span>//             i1 = i;<a name="line.683"></a>
+<span class="sourceLineNo">684</span>//          dim++;<a name="line.684"></a>
+<span class="sourceLineNo">685</span>//       }<a name="line.685"></a>
+<span class="sourceLineNo">686</span>//    }<a name="line.686"></a>
+<span class="sourceLineNo">687</span>//    if (i1 == 0)<a name="line.687"></a>
+<span class="sourceLineNo">688</span>//       i1 = s.length();<a name="line.688"></a>
+<span class="sourceLineNo">689</span>//    try {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>//       String name = s.substring(0, i1).trim();<a name="line.690"></a>
+<span class="sourceLineNo">691</span>//       char x = name.charAt(0);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>//       Class&lt;?&gt; c = null;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>//       if (x &gt;= 'b' &amp;&amp; x &lt;= 's') {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>//          if (x == 'b' &amp;&amp; name.equals("boolean"))<a name="line.694"></a>
+<span class="sourceLineNo">695</span>//             c = boolean.class;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>//          else if (x == 'b' &amp;&amp; name.equals("byte"))<a name="line.696"></a>
+<span class="sourceLineNo">697</span>//             c = byte.class;<a name="line.697"></a>
+<span class="sourceLineNo">698</span>//          else if (x == 'c' &amp;&amp; name.equals("char"))<a name="line.698"></a>
+<span class="sourceLineNo">699</span>//             c = char.class;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>//          else if (x == 'd' &amp;&amp; name.equals("double"))<a name="line.700"></a>
+<span class="sourceLineNo">701</span>//             c = double.class;<a name="line.701"></a>
+<span class="sourceLineNo">702</span>//          else if (x == 'i' &amp;&amp; name.equals("int"))<a name="line.702"></a>
+<span class="sourceLineNo">703</span>//             c = int.class;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>//          else if (x == 'l' &amp;&amp; name.equals("long"))<a name="line.704"></a>
+<span class="sourceLineNo">705</span>//             c = long.class;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>//          else if (x == 's' &amp;&amp; name.equals("short"))<a name="line.706"></a>
+<span class="sourceLineNo">707</span>//             c = short.class;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>//          else<a name="line.708"></a>
+<span class="sourceLineNo">709</span>//             c = findClass(name);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>//       } else {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>//          c = findClass(name);<a name="line.711"></a>
+<span class="sourceLineNo">712</span>//       }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>//<a name="line.713"></a>
+<span class="sourceLineNo">714</span>//       ClassMeta&lt;?&gt; cm = getClassMeta(c);<a name="line.714"></a>
+<span class="sourceLineNo">715</span>//<a name="line.715"></a>
+<span class="sourceLineNo">716</span>//       if (p != null) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>//          if (cm.isMap())<a name="line.717"></a>
+<span class="sourceLineNo">718</span>//             cm = new ClassMeta(c, this).setKeyType(p.get(0)).setValueType(p.get(1));<a name="line.718"></a>
+<span class="sourceLineNo">719</span>//          if (cm.isCollection())<a name="line.719"></a>
+<span class="sourceLineNo">720</span>//             cm = new ClassMeta(c, this).setElementType(p.get(0));<a name="line.720"></a>
+<span class="sourceLineNo">721</span>//       }<a name="line.721"></a>
+<span class="sourceLineNo">722</span>//<a name="line.722"></a>
+<span class="sourceLineNo">723</span>//       while (dim &gt; 0) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>//          cm = new ClassMeta(Array.newInstance(cm.getInnerClass(), 0).getClass(), this);<a name="line.724"></a>
+<span class="sourceLineNo">725</span>//          dim--;<a name="line.725"></a>
+<span class="sourceLineNo">726</span>//       }<a name="line.726"></a>
 <span class="sourceLineNo">727</span>//<a name="line.727"></a>
-<span class="sourceLineNo">728</span>// private Class&lt;?&gt; findClass(String name) throws ClassNotFoundException {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>//    return classLoader == null ? Class.forName(name) : Class.forName(name, true, classLoader);<a name="line.729"></a>
-<span class="sourceLineNo">730</span>// }<a name="line.730"></a>
-<span class="sourceLineNo">731</span><a name="line.731"></a>
-<span class="sourceLineNo">732</span>   /**<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    * Returns a {@link MethodInfo} bean that describes the specified method.<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    *<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    * @param m The method to describe.<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    * @return The bean with information about the method.<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    */<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   public static MethodInfo getMethodInfo(Method m) {<a name="line.738"></a>
-<span class="sourceLineNo">739</span>      return new MethodInfo(m);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>   }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>   /**<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    * Returns {@link MethodInfo} beans that describe the specified methods.<a name="line.743"></a>
-<span class="sourceLineNo">744</span>    *<a name="line.744"></a>
-<span class="sourceLineNo">745</span>    * @param m The methods to describe.<a name="line.745"></a>
-<span class="sourceLineNo">746</span>    * @return The beans with information about the methods.<a name="line.746"></a>
-<span class="sourceLineNo">747</span>    */<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   public static MethodInfo[] getMethodInfo(Collection&lt;Method&gt; m) {<a name="line.748"></a>
-<span class="sourceLineNo">749</span>      MethodInfo[] mi = new MethodInfo[m.size()];<a name="line.749"></a>
-<span class="sourceLineNo">750</span>      int i = 0;<a name="line.750"></a>
-<span class="sourceLineNo">751</span>      for (Method mm : m)<a name="line.751"></a>
-<span class="sourceLineNo">752</span>         mi[i++] = getMethodInfo(mm);<a name="line.752"></a>
-<span class="sourceLineNo">753</span>      return mi;<a name="line.753"></a>
-<span class="sourceLineNo">754</span>   }<a name="line.754"></a>
-<span class="sourceLineNo">755</span><a name="line.755"></a>
-<span class="sourceLineNo">756</span>   /**<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    * Simple bean that shows the name, parameter types, and return type of a method.<a name="line.757"></a>
-<span class="sourceLineNo">758</span>    */<a name="line.758"></a>
-<span class="sourceLineNo">759</span>   @SuppressWarnings("javadoc")<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   public static class MethodInfo {<a name="line.760"></a>
-<span class="sourceLineNo">761</span>      public final String methodName;<a name="line.761"></a>
-<span class="sourceLineNo">762</span>      public final String[] parameterTypes;<a name="line.762"></a>
-<span class="sourceLineNo">763</span>      public final String returnType;<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>      MethodInfo(Method m) {<a name="line.765"></a>
-<span class="sourceLineNo">766</span>         methodName = m.getName();<a name="line.766"></a>
-<span class="sourceLineNo">767</span>         Type[] pt = m.getGenericParameterTypes();<a name="line.767"></a>
-<span class="sourceLineNo">768</span>         parameterTypes = new String[pt.length];<a name="line.768"></a>
-<span class="sourceLineNo">769</span>         for (int i  = 0; i &lt; pt.length; i++)<a name="line.769"></a>
-<span class="sourceLineNo">770</span>            parameterTypes[i] = BeanContext.DEFAULT.getClassMeta(pt[i]).toString();<a name="line.770"></a>
-<span class="sourceLineNo">771</span>         returnType = BeanContext.DEFAULT.getClassMeta(m.getGenericReturnType()).toString();<a name="line.771"></a>
-<span class="sourceLineNo">772</span>      }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>   }<a name="line.773"></a>
-<span class="sourceLineNo">774</span><a name="line.774"></a>
-<span class="sourceLineNo">775</span>   /**<a name="line.775"></a>
-<span class="sourceLineNo">776</span>    * Creates an instance of the specified class without throwing exceptions.<a name="line.776"></a>
-<span class="sourceLineNo">777</span>    *<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    * @param c The class to cast to.<a name="line.778"></a>
-<span class="sourceLineNo">779</span>    * @param c2<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    *    The class to instantiate.<a name="line.780"></a>
-<span class="sourceLineNo">781</span>    *    Can also be an instance of the class.<a name="line.781"></a>
-<span class="sourceLineNo">782</span>    * @param args The arguments to pass to the constructor.<a name="line.782"></a>
-<span class="sourceLineNo">783</span>    * @return The new class instance, or &lt;jk&gt;null&lt;/jk&gt; if the class was &lt;jk&gt;null&lt;/jk&gt; or is abstract or an interface.<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    * @throws RuntimeException if constructor could not be found or called.<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    */<a name="line.785"></a>
-<span class="sourceLineNo">786</span>   public static &lt;T&gt; T newInstance(Class&lt;T&gt; c, Object c2, Object...args) {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>      return newInstanceFromOuter(null, c, c2, args);<a name="line.787"></a>
-<span class="sourceLineNo">788</span>   }<a name="line.788"></a>
-<span class="sourceLineNo">789</span><a name="line.789"></a>
-<span class="sourceLineNo">790</span>   /**<a name="line.790"></a>
-<span class="sourceLineNo">791</span>    * Creates an instance of the specified class from within the context of another object.<a name="line.791"></a>
-<span class="sourceLineNo">792</span>    *<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    * @param outer<a name="line.793"></a>
-<span class="sourceLineNo">794</span>    *    The outer object.<a name="line.794"></a>
-<span class="sourceLineNo">795</span>    *    Can be &lt;jk&gt;null&lt;/jk&gt;.<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    * @param c The class to cast to.<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    * @param c2<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    *    The class to instantiate.<a name="line.798"></a>
-<span class="sourceLineNo">799</span>    *    Can also be an instance of the class.<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    * @param args The arguments to pass to the constructor.<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    * @return The new class instance, or &lt;jk&gt;null&lt;/jk&gt; if the class was &lt;jk&gt;null&lt;/jk&gt; or is abstract or an interface.<a name="line.801"></a>
-<span class="sourceLineNo">802</span>    * @throws RuntimeException if constructor could not be found or called.<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    */<a name="line.803"></a>
-<span class="sourceLineNo">804</span>   @SuppressWarnings("unchecked")<a name="line.804"></a>
-<span class="sourceLineNo">805</span>   public static &lt;T&gt; T newInstanceFromOuter(Object outer, Class&lt;T&gt; c, Object c2, Object...args) {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>      if (c2 == null)<a name="line.806"></a>
-<span class="sourceLineNo">807</span>         return null;<a name="line.807"></a>
-<span class="sourceLineNo">808</span>      if (c2 instanceof Class) {<a name="line.808"></a>
-<span class="sourceLineNo">809</span>         try {<a name="line.809"></a>
-<span class="sourceLineNo">810</span>            Class&lt;?&gt; c3 = (Class&lt;?&gt;)c2;<a name="line.810"></a>
-<span class="sourceLineNo">811</span>            if (c3.isInterface() || isAbstract(c3))<a name="line.811"></a>
-<span class="sourceLineNo">812</span>               return null;<a name="line.812"></a>
-<span class="sourceLineNo">813</span>            Constructor&lt;?&gt; con = findPublicConstructor(c3, args);<a name="line.813"></a>
-<span class="sourceLineNo">814</span>            if (con != null)<a name="line.814"></a>
-<span class="sourceLineNo">815</span>               return (T)con.newInstance(args);<a name="line.815"></a>
-<span class="sourceLineNo">816</span>            if (outer != null) {<a name="line.816"></a>
-<span class="sourceLineNo">817</span>               Object[] args2 = new AList&lt;Object&gt;().append(outer).appendAll(args).toArray();<a name="line.817"></a>
-<span class="sourceLineNo">818</span>               con = findPublicConstructor(c3, args2);<a name="line.818"></a>
-<span class="sourceLineNo">819</span>               if (con != null)<a name="line.819"></a>
-<span class="sourceLineNo">820</span>                  return (T)con.newInstance(args2);<a name="line.820"></a>
-<span class="sourceLineNo">821</span>            }<a name="line.821"></a>
-<span class="sourceLineNo">822</span>            return (T)c3.getConstructor(getClasses(args)).newInstance(args);<a name="line.822"></a>
-<span class="sourceLineNo">823</span>         } catch (Exception e) {<a name="line.823"></a>
-<span class="sourceLineNo">824</span>            throw new FormattedRuntimeException(e, "Could not instantiate class {0}", c.getName());<a name="line.824"></a>
-<span class="sourceLineNo">825</span>         }<a name="line.825"></a>
-<span class="sourceLineNo">826</span>      } else if (isParentClass(c, c2.getClass())) {<a name="line.826"></a>
-<span class="sourceLineNo">827</span>         return (T)c2;<a name="line.827"></a>
-<span class="sourceLineNo">828</span>      } else {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>         throw new FormattedRuntimeException("Object of type {0} found but was expecting {1}.", c2.getClass(), c.getClass());<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      }<a name="line.830"></a>
-<span class="sourceLineNo">831</span>   }<a name="line.831"></a>
-<span class="sourceLineNo">832</span><a name="line.832"></a>
-<span class="sourceLineNo">833</span>   /**<a name="line.833"></a>
-<span class="sourceLineNo">834</span>    * Returns all the fields in the specified class and all parent classes.<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    *<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    * &lt;p&gt;<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    * Fields are ordered in either parent-to-child, or child-to-parent order, then alphabetically.<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    *<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    * @param c The class to get all fields on.<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    * @param parentFirst Order them in parent-class-to-child-class order, otherwise child-class-to-parent-class order.<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    * @return An iterable of all fields in the specified class.<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    */<a name="line.842"></a>
-<span class="sourceLineNo">843</span>   @SuppressWarnings("rawtypes")<a name="line.843"></a>
-<span class="sourceLineNo">844</span>   public static Iterable&lt;Field&gt; getAllFields(final Class c, final boolean parentFirst) {<a name="line.844"></a>
-<span class="sourceLineNo">845</span>      return new Iterable&lt;Field&gt;() {<a name="line.845"></a>
-<span class="sourceLineNo">846</span>         @Override<a name="line.846"></a>
-<span class="sourceLineNo">847</span>         public Iterator&lt;Field&gt; iterator() {<a name="line.847"></a>
-<span class="sourceLineNo">848</span>            return new Iterator&lt;Field&gt;(){<a name="line.848"></a>
-<span class="sourceLineNo">849</span>               final Iterator&lt;Class&lt;?&gt;&gt; classIterator = getParentClasses(c, parentFirst, false);<a name="line.849"></a>
-<span class="sourceLineNo">850</span>               Field[] fields = classIterator.hasNext() ? sort(classIterator.next().getDeclaredFields()) : new Field[0];<a name="line.850"></a>
-<span class="sourceLineNo">851</span>               int fIndex = 0;<a name="line.851"></a>
-<span class="sourceLineNo">852</span>               Field next;<a name="line.852"></a>
-<span class="sourceLineNo">853</span><a name="line.853"></a>
-<span class="sourceLineNo">854</span>               @Override<a name="line.854"></a>
-<span class="sourceLineNo">855</span>               public boolean hasNext() {<a name="line.855"></a>
-<span class="sourceLineNo">856</span>                  prime();<a name="line.856"></a>
-<span class="sourceLineNo">857</span>                  return next != null;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>               }<a name="line.858"></a>
+<span class="sourceLineNo">728</span>//       return cm;<a name="line.728"></a>
+<span class="sourceLineNo">729</span>//    } catch (ClassNotFoundException e) {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>//       throw new RuntimeException(e);<a name="line.730"></a>
+<span class="sourceLineNo">731</span>//    }<a name="line.731"></a>
+<span class="sourceLineNo">732</span>// }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>//<a name="line.733"></a>
+<span class="sourceLineNo">734</span>// private Class&lt;?&gt; findClass(String name) throws ClassNotFoundException {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>//    return classLoader == null ? Class.forName(name) : Class.forName(name, true, classLoader);<a name="line.735"></a>
+<span class="sourceLineNo">736</span>// }<a name="line.736"></a>
+<span class="sourceLineNo">737</span><a name="line.737"></a>
+<span class="sourceLineNo">738</span>   /**<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    * Returns a {@link MethodInfo} bean that describes the specified method.<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    *<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    * @param m The method to describe.<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    * @return The bean with information about the method.<a name="line.742"></a>
+<span class="sourceLineNo">743</span>    */<a name="line.743"></a>
+<span class="sourceLineNo">744</span>   public static MethodInfo getMethodInfo(Method m) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>      return new MethodInfo(m);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>   }<a name="line.746"></a>
+<span class="sourceLineNo">747</span><a name="line.747"></a>
+<span class="sourceLineNo">748</span>   /**<a name="line.748"></a>
+<span class="sourceLineNo">749</span>    * Returns {@link MethodInfo} beans that describe the specified methods.<a name="line.749"></a>
+<span class="sourceLineNo">750</span>    *<a name="line.750"></a>
+<span class="sourceLineNo">751</span>    * @param m The methods to describe.<a name="line.751"></a>
+<span class="sourceLineNo">752</span>    * @return The beans with information about the methods.<a name="line.752"></a>
+<span class="sourceLineNo">753</span>    */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>   public static MethodInfo[] getMethodInfo(Collection&lt;Method&gt; m) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>      MethodInfo[] mi = new MethodInfo[m.size()];<a name="line.755"></a>
+<span class="sourceLineNo">756</span>      int i = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>      for (Method mm : m)<a name="line.757"></a>
+<span class="sourceLineNo">758</span>         mi[i++] = getMethodInfo(mm);<a name="line.758"></a>
+<span class="sourceLineNo">759</span>      return mi;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>   }<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>   /**<a name="line.762"></a>
+<span class="sourceLineNo">763</span>    * Simple bean that shows the name, parameter types, and return type of a method.<a name="line.763"></a>
+<span class="sourceLineNo">764</span>    */<a name="line.764"></a>
+<span class="sourceLineNo">765</span>   @SuppressWarnings("javadoc")<a name="line.765"></a>
+<span class="sourceLineNo">766</span>   public static class MethodInfo {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>      public final String methodName;<a name="line.767"></a>
+<span class="sourceLineNo">768</span>      public final String[] parameterTypes;<a name="line.768"></a>
+<span class="sourceLineNo">769</span>      public final String returnType;<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>      MethodInfo(Method m) {<a name="line.771"></a>
+<span class="sourceLineNo">772</span>         methodName = m.getName();<a name="line.772"></a>
+<span class="sourceLineNo">773</span>         Type[] pt = m.getGenericParameterTypes();<a name="line.773"></a>
+<span class="sourceLineNo">774</span>         parameterTypes = new String[pt.length];<a name="line.774"></a>
+<span class="sourceLineNo">775</span>         for (int i  = 0; i &lt; pt.length; i++)<a name="line.775"></a>
+<span class="sourceLineNo">776</span>            parameterTypes[i] = BeanContext.DEFAULT.getClassMeta(pt[i]).toString();<a name="line.776"></a>
+<span class="sourceLineNo">777</span>         returnType = BeanContext.DEFAULT.getClassMeta(m.getGenericReturnType()).toString();<a name="line.777"></a>
+<span class="sourceLineNo">778</span>      }<a name="line.778"></a>
+<span class="sourceLineNo">779</span>   }<a name="line.779"></a>
+<span class="sourceLineNo">780</span><a name="line.780"></a>
+<span class="sourceLineNo">781</span>   /**<a name="line.781"></a>
+<span class="sourceLineNo">782</span>    * Creates an instance of the specified class without throwing exceptions.<a name="line.782"></a>
+<span class="sourceLineNo">783</span>    *<a name="line.783"></a>
+<span class="sourceLineNo">784</span>    * @param c The class to cast to.<a name="line.784"></a>
+<span class="sourceLineNo">785</span>    * @param c2<a name="line.785"></a>
+<span class="sourceLineNo">786</span>    *    The class to instantiate.<a name="line.786"></a>
+<span class="sourceLineNo">787</span>    *    Can also be an instance of the class.<a name="line.787"></a>
+<span class="sourceLineNo">788</span>    * @param args The arguments to pass to the constructor.<a name="line.788"></a>
+<span class="sourceLineNo">789</span>    * @return The new class instance, or &lt;jk&gt;null&lt;/jk&gt; if the class was &lt;jk&gt;null&lt;/jk&gt; or is abstract or an interface.<a name="line.789"></a>
+<span class="sourceLineNo">790</span>    * @throws RuntimeException if constructor could not be found or called.<a name="line.790"></a>
+<span class="sourceLineNo">791</span>    */<a name="line.791"></a>
+<span class="sourceLineNo">792</span>   public static &lt;T&gt; T newInstance(Class&lt;T&gt; c, Object c2, Object...args) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>      return newInstanceFromOuter(null, c, c2, args);<a name="line.793"></a>
+<span class="sourceLineNo">794</span>   }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>   /**<a name="line.796"></a>
+<span class="sourceLineNo">797</span>    * Creates an instance of the specified class from within the context of another object.<a name="line.797"></a>
+<span class="sourceLineNo">798</span>    *<a name="line.798"></a>
+<span class="sourceLineNo">799</span>    * @param outer<a name="line.799"></a>
+<span class="sourceLineNo">800</span>    *    The outer object.<a name="line.800"></a>
+<span class="sourceLineNo">801</span>    *    Can be &lt;jk&gt;null&lt;/jk&gt;.<a name="line.801"></a>
+<span class="sourceLineNo">802</span>    * @param c The class to cast to.<a name="line.802"></a>
+<span class="sourceLineNo">803</span>    * @param c2<a name="line.803"></a>
+<span class="sourceLineNo">804</span>    *    The class to instantiate.<a name="line.804"></a>
+<span class="sourceLineNo">805</span>    *    Can also be an instance of the class.<a name="line.805"></a>
+<span class="sourceLineNo">806</span>    * @param args The arguments to pass to the constructor.<a name="line.806"></a>
+<span class="sourceLineNo">807</span>    * @return The new class instance, or &lt;jk&gt;null&lt;/jk&gt; if the class was &lt;jk&gt;null&lt;/jk&gt; or is abstract or an interface.<a name="line.807"></a>
+<span class="sourceLineNo">808</span>    * @throws RuntimeException if constructor could not be found or called.<a name="line.808"></a>
+<span class="sourceLineNo">809</span>    */<a name="line.809"></a>
+<span class="sourceLineNo">810</span>   @SuppressWarnings("unchecked")<a name="line.810"></a>
+<span class="sourceLineNo">811</span>   public static &lt;T&gt; T newInstanceFromOuter(Object outer, Class&lt;T&gt; c, Object c2, Object...args) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>      if (c2 == null)<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         return null;<a name="line.813"></a>
+<span class="sourceLineNo">814</span>      if (c2 instanceof Class) {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         try {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>            Class&lt;?&gt; c3 = (Class&lt;?&gt;)c2;<a name="line.816"></a>
+<span class="sourceLineNo">817</span>            if (c3.isInterface() || isAbstract(c3))<a name="line.817"></a>
+<span class="sourceLineNo">818</span>               return null;<a name="line.818"></a>
+<span class="sourceLineNo">819</span>            Constructor&lt;?&gt; con = findPublicConstructor(c3, args);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>            if (con != null)<a name="line.820"></a>
+<span class="sourceLineNo">821</span>               return (T)con.newInstance(args);<a name="line.821"></a>
+<span class="sourceLineNo">822</span>            if (outer != null) {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>               Object[] args2 = new AList&lt;Object&gt;().append(outer).appendAll(args).toArray();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>               con = findPublicConstructor(c3, args2);<a name="line.824"></a>
+<span class="sourceLineNo">825</span>               if (con != null)<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                  return (T)con.newInstance(args2);<a name="line.826"></a>
+<span class="sourceLineNo">827</span>            }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>            return (T)c3.getConstructor(getClasses(args)).newInstance(args);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>         } catch (Exception e) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>            throw new FormattedRuntimeException(e, "Could not instantiate class {0}", c.getName());<a name="line.830"></a>
+<span class="sourceLineNo">831</span>         }<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      } else if (isParentClass(c, c2.getClass())) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>         return (T)c2;<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      } else {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>         throw new FormattedRuntimeException("Object of type {0} found but was expecting {1}.", c2.getClass(), c.getClass());<a name="line.835"></a>
+<span class="sourceLineNo">836</span>      }<a name="line.836"></a>
+<span class="sourceLineNo">837</span>   }<a name="line.837"></a>
+<span class="sourceLineNo">838</span><a name="line.838"></a>
+<span class="sourceLineNo">839</span>   /**<a name="line.839"></a>
+<span class="sourceLineNo">840</span>    * Returns all the fields in the specified class and all parent classes.<a name="line.840"></a>
+<span class="sourceLineNo">841</span>    *<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    * &lt;p&gt;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    * Fields are ordered in either parent-to-child, or child-to-parent order, then alphabetically.<a name="line.843"></a>
+<span class="sourceLineNo">844</span>    *<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    * @param c The class to get all fields on.<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    * @param parentFirst Order them in parent-class-to-child-class order, otherwise child-class-to-parent-class order.<a name="line.846"></a>
+<span class="sourceLineNo">847</span>    * @return An iterable of all fields in the specified class.<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    */<a name="line.848"></a>
+<span class="sourceLineNo">849</span>   @SuppressWarnings("rawtypes")<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   public static Iterable&lt;Field&gt; getAllFields(final Class c, final boolean parentFirst) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>      return new Iterable&lt;Field&gt;() {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>         @Override<a name="line.852"></a>
+<span class="sourceLineNo">853</span>         public Iterator&lt;Field&gt; iterator() {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>            return new Iterator&lt;Field&gt;(){<a name="line.854"></a>
+<span class="sourceLineNo">855</span>               final Iterator&lt;Class&lt;?&gt;&gt; classIterator = getParentClasses(c, parentFirst, false);<a name="line.855"></a>
+<span class="sourceLineNo">856</span>               Field[] fields = classIterator.hasNext() ? sort(classIterator.next().getDeclaredFields()) : new Field[0];<a name="line.856"></a>
+<span class="sourceLineNo">857</span>               int fIndex = 0;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>               Field next;<a name="line.858"></a>
 <span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>               private void prime() {<a name="line.860"></a>
-<span class="sourceLineNo">861</span>                  if (next == null) {<a name="line.861"></a>
-<span class="sourceLineNo">862</span>                     while (fIndex &gt;= fields.length) {<a name="line.862"></a>
-<span class="sourceLineNo">863</span>                        if (classIterator.hasNext()) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>                           fields = sort(classIterator.next().getDeclaredFields());<a name="line.864"></a>
-<span class="sourceLineNo">865</span>                           fIndex = 0;<a name="line.865"></a>
-<span class="sourceLineNo">866</span>                        } else {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>                           fIndex = -1;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>                        }<a name="line.868"></a>
-<span class="sourceLineNo">869</span>                     }<a name="line.869"></a>
-<span class="sourceLineNo">870</span>                     if (fIndex != -1)<a name="line.870"></a>
-<span class="sourceLineNo">871</span>                        next = fields[fIndex++];<a name="line.871"></a>
-<span class="sourceLineNo">872</span>                  }<a name="line.872"></a>
-<span class="sourceLineNo">873</span>               }<a name="line.873"></a>
-<span class="sourceLineNo">874</span><a name="line.874"></a>
-<span class="sourceLineNo">875</span>               @Override<a name="line.875"></a>
-<span class="sourceLineNo">876</span>               public Field next() {<a name="line.876"></a>
-<span class="sourceLineNo">877</span>                  prime();<a name="line.877"></a>
-<span class="sourceLineNo">878</span>                  Field f = next;<a name="line.878"></a>
-<span class="sourceLineNo">879</span>                  next = null;<a name="line.879"></a>
-<span class="sourceLineNo">880</span>                  return f;<a name="line.880"></a>
-<span class="sourceLineNo">881</span>               }<a name="line.881"></a>
-<span class="sourceLineNo">882</span><a name="line.882"></a>
-<span class="sourceLineNo">883</span>               @Override<a name="line.883"></a>
-<span class="sourceLineNo">884</span>               public void remove() {<a name="line.884"></a>
-<span class="sourceLineNo">885</span>               }<a name="line.885"></a>
-<span class="sourceLineNo">886</span>            };<a name="line.886"></a>
-<span class="sourceLineNo">887</span>         }<a name="line.887"></a>
-<span class="sourceLineNo">888</span>      };<a name="line.888"></a>
-<span class="sourceLineNo">889</span>   }<a name="line.889"></a>
-<span class="sourceLineNo">890</span><a name="line.890"></a>
-<span class="sourceLineNo">891</span>   /**<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    * Returns all the methods in the specified class and all parent classes.<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    *<a name="line.893"></a>
-<span class="sourceLineNo">894</span>    * &lt;p&gt;<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    * Methods are ordered in either parent-to-child, or child-to-parent order, then alphabetically.<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    *<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    * @param c The class to get all methods on.<a name="line.897"></a>
-<span class="sourceLineNo">898</span>    * @param parentFirst Order them in parent-class-to-child-class order, otherwise child-class-to-parent-class order.<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    * @return An iterable of all methods in the specified class.<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    */<a name="line.900"></a>
-<span class="sourceLineNo">901</span>   @SuppressWarnings("rawtypes")<a name="line.901"></a>
-<span class="sourceLineNo">902</span>   public static Iterable&lt;Method&gt; getAllMethods(final Class c, final boolean parentFirst) {<a name="line.902"></a>
-<span class="sourceLineNo">903</span>      return new Iterable&lt;Method&gt;() {<a name="line.903"></a>
-<span class="sourceLineNo">904</span>         @Override<a name="line.904"></a>
-<span class="sourceLineNo">905</span>         public Iterator&lt;Method&gt; iterator() {<a name="line.905"></a>
-<span class="sourceLineNo">906</span>            return new Iterator&lt;Method&gt;(){<a name="line.906"></a>
-<span class="sourceLineNo">907</span>               final Iterator&lt;Class&lt;?&gt;&gt; classIterator = getParentClasses(c, parentFirst, true);<a name="line.907"></a>
-<span class="sourceLineNo">908</span>               Method[] methods = classIterator.hasNext() ? sort(classIterator.next().getDeclaredMethods()) : new Method[0];<a name="line.908"></a>
-<span class="sourceLineNo">909</span>               int mIndex = 0;<a name="line.909"></a>
-<span class="sourceLineNo">910</span>               Method next;<a name="line.910"></a>
-<span class="sourceLineNo">911</span><a name="line.911"></a>
-<span class="sourceLineNo">912</span>               @Override<a name="line.912"></a>
-<span class="sourceLineNo">913</span>               public boolean hasNext() {<a name="line.913"></a>
-<span class="sourceLineNo">914</span>                  prime();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>                  return next != null;<a name="line.915"></a>
-<span class="sourceLineNo">916</span>               }<a name="line.916"></a>
+<span class="sourceLineNo">860</span>               @Override<a name="line.860"></a>
+<span class="sourceLineNo">861</span>               public boolean hasNext() {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                  prime();<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                  return next != null;<a name="line.863"></a>
+<span class="sourceLineNo">864</span>               }<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>               private void prime() {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                  if (next == null) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                     while (fIndex &gt;= fields.length) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                        if (classIterator.hasNext()) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                           fields = sort(classIterator.next().getDeclaredFields());<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                           fIndex = 0;<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        } else {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                           fIndex = -1;<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        }<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                     }<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                     if (fIndex != -1)<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                        next = fields[fIndex++];<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                  }<a name="line.878"></a>
+<span class="sourceLineNo">879</span>               }<a name="line.879"></a>
+<span class="sourceLineNo">880</span><a name="line.880"></a>
+<span class="sourceLineNo">881</span>               @Override<a name="line.881"></a>
+<span class="sourceLineNo">882</span>               public Field next() {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                  prime();<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                  Field f = next;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                  next = null;<a name="line.885"></a>
+<span

<TRUNCATED>


[26/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeShort.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeShort.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeShort.html
index 0c96146..f063f45 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeShort.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeShort.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeSimple.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeSimple.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeSimple.html
index 1c5adf6..3cb35cb 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeSimple.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeSimple.html
@@ -221,7 +221,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ToString.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ToString.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ToString.html
index 8c39c87..3275551 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ToString.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ToString.html
@@ -221,7 +221,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.html
index efe4cbd..f2ff683 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.html
@@ -369,7 +369,7 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateLongSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateLongSwap.html b/content/site/apidocs/org/apache/juneau/transforms/DateLongSwap.html
index 67f00c9..610a3dc 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateLongSwap.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateLongSwap.html
@@ -187,7 +187,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -257,7 +257,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/DateLongSwap.html#line.40">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
                    <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;o,
                    <a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;hint)
-            throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
+            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Converts the specified <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang"><code>Long</code></a> to a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a>.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -273,7 +273,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The narrowed object.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></code></dd>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - If this method is not implemented.</dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateMapSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateMapSwap.html b/content/site/apidocs/org/apache/juneau/transforms/DateMapSwap.html
index 6f7c5c6..68300e2 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateMapSwap.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateMapSwap.html
@@ -187,7 +187,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -257,7 +257,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/DateMapSwap.html#line.43">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
                    <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&nbsp;o,
                    <a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;hint)
-            throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
+            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Converts the specified <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a> to a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a>.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -273,7 +273,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The narrowed object.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></code></dd>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - If this method is not implemented.</dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateFull.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateFull.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateFull.html
index d900f44..a3d96db 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateFull.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateFull.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateLong.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateLong.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateLong.html
index 823e0a8..2439256 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateLong.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateLong.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateMedium.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateMedium.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateMedium.html
index 5931d28..aa7bd64 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateMedium.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateMedium.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateShort.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateShort.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateShort.html
index 2fd4744..2f1ab20 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateShort.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateShort.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateSimple.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateSimple.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateSimple.html
index 8036df2..934b11b 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateSimple.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateSimple.html
@@ -221,7 +221,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeFull.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeFull.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeFull.html
index 5918c14..2e9013f 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeFull.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeFull.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeLong.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeLong.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeLong.html
index 0e3dbd8..440a937 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeLong.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeLong.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeMedium.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeMedium.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeMedium.html
index ac4e33a..565959e 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeMedium.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeMedium.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeShort.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeShort.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeShort.html
index 25c2f1c..34ad3be 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeShort.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeShort.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeSimple.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeSimple.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeSimple.html
index d8aed8a..b66536f 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeSimple.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.DateTimeSimple.html
@@ -221,7 +221,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601D.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601D.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601D.html
index ae9cd50..3baedfe 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601D.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601D.html
@@ -219,7 +219,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DT.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DT.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DT.html
index c60dba2..290068e 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DT.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DT.html
@@ -237,7 +237,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTL.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTL.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTL.html
index f46bc43..5e4febf 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTL.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTL.html
@@ -231,7 +231,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTP.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTP.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTP.html
index e805b58..d94377d 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTP.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTP.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.ISO8601DT.htm
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTPZ.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTPZ.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTPZ.html
index cd4c3d7..046fbec 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTPZ.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTPZ.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.ISO8601DTZ.ht
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTZ.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTZ.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTZ.html
index 588faeb..78f9033 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTZ.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ISO8601DTZ.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.RFC2822D.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.RFC2822D.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.RFC2822D.html
index dc95211..dc4d019 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.RFC2822D.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.RFC2822D.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.RFC2822DT.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.RFC2822DT.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.RFC2822DT.html
index 0307327..921200c 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.RFC2822DT.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.RFC2822DT.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.RFC2822DTZ.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.RFC2822DTZ.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.RFC2822DTZ.html
index 7bf9869..0bab634 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.RFC2822DTZ.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.RFC2822DTZ.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeFull.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeFull.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeFull.html
index 82705d5..b9e53de 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeFull.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeFull.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[02/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/xml/XmlSerializerSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/xml/XmlSerializerSession.html b/content/site/apidocs/src-html/org/apache/juneau/xml/XmlSerializerSession.html
index f0cdf4a..ea2d295 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/xml/XmlSerializerSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/xml/XmlSerializerSession.html
@@ -310,439 +310,440 @@
 <span class="sourceLineNo">302</span>            eType = aType = ((Delegate&lt;?&gt;)o).getClassMeta();<a name="line.302"></a>
 <span class="sourceLineNo">303</span>         }<a name="line.303"></a>
 <span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>         sType = aType.getSerializedClassMeta();<a name="line.305"></a>
+<span class="sourceLineNo">305</span>         sType = aType;<a name="line.305"></a>
 <span class="sourceLineNo">306</span><a name="line.306"></a>
 <span class="sourceLineNo">307</span>         // Swap if necessary<a name="line.307"></a>
-<span class="sourceLineNo">308</span>         PojoSwap swap = aType.getPojoSwap();<a name="line.308"></a>
+<span class="sourceLineNo">308</span>         PojoSwap swap = aType.getPojoSwap(this);<a name="line.308"></a>
 <span class="sourceLineNo">309</span>         if (swap != null) {<a name="line.309"></a>
 <span class="sourceLineNo">310</span>            o = swap.swap(this, o);<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>            // If the getSwapClass() method returns Object, we need to figure out<a name="line.312"></a>
-<span class="sourceLineNo">313</span>            // the actual type now.<a name="line.313"></a>
-<span class="sourceLineNo">314</span>            if (sType.isObject())<a name="line.314"></a>
-<span class="sourceLineNo">315</span>               sType = getClassMetaForObject(o);<a name="line.315"></a>
-<span class="sourceLineNo">316</span>         }<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      } else {<a name="line.317"></a>
-<span class="sourceLineNo">318</span>         sType = eType.getSerializedClassMeta();<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      }<a name="line.319"></a>
-<span class="sourceLineNo">320</span><a name="line.320"></a>
-<span class="sourceLineNo">321</span>      // Does the actual type match the expected type?<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      boolean isExpectedType = true;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      if (o == null || ! eType.same(aType)) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>         if (eType.isNumber())<a name="line.324"></a>
-<span class="sourceLineNo">325</span>            isExpectedType = aType.isNumber();<a name="line.325"></a>
-<span class="sourceLineNo">326</span>         else if (eType.isMap())<a name="line.326"></a>
-<span class="sourceLineNo">327</span>            isExpectedType = aType.isMap();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>         else if (eType.isCollectionOrArray())<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            isExpectedType = aType.isCollectionOrArray();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>         else<a name="line.330"></a>
-<span class="sourceLineNo">331</span>            isExpectedType = false;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      }<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>      String resolvedDictionaryName = isExpectedType ? null : aType.getDictionaryName();<a name="line.334"></a>
-<span class="sourceLineNo">335</span><a name="line.335"></a>
-<span class="sourceLineNo">336</span>      // Note that the dictionary name may be specified on the actual type or the serialized type.<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      // HTML templates will have them defined on the serialized type.<a name="line.337"></a>
-<span class="sourceLineNo">338</span>      String dictionaryName = aType.getDictionaryName();<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      if (dictionaryName == null)<a name="line.339"></a>
-<span class="sourceLineNo">340</span>         dictionaryName = sType.getDictionaryName();<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>      // char '\0' is interpreted as null.<a name="line.342"></a>
-<span class="sourceLineNo">343</span>      if (o != null &amp;&amp; sType.isChar() &amp;&amp; ((Character)o).charValue() == 0)<a name="line.343"></a>
-<span class="sourceLineNo">344</span>         o = null;<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>      boolean isCollapsed = false;     // If 'true', this is a collection and we're not rendering the outer element.<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      boolean isRaw = (sType.isReader() || sType.isInputStream()) &amp;&amp; o != null;<a name="line.347"></a>
-<span class="sourceLineNo">348</span><a name="line.348"></a>
-<span class="sourceLineNo">349</span>      // Get the JSON type string.<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      if (o == null) {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>         type = NULL;<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      } else if (sType.isCharSequence() || sType.isChar()) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>         type = STRING;<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      } else if (sType.isNumber()) {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>         type = NUMBER;<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      } else if (sType.isBoolean()) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>         type = BOOLEAN;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      } else if (sType.isMapOrBean()) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>         isCollapsed = sType.getExtendedMeta(XmlClassMeta.class).getFormat() == COLLAPSED;<a name="line.359"></a>
-<span class="sourceLineNo">360</span>         type = OBJECT;<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      } else if (sType.isCollectionOrArray()) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>         isCollapsed = (format == COLLAPSED &amp;&amp; ! addNamespaceUris);<a name="line.362"></a>
-<span class="sourceLineNo">363</span>         type = ARRAY;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      } else {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>         type = STRING;<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      }<a name="line.366"></a>
-<span class="sourceLineNo">367</span><a name="line.367"></a>
-<span class="sourceLineNo">368</span>      if (format.isOneOf(MIXED,MIXED_PWS,TEXT,TEXT_PWS,XMLTEXT) &amp;&amp; type.isOneOf(NULL,STRING,NUMBER,BOOLEAN))<a name="line.368"></a>
-<span class="sourceLineNo">369</span>         isCollapsed = true;<a name="line.369"></a>
-<span class="sourceLineNo">370</span><a name="line.370"></a>
-<span class="sourceLineNo">371</span>      // Is there a name associated with this bean?<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      if (elementName == null &amp;&amp; dictionaryName != null) {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>         elementName = dictionaryName;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>         isExpectedType = true;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      }<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>      if (enableNamespaces) {<a name="line.377"></a>
-<span class="sourceLineNo">378</span>         if (elementNamespace == null)<a name="line.378"></a>
-<span class="sourceLineNo">379</span>            elementNamespace = sType.getExtendedMeta(XmlClassMeta.class).getNamespace();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>         if (elementNamespace == null)<a name="line.380"></a>
-<span class="sourceLineNo">381</span>            elementNamespace = aType.getExtendedMeta(XmlClassMeta.class).getNamespace();<a name="line.381"></a>
-<span class="sourceLineNo">382</span>         if (elementNamespace != null &amp;&amp; elementNamespace.uri == null)<a name="line.382"></a>
-<span class="sourceLineNo">383</span>            elementNamespace = null;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>         if (elementNamespace == null)<a name="line.384"></a>
-<span class="sourceLineNo">385</span>            elementNamespace = defaultNamespace;<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      } else {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>         elementNamespace = null;<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      }<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>      // Do we need a carriage return after the start tag?<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      boolean cr = o != null &amp;&amp; (sType.isMapOrBean() || sType.isCollectionOrArray()) &amp;&amp; ! isMixed;<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span>      String en = elementName;<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      if (en == null &amp;&amp; ! isRaw) {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>         en = type.toString();<a name="line.395"></a>
-<span class="sourceLineNo">396</span>         type = null;<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      }<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      boolean encodeEn = elementName != null;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>      String ns = (elementNamespace == null ? null : elementNamespace.name);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      String dns = null, elementNs = null;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>      if (enableNamespaces) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>         dns = elementName == null &amp;&amp; defaultNamespace != null ? defaultNamespace.name : null;<a name="line.402"></a>
-<span class="sourceLineNo">403</span>         elementNs = elementName == null ? dns : ns;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>         if (elementName == null)<a name="line.404"></a>
-<span class="sourceLineNo">405</span>            elementNamespace = null;<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
-<span class="sourceLineNo">407</span><a name="line.407"></a>
-<span class="sourceLineNo">408</span>      // Render the start tag.<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      if (! isCollapsed) {<a name="line.409"></a>
-<span class="sourceLineNo">410</span>         if (en != null) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>            out.oTag(i, elementNs, en, encodeEn);<a name="line.411"></a>
-<span class="sourceLineNo">412</span>            if (addNamespaceUris) {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>               out.attr((String)null, "xmlns", defaultNamespace.getUri());<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>               for (Namespace n : namespaces)<a name="line.415"></a>
-<span class="sourceLineNo">416</span>                  out.attr("xmlns", n.getName(), n.getUri());<a name="line.416"></a>
-<span class="sourceLineNo">417</span>            }<a name="line.417"></a>
-<span class="sourceLineNo">418</span>            if (! isExpectedType) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>               if (resolvedDictionaryName != null)<a name="line.419"></a>
-<span class="sourceLineNo">420</span>                  out.attr(dns, getBeanTypePropertyName(eType), resolvedDictionaryName);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>               else if (type != null &amp;&amp; type != STRING)<a name="line.421"></a>
-<span class="sourceLineNo">422</span>                  out.attr(dns, getBeanTypePropertyName(eType), type);<a name="line.422"></a>
-<span class="sourceLineNo">423</span>            }<a name="line.423"></a>
-<span class="sourceLineNo">424</span>         } else {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>            out.i(i);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>         }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>         if (o == null) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>            if ((sType.isBoolean() || sType.isNumber()) &amp;&amp; ! sType.isNullable())<a name="line.428"></a>
-<span class="sourceLineNo">429</span>               o = sType.getPrimitiveDefault();<a name="line.429"></a>
-<span class="sourceLineNo">430</span>         }<a name="line.430"></a>
-<span class="sourceLineNo">431</span><a name="line.431"></a>
-<span class="sourceLineNo">432</span>         if (o != null &amp;&amp; ! (sType.isMapOrBean() || en == null))<a name="line.432"></a>
-<span class="sourceLineNo">433</span>            out.append('&gt;');<a name="line.433"></a>
-<span class="sourceLineNo">434</span><a name="line.434"></a>
-<span class="sourceLineNo">435</span>         if (cr &amp;&amp; ! (sType.isMapOrBean()))<a name="line.435"></a>
-<span class="sourceLineNo">436</span>            out.nl(i+1);<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      }<a name="line.437"></a>
-<span class="sourceLineNo">438</span><a name="line.438"></a>
-<span class="sourceLineNo">439</span>      ContentResult rc = CR_ELEMENTS;<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>      // Render the tag contents.<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      if (o != null) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>         if (sType.isUri() || (pMeta != null &amp;&amp; pMeta.isUri())) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>            out.textUri(o);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>         } else if (sType.isCharSequence() || sType.isChar()) {<a name="line.445"></a>
-<span class="sourceLineNo">446</span>            if (format == XMLTEXT)<a name="line.446"></a>
-<span class="sourceLineNo">447</span>               out.append(o);<a name="line.447"></a>
-<span class="sourceLineNo">448</span>            else<a name="line.448"></a>
-<span class="sourceLineNo">449</span>               out.text(o, preserveWhitespace);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>         } else if (sType.isNumber() || sType.isBoolean()) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>            out.append(o);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>         } else if (sType.isMap() || (wType != null &amp;&amp; wType.isMap())) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>            if (o instanceof BeanMap)<a name="line.453"></a>
-<span class="sourceLineNo">454</span>               rc = serializeBeanMap(out, (BeanMap)o, elementNamespace, isCollapsed, isMixed);<a name="line.454"></a>
-<span class="sourceLineNo">455</span>            else<a name="line.455"></a>
-<span class="sourceLineNo">456</span>               rc = serializeMap(out, (Map)o, sType, eType.getKeyType(), eType.getValueType(), isMixed);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>         } else if (sType.isBean()) {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>            rc = serializeBeanMap(out, toBeanMap(o), elementNamespace, isCollapsed, isMixed);<a name="line.458"></a>
-<span class="sourceLineNo">459</span>         } else if (sType.isCollection() || (wType != null &amp;&amp; wType.isCollection())) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>            if (isCollapsed)<a name="line.460"></a>
-<span class="sourceLineNo">461</span>               this.indent--;<a name="line.461"></a>
-<span class="sourceLineNo">462</span>            serializeCollection(out, o, sType, eType, pMeta, isMixed);<a name="line.462"></a>
-<span class="sourceLineNo">463</span>            if (isCollapsed)<a name="line.463"></a>
-<span class="sourceLineNo">464</span>               this.indent++;<a name="line.464"></a>
-<span class="sourceLineNo">465</span>         } else if (sType.isArray()) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>            if (isCollapsed)<a name="line.466"></a>
-<span class="sourceLineNo">467</span>               this.indent--;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>            serializeCollection(out, o, sType, eType, pMeta, isMixed);<a name="line.468"></a>
-<span class="sourceLineNo">469</span>            if (isCollapsed)<a name="line.469"></a>
-<span class="sourceLineNo">470</span>               this.indent++;<a name="line.470"></a>
-<span class="sourceLineNo">471</span>         } else if (sType.isReader() || sType.isInputStream()) {<a name="line.471"></a>
-<span class="sourceLineNo">472</span>            IOUtils.pipe(o, out);<a name="line.472"></a>
-<span class="sourceLineNo">473</span>         } else {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>            if (format == XMLTEXT)<a name="line.474"></a>
-<span class="sourceLineNo">475</span>               out.append(toString(o));<a name="line.475"></a>
-<span class="sourceLineNo">476</span>            else<a name="line.476"></a>
-<span class="sourceLineNo">477</span>               out.text(toString(o));<a name="line.477"></a>
-<span class="sourceLineNo">478</span>         }<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
-<span class="sourceLineNo">480</span><a name="line.480"></a>
-<span class="sourceLineNo">481</span>      pop();<a name="line.481"></a>
-<span class="sourceLineNo">482</span><a name="line.482"></a>
-<span class="sourceLineNo">483</span>      // Render the end tag.<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      if (! isCollapsed) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>         if (en != null) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>            if (rc == CR_EMPTY) {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>               if (isHtmlMode())<a name="line.487"></a>
-<span class="sourceLineNo">488</span>                  out.append('&gt;').eTag(elementNs, en, encodeEn);<a name="line.488"></a>
-<span class="sourceLineNo">489</span>               else<a name="line.489"></a>
-<span class="sourceLineNo">490</span>                  out.append('/').append('&gt;');<a name="line.490"></a>
-<span class="sourceLineNo">491</span>            } else if (rc == CR_VOID || o == null) {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>               out.append('/').append('&gt;');<a name="line.492"></a>
-<span class="sourceLineNo">493</span>            }<a name="line.493"></a>
-<span class="sourceLineNo">494</span>            else<a name="line.494"></a>
-<span class="sourceLineNo">495</span>               out.ie(cr &amp;&amp; rc != CR_MIXED ? i : 0).eTag(elementNs, en, encodeEn);<a name="line.495"></a>
-<span class="sourceLineNo">496</span>         }<a name="line.496"></a>
-<span class="sourceLineNo">497</span>         if (! isMixed)<a name="line.497"></a>
-<span class="sourceLineNo">498</span>            out.nl(i);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>      return out;<a name="line.501"></a>
-<span class="sourceLineNo">502</span>   }<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span>   private ContentResult serializeMap(XmlWriter out, Map m, ClassMeta&lt;?&gt; sType,<a name="line.504"></a>
-<span class="sourceLineNo">505</span>         ClassMeta&lt;?&gt; eKeyType, ClassMeta&lt;?&gt; eValueType, boolean isMixed) throws Exception {<a name="line.505"></a>
-<span class="sourceLineNo">506</span><a name="line.506"></a>
-<span class="sourceLineNo">507</span>      m = sort(m);<a name="line.507"></a>
-<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>      ClassMeta&lt;?&gt; keyType = eKeyType == null ? sType.getKeyType() : eKeyType;<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      ClassMeta&lt;?&gt; valueType = eValueType == null ? sType.getValueType() : eValueType;<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>      boolean hasChildren = false;<a name="line.512"></a>
-<span class="sourceLineNo">513</span>      for (Iterator i = m.entrySet().iterator(); i.hasNext();) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>         Map.Entry e = (Map.Entry)i.next();<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span>         Object k = e.getKey();<a name="line.516"></a>
-<span class="sourceLineNo">517</span>         if (k == null) {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>            k = "\u0000";<a name="line.518"></a>
-<span class="sourceLineNo">519</span>         } else {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>            k = generalize(k, keyType);<a name="line.520"></a>
-<span class="sourceLineNo">521</span>            if (isTrimStrings() &amp;&amp; k instanceof String)<a name="line.521"></a>
-<span class="sourceLineNo">522</span>               k = k.toString().trim();<a name="line.522"></a>
-<span class="sourceLineNo">523</span>         }<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>         Object value = e.getValue();<a name="line.525"></a>
-<span class="sourceLineNo">526</span><a name="line.526"></a>
-<span class="sourceLineNo">527</span>         if (! hasChildren) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>            hasChildren = true;<a name="line.528"></a>
-<span class="sourceLineNo">529</span>            out.append('&gt;').nlIf(! isMixed, indent);<a name="line.529"></a>
-<span class="sourceLineNo">530</span>         }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>         serializeAnything(out, value, valueType, toString(k), null, false, XmlFormat.DEFAULT, isMixed, false, null);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>      }<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      return hasChildren ? CR_ELEMENTS : CR_EMPTY;<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   }<a name="line.534"></a>
-<span class="sourceLineNo">535</span><a name="line.535"></a>
-<span class="sourceLineNo">536</span>   private ContentResult serializeBeanMap(XmlWriter out, BeanMap&lt;?&gt; m,<a name="line.536"></a>
-<span class="sourceLineNo">537</span>         Namespace elementNs, boolean isCollapsed, boolean isMixed) throws Exception {<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      boolean hasChildren = false;<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      BeanMeta&lt;?&gt; bm = m.getMeta();<a name="line.539"></a>
-<span class="sourceLineNo">540</span><a name="line.540"></a>
-<span class="sourceLineNo">541</span>      List&lt;BeanPropertyValue&gt; lp = m.getValues(isTrimNulls());<a name="line.541"></a>
-<span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>      XmlBeanMeta xbm = bm.getExtendedMeta(XmlBeanMeta.class);<a name="line.543"></a>
-<span class="sourceLineNo">544</span><a name="line.544"></a>
-<span class="sourceLineNo">545</span>      Set&lt;String&gt;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>         attrs = xbm.getAttrPropertyNames(),<a name="line.546"></a>
-<span class="sourceLineNo">547</span>         elements = xbm.getElementPropertyNames(),<a name="line.547"></a>
-<span class="sourceLineNo">548</span>         collapsedElements = xbm.getCollapsedPropertyNames();<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      String<a name="line.549"></a>
-<span class="sourceLineNo">550</span>         attrsProperty = xbm.getAttrsPropertyName(),<a name="line.550"></a>
-<span class="sourceLineNo">551</span>         contentProperty = xbm.getContentPropertyName();<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span>      XmlFormat cf = null;<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
-<span class="sourceLineNo">555</span>      Object content = null;<a name="line.555"></a>
-<span class="sourceLineNo">556</span>      ClassMeta&lt;?&gt; contentType = null;<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      for (BeanPropertyValue p : lp) {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>         String n = p.getName();<a name="line.558"></a>
-<span class="sourceLineNo">559</span>         if (attrs.contains(n) || attrs.contains("*") || n.equals(attrsProperty)) {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>            BeanPropertyMeta pMeta = p.getMeta();<a name="line.560"></a>
-<span class="sourceLineNo">561</span>            ClassMeta&lt;?&gt; cMeta = p.getClassMeta();<a name="line.561"></a>
-<span class="sourceLineNo">562</span><a name="line.562"></a>
-<span class="sourceLineNo">563</span>            String key = p.getName();<a name="line.563"></a>
-<span class="sourceLineNo">564</span>            Object value = p.getValue();<a name="line.564"></a>
-<span class="sourceLineNo">565</span>            Throwable t = p.getThrown();<a name="line.565"></a>
-<span class="sourceLineNo">566</span>            if (t != null)<a name="line.566"></a>
-<span class="sourceLineNo">567</span>               onBeanGetterException(pMeta, t);<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>            if (canIgnoreValue(cMeta, key, value))<a name="line.569"></a>
-<span class="sourceLineNo">570</span>               continue;<a name="line.570"></a>
-<span class="sourceLineNo">571</span><a name="line.571"></a>
-<span class="sourceLineNo">572</span>            Namespace ns = (enableNamespaces &amp;&amp; pMeta.getExtendedMeta(XmlBeanPropertyMeta.class).getNamespace() != elementNs ? pMeta.getExtendedMeta(XmlBeanPropertyMeta.class).getNamespace() : null);<a name="line.572"></a>
-<span class="sourceLineNo">573</span><a name="line.573"></a>
-<span class="sourceLineNo">574</span>            if (pMeta.isUri()  ) {<a name="line.574"></a>
-<span class="sourceLineNo">575</span>               out.attrUri(ns, key, value);<a name="line.575"></a>
-<span class="sourceLineNo">576</span>            } else if (n.equals(attrsProperty)) {<a name="line.576"></a>
-<span class="sourceLineNo">577</span>               if (value instanceof BeanMap) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>                  BeanMap&lt;?&gt; bm2 = (BeanMap)value;<a name="line.578"></a>
-<span class="sourceLineNo">579</span>                  for (BeanPropertyValue p2 : bm2.getValues(true)) {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>                     String key2 = p2.getName();<a name="line.580"></a>
-<span class="sourceLineNo">581</span>                     Object value2 = p2.getValue();<a name="line.581"></a>
-<span class="sourceLineNo">582</span>                     Throwable t2 = p2.getThrown();<a name="line.582"></a>
-<span class="sourceLineNo">583</span>                     if (t2 != null)<a name="line.583"></a>
-<span class="sourceLineNo">584</span>                        onBeanGetterException(pMeta, t);<a name="line.584"></a>
-<span class="sourceLineNo">585</span>                     out.attr(ns, key2, value2);<a name="line.585"></a>
-<span class="sourceLineNo">586</span>                  }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>               } else /* Map */ {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>                  Map m2 = (Map)value;<a name="line.588"></a>
-<span class="sourceLineNo">589</span>                  for (Map.Entry e : (Set&lt;Map.Entry&gt;)(m2.entrySet())) {<a name="line.589"></a>
-<span class="sourceLineNo">590</span>                     out.attr(ns, toString(e.getKey()), e.getValue());<a name="line.590"></a>
-<span class="sourceLineNo">591</span>                  }<a name="line.591"></a>
-<span class="sourceLineNo">592</span>               }<a name="line.592"></a>
-<span class="sourceLineNo">593</span>            } else {<a name="line.593"></a>
-<span class="sourceLineNo">594</span>               out.attr(ns, key, value);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>            }<a name="line.595"></a>
-<span class="sourceLineNo">596</span>         }<a name="line.596"></a>
-<span class="sourceLineNo">597</span>      }<a name="line.597"></a>
-<span class="sourceLineNo">598</span><a name="line.598"></a>
-<span class="sourceLineNo">599</span>      boolean<a name="line.599"></a>
-<span class="sourceLineNo">600</span>         hasContent = false,<a name="line.600"></a>
-<span class="sourceLineNo">601</span>         preserveWhitespace = false,<a name="line.601"></a>
-<span class="sourceLineNo">602</span>         isVoidElement = xbm.getContentFormat() == VOID;<a name="line.602"></a>
-<span class="sourceLineNo">603</span><a name="line.603"></a>
-<span class="sourceLineNo">604</span>      for (BeanPropertyValue p : lp) {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>         BeanPropertyMeta pMeta = p.getMeta();<a name="line.605"></a>
-<span class="sourceLineNo">606</span>         ClassMeta&lt;?&gt; cMeta = p.getClassMeta();<a name="line.606"></a>
-<span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>         String n = p.getName();<a name="line.608"></a>
-<span class="sourceLineNo">609</span>         if (n.equals(contentProperty)) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>            content = p.getValue();<a name="line.610"></a>
-<span class="sourceLineNo">611</span>            contentType = p.getClassMeta();<a name="line.611"></a>
-<span class="sourceLineNo">612</span>            hasContent = true;<a name="line.612"></a>
-<span class="sourceLineNo">613</span>            cf = xbm.getContentFormat();<a name="line.613"></a>
-<span class="sourceLineNo">614</span>            if (cf.isOneOf(MIXED,MIXED_PWS,TEXT,TEXT_PWS,XMLTEXT))<a name="line.614"></a>
-<span class="sourceLineNo">615</span>               isMixed = true;<a name="line.615"></a>
-<span class="sourceLineNo">616</span>            if (cf.isOneOf(MIXED_PWS, TEXT_PWS))<a name="line.616"></a>
-<span class="sourceLineNo">617</span>               preserveWhitespace = true;<a name="line.617"></a>
-<span class="sourceLineNo">618</span>            if (contentType.isCollection() &amp;&amp; ((Collection)content).isEmpty())<a name="line.618"></a>
-<span class="sourceLineNo">619</span>               hasContent = false;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>            else if (contentType.isArray() &amp;&amp; Array.getLength(content) == 0)<a name="line.620"></a>
-<span class="sourceLineNo">621</span>               hasContent = false;<a name="line.621"></a>
-<span class="sourceLineNo">622</span>         } else if (elements.contains(n) || collapsedElements.contains(n) || elements.contains("*") || collapsedElements.contains("*") ) {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>            String key = p.getName();<a name="line.623"></a>
-<span class="sourceLineNo">624</span>            Object value = p.getValue();<a name="line.624"></a>
-<span class="sourceLineNo">625</span>            Throwable t = p.getThrown();<a name="line.625"></a>
-<span class="sourceLineNo">626</span>            if (t != null)<a name="line.626"></a>
-<span class="sourceLineNo">627</span>               onBeanGetterException(pMeta, t);<a name="line.627"></a>
-<span class="sourceLineNo">628</span><a name="line.628"></a>
-<span class="sourceLineNo">629</span>            if (canIgnoreValue(cMeta, key, value))<a name="line.629"></a>
-<span class="sourceLineNo">630</span>               continue;<a name="line.630"></a>
-<span class="sourceLineNo">631</span><a name="line.631"></a>
-<span class="sourceLineNo">632</span>            if (! hasChildren) {<a name="line.632"></a>
-<span class="sourceLineNo">633</span>               hasChildren = true;<a name="line.633"></a>
-<span class="sourceLineNo">634</span>               out.appendIf(! isCollapsed, '&gt;').nlIf(! isMixed, indent);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>            }<a name="line.635"></a>
-<span class="sourceLineNo">636</span><a name="line.636"></a>
-<span class="sourceLineNo">637</span>            XmlBeanPropertyMeta xbpm = pMeta.getExtendedMeta(XmlBeanPropertyMeta.class);<a name="line.637"></a>
-<span class="sourceLineNo">638</span>            serializeAnything(out, value, cMeta, key, xbpm.getNamespace(), false, xbpm.getXmlFormat(), isMixed, false, pMeta);<a name="line.638"></a>
-<span class="sourceLineNo">639</span>         }<a name="line.639"></a>
-<span class="sourceLineNo">640</span>      }<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      if (! hasContent)<a name="line.641"></a>
-<span class="sourceLineNo">642</span>         return (hasChildren ? CR_ELEMENTS : isVoidElement ? CR_VOID : CR_EMPTY);<a name="line.642"></a>
-<span class="sourceLineNo">643</span>      out.append('&gt;').nlIf(! isMixed, indent);<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>      // Serialize XML content.<a name="line.645"></a>
-<span class="sourceLineNo">646</span>      if (content != null) {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>         if (contentType == null) {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>         } else if (contentType.isCollection()) {<a name="line.648"></a>
-<span class="sourceLineNo">649</span>            Collection c = (Collection)content;<a name="line.649"></a>
-<span class="sourceLineNo">650</span>            for (Iterator i = c.iterator(); i.hasNext();) {<a name="line.650"></a>
-<span class="sourceLineNo">651</span>               Object value = i.next();<a name="line.651"></a>
-<span class="sourceLineNo">652</span>               serializeAnything(out, value, contentType.getElementType(), null, null, false, cf, isMixed, preserveWhitespace, null);<a name="line.652"></a>
-<span class="sourceLineNo">653</span>            }<a name="line.653"></a>
-<span class="sourceLineNo">654</span>         } else if (contentType.isArray()) {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>            Collection c = toList(Object[].class, content);<a name="line.655"></a>
-<span class="sourceLineNo">656</span>            for (Iterator i = c.iterator(); i.hasNext();) {<a name="line.656"></a>
-<span class="sourceLineNo">657</span>               Object value = i.next();<a name="line.657"></a>
-<span class="sourceLineNo">658</span>               serializeAnything(out, value, contentType.getElementType(), null, null, false, cf, isMixed, preserveWhitespace, null);<a name="line.658"></a>
-<span class="sourceLineNo">659</span>            }<a name="line.659"></a>
-<span class="sourceLineNo">660</span>         } else {<a name="line.660"></a>
-<span class="sourceLineNo">661</span>            serializeAnything(out, content, contentType, null, null, false, cf, isMixed, preserveWhitespace, null);<a name="line.661"></a>
-<span class="sourceLineNo">662</span>         }<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      } else {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>         if (! isTrimNulls()) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>            if (! isMixed)<a name="line.665"></a>
-<span class="sourceLineNo">666</span>               out.i(indent);<a name="line.666"></a>
-<span class="sourceLineNo">667</span>            out.text(content);<a name="line.667"></a>
-<span class="sourceLineNo">668</span>            if (! isMixed)<a name="line.668"></a>
-<span class="sourceLineNo">669</span>               out.nl(indent);<a name="line.669"></a>
-<span class="sourceLineNo">670</span>         }<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      }<a name="line.671"></a>
-<span class="sourceLineNo">672</span>      return isMixed ? CR_MIXED : CR_ELEMENTS;<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   }<a name="line.673"></a>
-<span class="sourceLineNo">674</span><a name="line.674"></a>
-<span class="sourceLineNo">675</span>   private XmlWriter serializeCollection(XmlWriter out, Object in, ClassMeta&lt;?&gt; sType,<a name="line.675"></a>
-<span class="sourceLineNo">676</span>         ClassMeta&lt;?&gt; eType, BeanPropertyMeta ppMeta, boolean isMixed) throws Exception {<a name="line.676"></a>
-<span class="sourceLineNo">677</span><a name="line.677"></a>
-<span class="sourceLineNo">678</span>      ClassMeta&lt;?&gt; seType = sType.getElementType();<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      if (seType == null)<a name="line.679"></a>
-<span class="sourceLineNo">680</span>         seType = object();<a name="line.680"></a>
-<span class="sourceLineNo">681</span>      ClassMeta&lt;?&gt; eeType = eType.getElementType();<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>      Collection c = (sType.isCollection() ? (Collection)in : toList(sType.getInnerClass(), in));<a name="line.683"></a>
-<span class="sourceLineNo">684</span><a name="line.684"></a>
-<span class="sourceLineNo">685</span>      c = sort(c);<a name="line.685"></a>
-<span class="sourceLineNo">686</span><a name="line.686"></a>
-<span class="sourceLineNo">687</span>      String type2 = null;<a name="line.687"></a>
-<span class="sourceLineNo">688</span>      if (sType != eType)<a name="line.688"></a>
-<span class="sourceLineNo">689</span>         type2 = sType.getDictionaryName();<a name="line.689"></a>
-<span class="sourceLineNo">690</span><a name="line.690"></a>
-<span class="sourceLineNo">691</span>      String eName = type2;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      Namespace eNs = null;<a name="line.692"></a>
-<span class="sourceLineNo">693</span><a name="line.693"></a>
-<span class="sourceLineNo">694</span>      if (ppMeta != null) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>         XmlBeanPropertyMeta xbpm = ppMeta.getExtendedMeta(XmlBeanPropertyMeta.class);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>         eName = xbpm.getChildName();<a name="line.696"></a>
-<span class="sourceLineNo">697</span>         eNs = xbpm.getNamespace();<a name="line.697"></a>
-<span class="sourceLineNo">698</span>      }<a name="line.698"></a>
-<span class="sourceLineNo">699</span><a name="line.699"></a>
-<span class="sourceLineNo">700</span>      for (Iterator i = c.iterator(); i.hasNext();) {<a name="line.700"></a>
-<span class="sourceLineNo">701</span>         Object value = i.next();<a name="line.701"></a>
-<span class="sourceLineNo">702</span>         serializeAnything(out, value, eeType, eName, eNs, false, XmlFormat.DEFAULT, isMixed, false, null);<a name="line.702"></a>
-<span class="sourceLineNo">703</span>      }<a name="line.703"></a>
-<span class="sourceLineNo">704</span>      return out;<a name="line.704"></a>
-<span class="sourceLineNo">705</span>   }<a name="line.705"></a>
-<span class="sourceLineNo">706</span><a name="line.706"></a>
-<span class="sourceLineNo">707</span>   static enum JsonType {<a name="line.707"></a>
-<span class="sourceLineNo">708</span>      STRING("string"),BOOLEAN("boolean"),NUMBER("number"),ARRAY("array"),OBJECT("object"),NULL("null");<a name="line.708"></a>
-<span class="sourceLineNo">709</span><a name="line.709"></a>
-<span class="sourceLineNo">710</span>      private final String value;<a name="line.710"></a>
-<span class="sourceLineNo">711</span>      private JsonType(String value) {<a name="line.711"></a>
-<span class="sourceLineNo">712</span>         this.value = value;<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      }<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>      @Override<a name="line.715"></a>
-<span class="sourceLineNo">716</span>      public String toString() {<a name="line.716"></a>
-<span class="sourceLineNo">717</span>         return value;<a name="line.717"></a>
-<span class="sourceLineNo">718</span>      }<a name="line.718"></a>
-<span class="sourceLineNo">719</span><a name="line.719"></a>
-<span class="sourceLineNo">720</span>      boolean isOneOf(JsonType...types) {<a name="line.720"></a>
-<span class="sourceLineNo">721</span>         for (JsonType type : types)<a name="line.721"></a>
-<span class="sourceLineNo">722</span>            if (type == this)<a name="line.722"></a>
-<span class="sourceLineNo">723</span>               return true;<a name="line.723"></a>
-<span class="sourceLineNo">724</span>         return false;<a name="line.724"></a>
-<span class="sourceLineNo">725</span>      }<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   }<a name="line.726"></a>
-<span class="sourceLineNo">727</span><a name="line.727"></a>
-<span class="sourceLineNo">728</span>   /**<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    * Identifies what the contents were of a serialized bean.<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    */<a name="line.730"></a>
-<span class="sourceLineNo">731</span>   static enum ContentResult {<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      CR_VOID,      // No content...append "/&gt;" to the start tag.<a name="line.732"></a>
-<span class="sourceLineNo">733</span>      CR_EMPTY,     // No content...append "/&gt;" to the start tag if XML, "/&gt;&lt;/end&gt;" if HTML.<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      CR_MIXED,     // Mixed content...don't add whitespace.<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      CR_ELEMENTS   // Elements...use normal whitespace rules.<a name="line.735"></a>
-<span class="sourceLineNo">736</span>   }<a name="line.736"></a>
-<span class="sourceLineNo">737</span>}<a name="line.737"></a>
+<span class="sourceLineNo">311</span>            sType = swap.getSwapClassMeta(this);<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>            // If the getSwapClass() method returns Object, we need to figure out<a name="line.313"></a>
+<span class="sourceLineNo">314</span>            // the actual type now.<a name="line.314"></a>
+<span class="sourceLineNo">315</span>            if (sType.isObject())<a name="line.315"></a>
+<span class="sourceLineNo">316</span>               sType = getClassMetaForObject(o);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         }<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      } else {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         sType = eType.getSerializedClassMeta(this);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      }<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span>      // Does the actual type match the expected type?<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      boolean isExpectedType = true;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      if (o == null || ! eType.same(aType)) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         if (eType.isNumber())<a name="line.325"></a>
+<span class="sourceLineNo">326</span>            isExpectedType = aType.isNumber();<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         else if (eType.isMap())<a name="line.327"></a>
+<span class="sourceLineNo">328</span>            isExpectedType = aType.isMap();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         else if (eType.isCollectionOrArray())<a name="line.329"></a>
+<span class="sourceLineNo">330</span>            isExpectedType = aType.isCollectionOrArray();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         else<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            isExpectedType = false;<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      }<a name="line.333"></a>
+<span class="sourceLineNo">334</span><a name="line.334"></a>
+<span class="sourceLineNo">335</span>      String resolvedDictionaryName = isExpectedType ? null : aType.getDictionaryName();<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>      // Note that the dictionary name may be specified on the actual type or the serialized type.<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      // HTML templates will have them defined on the serialized type.<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      String dictionaryName = aType.getDictionaryName();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      if (dictionaryName == null)<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         dictionaryName = sType.getDictionaryName();<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span>      // char '\0' is interpreted as null.<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      if (o != null &amp;&amp; sType.isChar() &amp;&amp; ((Character)o).charValue() == 0)<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         o = null;<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>      boolean isCollapsed = false;     // If 'true', this is a collection and we're not rendering the outer element.<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      boolean isRaw = (sType.isReader() || sType.isInputStream()) &amp;&amp; o != null;<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>      // Get the JSON type string.<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      if (o == null) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>         type = NULL;<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      } else if (sType.isCharSequence() || sType.isChar()) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         type = STRING;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      } else if (sType.isNumber()) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>         type = NUMBER;<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      } else if (sType.isBoolean()) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>         type = BOOLEAN;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      } else if (sType.isMapOrBean()) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>         isCollapsed = sType.getExtendedMeta(XmlClassMeta.class).getFormat() == COLLAPSED;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>         type = OBJECT;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      } else if (sType.isCollectionOrArray()) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         isCollapsed = (format == COLLAPSED &amp;&amp; ! addNamespaceUris);<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         type = ARRAY;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      } else {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>         type = STRING;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>      if (format.isOneOf(MIXED,MIXED_PWS,TEXT,TEXT_PWS,XMLTEXT) &amp;&amp; type.isOneOf(NULL,STRING,NUMBER,BOOLEAN))<a name="line.369"></a>
+<span class="sourceLineNo">370</span>         isCollapsed = true;<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span>      // Is there a name associated with this bean?<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      if (elementName == null &amp;&amp; dictionaryName != null) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         elementName = dictionaryName;<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         isExpectedType = true;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      }<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>      if (enableNamespaces) {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         if (elementNamespace == null)<a name="line.379"></a>
+<span class="sourceLineNo">380</span>            elementNamespace = sType.getExtendedMeta(XmlClassMeta.class).getNamespace();<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         if (elementNamespace == null)<a name="line.381"></a>
+<span class="sourceLineNo">382</span>            elementNamespace = aType.getExtendedMeta(XmlClassMeta.class).getNamespace();<a name="line.382"></a>
+<span class="sourceLineNo">383</span>         if (elementNamespace != null &amp;&amp; elementNamespace.uri == null)<a name="line.383"></a>
+<span class="sourceLineNo">384</span>            elementNamespace = null;<a name="line.384"></a>
+<span class="sourceLineNo">385</span>         if (elementNamespace == null)<a name="line.385"></a>
+<span class="sourceLineNo">386</span>            elementNamespace = defaultNamespace;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      } else {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>         elementNamespace = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>      // Do we need a carriage return after the start tag?<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      boolean cr = o != null &amp;&amp; (sType.isMapOrBean() || sType.isCollectionOrArray()) &amp;&amp; ! isMixed;<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>      String en = elementName;<a name="line.394"></a>
+<span class="sourceLineNo">395</span>      if (en == null &amp;&amp; ! isRaw) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>         en = type.toString();<a name="line.396"></a>
+<span class="sourceLineNo">397</span>         type = null;<a name="line.397"></a>
+<span class="sourceLineNo">398</span>      }<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      boolean encodeEn = elementName != null;<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      String ns = (elementNamespace == null ? null : elementNamespace.name);<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      String dns = null, elementNs = null;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>      if (enableNamespaces) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         dns = elementName == null &amp;&amp; defaultNamespace != null ? defaultNamespace.name : null;<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         elementNs = elementName == null ? dns : ns;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>         if (elementName == null)<a name="line.405"></a>
+<span class="sourceLineNo">406</span>            elementNamespace = null;<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      }<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>      // Render the start tag.<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      if (! isCollapsed) {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>         if (en != null) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>            out.oTag(i, elementNs, en, encodeEn);<a name="line.412"></a>
+<span class="sourceLineNo">413</span>            if (addNamespaceUris) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>               out.attr((String)null, "xmlns", defaultNamespace.getUri());<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>               for (Namespace n : namespaces)<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                  out.attr("xmlns", n.getName(), n.getUri());<a name="line.417"></a>
+<span class="sourceLineNo">418</span>            }<a name="line.418"></a>
+<span class="sourceLineNo">419</span>            if (! isExpectedType) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>               if (resolvedDictionaryName != null)<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                  out.attr(dns, getBeanTypePropertyName(eType), resolvedDictionaryName);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>               else if (type != null &amp;&amp; type != STRING)<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                  out.attr(dns, getBeanTypePropertyName(eType), type);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>            }<a name="line.424"></a>
+<span class="sourceLineNo">425</span>         } else {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>            out.i(i);<a name="line.426"></a>
+<span class="sourceLineNo">427</span>         }<a name="line.427"></a>
+<span class="sourceLineNo">428</span>         if (o == null) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>            if ((sType.isBoolean() || sType.isNumber()) &amp;&amp; ! sType.isNullable())<a name="line.429"></a>
+<span class="sourceLineNo">430</span>               o = sType.getPrimitiveDefault();<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>         if (o != null &amp;&amp; ! (sType.isMapOrBean() || en == null))<a name="line.433"></a>
+<span class="sourceLineNo">434</span>            out.append('&gt;');<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>         if (cr &amp;&amp; ! (sType.isMapOrBean()))<a name="line.436"></a>
+<span class="sourceLineNo">437</span>            out.nl(i+1);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>      ContentResult rc = CR_ELEMENTS;<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>      // Render the tag contents.<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      if (o != null) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>         if (sType.isUri() || (pMeta != null &amp;&amp; pMeta.isUri())) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>            out.textUri(o);<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         } else if (sType.isCharSequence() || sType.isChar()) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>            if (format == XMLTEXT)<a name="line.447"></a>
+<span class="sourceLineNo">448</span>               out.append(o);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>            else<a name="line.449"></a>
+<span class="sourceLineNo">450</span>               out.text(o, preserveWhitespace);<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         } else if (sType.isNumber() || sType.isBoolean()) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>            out.append(o);<a name="line.452"></a>
+<span class="sourceLineNo">453</span>         } else if (sType.isMap() || (wType != null &amp;&amp; wType.isMap())) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>            if (o instanceof BeanMap)<a name="line.454"></a>
+<span class="sourceLineNo">455</span>               rc = serializeBeanMap(out, (BeanMap)o, elementNamespace, isCollapsed, isMixed);<a name="line.455"></a>
+<span class="sourceLineNo">456</span>            else<a name="line.456"></a>
+<span class="sourceLineNo">457</span>               rc = serializeMap(out, (Map)o, sType, eType.getKeyType(), eType.getValueType(), isMixed);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>         } else if (sType.isBean()) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>            rc = serializeBeanMap(out, toBeanMap(o), elementNamespace, isCollapsed, isMixed);<a name="line.459"></a>
+<span class="sourceLineNo">460</span>         } else if (sType.isCollection() || (wType != null &amp;&amp; wType.isCollection())) {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>            if (isCollapsed)<a name="line.461"></a>
+<span class="sourceLineNo">462</span>               this.indent--;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>            serializeCollection(out, o, sType, eType, pMeta, isMixed);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>            if (isCollapsed)<a name="line.464"></a>
+<span class="sourceLineNo">465</span>               this.indent++;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>         } else if (sType.isArray()) {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>            if (isCollapsed)<a name="line.467"></a>
+<span class="sourceLineNo">468</span>               this.indent--;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>            serializeCollection(out, o, sType, eType, pMeta, isMixed);<a name="line.469"></a>
+<span class="sourceLineNo">470</span>            if (isCollapsed)<a name="line.470"></a>
+<span class="sourceLineNo">471</span>               this.indent++;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         } else if (sType.isReader() || sType.isInputStream()) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>            IOUtils.pipe(o, out);<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         } else {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>            if (format == XMLTEXT)<a name="line.475"></a>
+<span class="sourceLineNo">476</span>               out.append(toString(o));<a name="line.476"></a>
+<span class="sourceLineNo">477</span>            else<a name="line.477"></a>
+<span class="sourceLineNo">478</span>               out.text(toString(o));<a name="line.478"></a>
+<span class="sourceLineNo">479</span>         }<a name="line.479"></a>
+<span class="sourceLineNo">480</span>      }<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>      pop();<a name="line.482"></a>
+<span class="sourceLineNo">483</span><a name="line.483"></a>
+<span class="sourceLineNo">484</span>      // Render the end tag.<a name="line.484"></a>
+<span class="sourceLineNo">485</span>      if (! isCollapsed) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         if (en != null) {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>            if (rc == CR_EMPTY) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>               if (isHtmlMode())<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                  out.append('&gt;').eTag(elementNs, en, encodeEn);<a name="line.489"></a>
+<span class="sourceLineNo">490</span>               else<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                  out.append('/').append('&gt;');<a name="line.491"></a>
+<span class="sourceLineNo">492</span>            } else if (rc == CR_VOID || o == null) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>               out.append('/').append('&gt;');<a name="line.493"></a>
+<span class="sourceLineNo">494</span>            }<a name="line.494"></a>
+<span class="sourceLineNo">495</span>            else<a name="line.495"></a>
+<span class="sourceLineNo">496</span>               out.ie(cr &amp;&amp; rc != CR_MIXED ? i : 0).eTag(elementNs, en, encodeEn);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>         }<a name="line.497"></a>
+<span class="sourceLineNo">498</span>         if (! isMixed)<a name="line.498"></a>
+<span class="sourceLineNo">499</span>            out.nl(i);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>      }<a name="line.500"></a>
+<span class="sourceLineNo">501</span><a name="line.501"></a>
+<span class="sourceLineNo">502</span>      return out;<a name="line.502"></a>
+<span class="sourceLineNo">503</span>   }<a name="line.503"></a>
+<span class="sourceLineNo">504</span><a name="line.504"></a>
+<span class="sourceLineNo">505</span>   private ContentResult serializeMap(XmlWriter out, Map m, ClassMeta&lt;?&gt; sType,<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         ClassMeta&lt;?&gt; eKeyType, ClassMeta&lt;?&gt; eValueType, boolean isMixed) throws Exception {<a name="line.506"></a>
+<span class="sourceLineNo">507</span><a name="line.507"></a>
+<span class="sourceLineNo">508</span>      m = sort(m);<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span>      ClassMeta&lt;?&gt; keyType = eKeyType == null ? sType.getKeyType() : eKeyType;<a name="line.510"></a>
+<span class="sourceLineNo">511</span>      ClassMeta&lt;?&gt; valueType = eValueType == null ? sType.getValueType() : eValueType;<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span>      boolean hasChildren = false;<a name="line.513"></a>
+<span class="sourceLineNo">514</span>      for (Iterator i = m.entrySet().iterator(); i.hasNext();) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>         Map.Entry e = (Map.Entry)i.next();<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>         Object k = e.getKey();<a name="line.517"></a>
+<span class="sourceLineNo">518</span>         if (k == null) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>            k = "\u0000";<a name="line.519"></a>
+<span class="sourceLineNo">520</span>         } else {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>            k = generalize(k, keyType);<a name="line.521"></a>
+<span class="sourceLineNo">522</span>            if (isTrimStrings() &amp;&amp; k instanceof String)<a name="line.522"></a>
+<span class="sourceLineNo">523</span>               k = k.toString().trim();<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         }<a name="line.524"></a>
+<span class="sourceLineNo">525</span><a name="line.525"></a>
+<span class="sourceLineNo">526</span>         Object value = e.getValue();<a name="line.526"></a>
+<span class="sourceLineNo">527</span><a name="line.527"></a>
+<span class="sourceLineNo">528</span>         if (! hasChildren) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>            hasChildren = true;<a name="line.529"></a>
+<span class="sourceLineNo">530</span>            out.append('&gt;').nlIf(! isMixed, indent);<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         }<a name="line.531"></a>
+<span class="sourceLineNo">532</span>         serializeAnything(out, value, valueType, toString(k), null, false, XmlFormat.DEFAULT, isMixed, false, null);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>      }<a name="line.533"></a>
+<span class="sourceLineNo">534</span>      return hasChildren ? CR_ELEMENTS : CR_EMPTY;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>   }<a name="line.535"></a>
+<span class="sourceLineNo">536</span><a name="line.536"></a>
+<span class="sourceLineNo">537</span>   private ContentResult serializeBeanMap(XmlWriter out, BeanMap&lt;?&gt; m,<a name="line.537"></a>
+<span class="sourceLineNo">538</span>         Namespace elementNs, boolean isCollapsed, boolean isMixed) throws Exception {<a name="line.538"></a>
+<span class="sourceLineNo">539</span>      boolean hasChildren = false;<a name="line.539"></a>
+<span class="sourceLineNo">540</span>      BeanMeta&lt;?&gt; bm = m.getMeta();<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>      List&lt;BeanPropertyValue&gt; lp = m.getValues(isTrimNulls());<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>      XmlBeanMeta xbm = bm.getExtendedMeta(XmlBeanMeta.class);<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>      Set&lt;String&gt;<a name="line.546"></a>
+<span class="sourceLineNo">547</span>         attrs = xbm.getAttrPropertyNames(),<a name="line.547"></a>
+<span class="sourceLineNo">548</span>         elements = xbm.getElementPropertyNames(),<a name="line.548"></a>
+<span class="sourceLineNo">549</span>         collapsedElements = xbm.getCollapsedPropertyNames();<a name="line.549"></a>
+<span class="sourceLineNo">550</span>      String<a name="line.550"></a>
+<span class="sourceLineNo">551</span>         attrsProperty = xbm.getAttrsPropertyName(),<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         contentProperty = xbm.getContentPropertyName();<a name="line.552"></a>
+<span class="sourceLineNo">553</span><a name="line.553"></a>
+<span class="sourceLineNo">554</span>      XmlFormat cf = null;<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>      Object content = null;<a name="line.556"></a>
+<span class="sourceLineNo">557</span>      ClassMeta&lt;?&gt; contentType = null;<a name="line.557"></a>
+<span class="sourceLineNo">558</span>      for (BeanPropertyValue p : lp) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>         String n = p.getName();<a name="line.559"></a>
+<span class="sourceLineNo">560</span>         if (attrs.contains(n) || attrs.contains("*") || n.equals(attrsProperty)) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>            BeanPropertyMeta pMeta = p.getMeta();<a name="line.561"></a>
+<span class="sourceLineNo">562</span>            ClassMeta&lt;?&gt; cMeta = p.getClassMeta();<a name="line.562"></a>
+<span class="sourceLineNo">563</span><a name="line.563"></a>
+<span class="sourceLineNo">564</span>            String key = p.getName();<a name="line.564"></a>
+<span class="sourceLineNo">565</span>            Object value = p.getValue();<a name="line.565"></a>
+<span class="sourceLineNo">566</span>            Throwable t = p.getThrown();<a name="line.566"></a>
+<span class="sourceLineNo">567</span>            if (t != null)<a name="line.567"></a>
+<span class="sourceLineNo">568</span>               onBeanGetterException(pMeta, t);<a name="line.568"></a>
+<span class="sourceLineNo">569</span><a name="line.569"></a>
+<span class="sourceLineNo">570</span>            if (canIgnoreValue(cMeta, key, value))<a name="line.570"></a>
+<span class="sourceLineNo">571</span>               continue;<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>            Namespace ns = (enableNamespaces &amp;&amp; pMeta.getExtendedMeta(XmlBeanPropertyMeta.class).getNamespace() != elementNs ? pMeta.getExtendedMeta(XmlBeanPropertyMeta.class).getNamespace() : null);<a name="line.573"></a>
+<span class="sourceLineNo">574</span><a name="line.574"></a>
+<span class="sourceLineNo">575</span>            if (pMeta.isUri()  ) {<a name="line.575"></a>
+<span class="sourceLineNo">576</span>               out.attrUri(ns, key, value);<a name="line.576"></a>
+<span class="sourceLineNo">577</span>            } else if (n.equals(attrsProperty)) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>               if (value instanceof BeanMap) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                  BeanMap&lt;?&gt; bm2 = (BeanMap)value;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                  for (BeanPropertyValue p2 : bm2.getValues(true)) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                     String key2 = p2.getName();<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                     Object value2 = p2.getValue();<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                     Throwable t2 = p2.getThrown();<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                     if (t2 != null)<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                        onBeanGetterException(pMeta, t);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                     out.attr(ns, key2, value2);<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                  }<a name="line.587"></a>
+<span class="sourceLineNo">588</span>               } else /* Map */ {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                  Map m2 = (Map)value;<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                  for (Map.Entry e : (Set&lt;Map.Entry&gt;)(m2.entrySet())) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                     out.attr(ns, toString(e.getKey()), e.getValue());<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                  }<a name="line.592"></a>
+<span class="sourceLineNo">593</span>               }<a name="line.593"></a>
+<span class="sourceLineNo">594</span>            } else {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>               out.attr(ns, key, value);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>            }<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         }<a name="line.597"></a>
+<span class="sourceLineNo">598</span>      }<a name="line.598"></a>
+<span class="sourceLineNo">599</span><a name="line.599"></a>
+<span class="sourceLineNo">600</span>      boolean<a name="line.600"></a>
+<span class="sourceLineNo">601</span>         hasContent = false,<a name="line.601"></a>
+<span class="sourceLineNo">602</span>         preserveWhitespace = false,<a name="line.602"></a>
+<span class="sourceLineNo">603</span>         isVoidElement = xbm.getContentFormat() == VOID;<a name="line.603"></a>
+<span class="sourceLineNo">604</span><a name="line.604"></a>
+<span class="sourceLineNo">605</span>      for (BeanPropertyValue p : lp) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>         BeanPropertyMeta pMeta = p.getMeta();<a name="line.606"></a>
+<span class="sourceLineNo">607</span>         ClassMeta&lt;?&gt; cMeta = p.getClassMeta();<a name="line.607"></a>
+<span class="sourceLineNo">608</span><a name="line.608"></a>
+<span class="sourceLineNo">609</span>         String n = p.getName();<a name="line.609"></a>
+<span class="sourceLineNo">610</span>         if (n.equals(contentProperty)) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>            content = p.getValue();<a name="line.611"></a>
+<span class="sourceLineNo">612</span>            contentType = p.getClassMeta();<a name="line.612"></a>
+<span class="sourceLineNo">613</span>            hasContent = true;<a name="line.613"></a>
+<span class="sourceLineNo">614</span>            cf = xbm.getContentFormat();<a name="line.614"></a>
+<span class="sourceLineNo">615</span>            if (cf.isOneOf(MIXED,MIXED_PWS,TEXT,TEXT_PWS,XMLTEXT))<a name="line.615"></a>
+<span class="sourceLineNo">616</span>               isMixed = true;<a name="line.616"></a>
+<span class="sourceLineNo">617</span>            if (cf.isOneOf(MIXED_PWS, TEXT_PWS))<a name="line.617"></a>
+<span class="sourceLineNo">618</span>               preserveWhitespace = true;<a name="line.618"></a>
+<span class="sourceLineNo">619</span>            if (contentType.isCollection() &amp;&amp; ((Collection)content).isEmpty())<a name="line.619"></a>
+<span class="sourceLineNo">620</span>               hasContent = false;<a name="line.620"></a>
+<span class="sourceLineNo">621</span>            else if (contentType.isArray() &amp;&amp; Array.getLength(content) == 0)<a name="line.621"></a>
+<span class="sourceLineNo">622</span>               hasContent = false;<a name="line.622"></a>
+<span class="sourceLineNo">623</span>         } else if (elements.contains(n) || collapsedElements.contains(n) || elements.contains("*") || collapsedElements.contains("*") ) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>            String key = p.getName();<a name="line.624"></a>
+<span class="sourceLineNo">625</span>            Object value = p.getValue();<a name="line.625"></a>
+<span class="sourceLineNo">626</span>            Throwable t = p.getThrown();<a name="line.626"></a>
+<span class="sourceLineNo">627</span>            if (t != null)<a name="line.627"></a>
+<span class="sourceLineNo">628</span>               onBeanGetterException(pMeta, t);<a name="line.628"></a>
+<span class="sourceLineNo">629</span><a name="line.629"></a>
+<span class="sourceLineNo">630</span>            if (canIgnoreValue(cMeta, key, value))<a name="line.630"></a>
+<span class="sourceLineNo">631</span>               continue;<a name="line.631"></a>
+<span class="sourceLineNo">632</span><a name="line.632"></a>
+<span class="sourceLineNo">633</span>            if (! hasChildren) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>               hasChildren = true;<a name="line.634"></a>
+<span class="sourceLineNo">635</span>               out.appendIf(! isCollapsed, '&gt;').nlIf(! isMixed, indent);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>            }<a name="line.636"></a>
+<span class="sourceLineNo">637</span><a name="line.637"></a>
+<span class="sourceLineNo">638</span>            XmlBeanPropertyMeta xbpm = pMeta.getExtendedMeta(XmlBeanPropertyMeta.class);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>            serializeAnything(out, value, cMeta, key, xbpm.getNamespace(), false, xbpm.getXmlFormat(), isMixed, false, pMeta);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>         }<a name="line.640"></a>
+<span class="sourceLineNo">641</span>      }<a name="line.641"></a>
+<span class="sourceLineNo">642</span>      if (! hasContent)<a name="line.642"></a>
+<span class="sourceLineNo">643</span>         return (hasChildren ? CR_ELEMENTS : isVoidElement ? CR_VOID : CR_EMPTY);<a name="line.643"></a>
+<span class="sourceLineNo">644</span>      out.append('&gt;').nlIf(! isMixed, indent);<a name="line.644"></a>
+<span class="sourceLineNo">645</span><a name="line.645"></a>
+<span class="sourceLineNo">646</span>      // Serialize XML content.<a name="line.646"></a>
+<span class="sourceLineNo">647</span>      if (content != null) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>         if (contentType == null) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>         } else if (contentType.isCollection()) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>            Collection c = (Collection)content;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>            for (Iterator i = c.iterator(); i.hasNext();) {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>               Object value = i.next();<a name="line.652"></a>
+<span class="sourceLineNo">653</span>               serializeAnything(out, value, contentType.getElementType(), null, null, false, cf, isMixed, preserveWhitespace, null);<a name="line.653"></a>
+<span class="sourceLineNo">654</span>            }<a name="line.654"></a>
+<span class="sourceLineNo">655</span>         } else if (contentType.isArray()) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>            Collection c = toList(Object[].class, content);<a name="line.656"></a>
+<span class="sourceLineNo">657</span>            for (Iterator i = c.iterator(); i.hasNext();) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>               Object value = i.next();<a name="line.658"></a>
+<span class="sourceLineNo">659</span>               serializeAnything(out, value, contentType.getElementType(), null, null, false, cf, isMixed, preserveWhitespace, null);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>            }<a name="line.660"></a>
+<span class="sourceLineNo">661</span>         } else {<a name="line.661"></a>
+<span class="sourceLineNo">662</span>            serializeAnything(out, content, contentType, null, null, false, cf, isMixed, preserveWhitespace, null);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>         }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>      } else {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>         if (! isTrimNulls()) {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>            if (! isMixed)<a name="line.666"></a>
+<span class="sourceLineNo">667</span>               out.i(indent);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>            out.text(content);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>            if (! isMixed)<a name="line.669"></a>
+<span class="sourceLineNo">670</span>               out.nl(indent);<a name="line.670"></a>
+<span class="sourceLineNo">671</span>         }<a name="line.671"></a>
+<span class="sourceLineNo">672</span>      }<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      return isMixed ? CR_MIXED : CR_ELEMENTS;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>   }<a name="line.674"></a>
+<span class="sourceLineNo">675</span><a name="line.675"></a>
+<span class="sourceLineNo">676</span>   private XmlWriter serializeCollection(XmlWriter out, Object in, ClassMeta&lt;?&gt; sType,<a name="line.676"></a>
+<span class="sourceLineNo">677</span>         ClassMeta&lt;?&gt; eType, BeanPropertyMeta ppMeta, boolean isMixed) throws Exception {<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>      ClassMeta&lt;?&gt; seType = sType.getElementType();<a name="line.679"></a>
+<span class="sourceLineNo">680</span>      if (seType == null)<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         seType = object();<a name="line.681"></a>
+<span class="sourceLineNo">682</span>      ClassMeta&lt;?&gt; eeType = eType.getElementType();<a name="line.682"></a>
+<span class="sourceLineNo">683</span><a name="line.683"></a>
+<span class="sourceLineNo">684</span>      Collection c = (sType.isCollection() ? (Collection)in : toList(sType.getInnerClass(), in));<a name="line.684"></a>
+<span class="sourceLineNo">685</span><a name="line.685"></a>
+<span class="sourceLineNo">686</span>      c = sort(c);<a name="line.686"></a>
+<span class="sourceLineNo">687</span><a name="line.687"></a>
+<span class="sourceLineNo">688</span>      String type2 = null;<a name="line.688"></a>
+<span class="sourceLineNo">689</span>      if (sType != eType)<a name="line.689"></a>
+<span class="sourceLineNo">690</span>         type2 = sType.getDictionaryName();<a name="line.690"></a>
+<span class="sourceLineNo">691</span><a name="line.691"></a>
+<span class="sourceLineNo">692</span>      String eName = type2;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>      Namespace eNs = null;<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>      if (ppMeta != null) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>         XmlBeanPropertyMeta xbpm = ppMeta.getExtendedMeta(XmlBeanPropertyMeta.class);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>         eName = xbpm.getChildName();<a name="line.697"></a>
+<span class="sourceLineNo">698</span>         eNs = xbpm.getNamespace();<a name="line.698"></a>
+<span class="sourceLineNo">699</span>      }<a name="line.699"></a>
+<span class="sourceLineNo">700</span><a name="line.700"></a>
+<span class="sourceLineNo">701</span>      for (Iterator i = c.iterator(); i.hasNext();) {<a name="line.701"></a>
+<span class="sourceLineNo">702</span>         Object value = i.next();<a name="line.702"></a>
+<span class="sourceLineNo">703</span>         serializeAnything(out, value, eeType, eName, eNs, false, XmlFormat.DEFAULT, isMixed, false, null);<a name="line.703"></a>
+<span class="sourceLineNo">704</span>      }<a name="line.704"></a>
+<span class="sourceLineNo">705</span>      return out;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>   }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>   static enum JsonType {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>      STRING("string"),BOOLEAN("boolean"),NUMBER("number"),ARRAY("array"),OBJECT("object"),NULL("null");<a name="line.709"></a>
+<span class="sourceLineNo">710</span><a name="line.710"></a>
+<span class="sourceLineNo">711</span>      private final String value;<a name="line.711"></a>
+<span class="sourceLineNo">712</span>      private JsonType(String value) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>         this.value = value;<a name="line.713"></a>
+<span class="sourceLineNo">714</span>      }<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>      @Override<a name="line.716"></a>
+<span class="sourceLineNo">717</span>      public String toString() {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>         return value;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>      }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>      boolean isOneOf(JsonType...types) {<a name="line.721"></a>
+<span class="sourceLineNo">722</span>         for (JsonType type : types)<a name="line.722"></a>
+<span class="sourceLineNo">723</span>            if (type == this)<a name="line.723"></a>
+<span class="sourceLineNo">724</span>               return true;<a name="line.724"></a>
+<span class="sourceLineNo">725</span>         return false;<a name="line.725"></a>
+<span class="sourceLineNo">726</span>      }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>   }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>   /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>    * Identifies what the contents were of a serialized bean.<a name="line.730"></a>
+<span class="sourceLineNo">731</span>    */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>   static enum ContentResult {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>      CR_VOID,      // No content...append "/&gt;" to the start tag.<a name="line.733"></a>
+<span class="sourceLineNo">734</span>      CR_EMPTY,     // No content...append "/&gt;" to the start tag if XML, "/&gt;&lt;/end&gt;" if HTML.<a name="line.734"></a>
+<span class="sourceLineNo">735</span>      CR_MIXED,     // Mixed content...don't add whitespace.<a name="line.735"></a>
+<span class="sourceLineNo">736</span>      CR_ELEMENTS   // Elements...use normal whitespace rules.<a name="line.736"></a>
+<span class="sourceLineNo">737</span>   }<a name="line.737"></a>
+<span class="sourceLineNo">738</span>}<a name="line.738"></a>
 
 
 


[10/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/jena/RdfParserSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/jena/RdfParserSession.html b/content/site/apidocs/src-html/org/apache/juneau/jena/RdfParserSession.html
index 3db985d..9b54a25 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/jena/RdfParserSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/jena/RdfParserSession.html
@@ -236,8 +236,8 @@
 <span class="sourceLineNo">228</span><a name="line.228"></a>
 <span class="sourceLineNo">229</span>      if (eType == null)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>         eType = (ClassMeta&lt;T&gt;)object();<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      PojoSwap&lt;T,Object&gt; transform = (PojoSwap&lt;T,Object&gt;)eType.getPojoSwap();<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      ClassMeta&lt;?&gt; sType = eType.getSerializedClassMeta();<a name="line.232"></a>
+<span class="sourceLineNo">231</span>      PojoSwap&lt;T,Object&gt; swap = (PojoSwap&lt;T,Object&gt;)eType.getPojoSwap(this);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      ClassMeta&lt;?&gt; sType = swap == null ? eType : swap.getSwapClassMeta(this);<a name="line.232"></a>
 <span class="sourceLineNo">233</span>      setCurrentClass(sType);<a name="line.233"></a>
 <span class="sourceLineNo">234</span><a name="line.234"></a>
 <span class="sourceLineNo">235</span>      if (! sType.canCreateNewInstance(outer)) {<a name="line.235"></a>
@@ -349,8 +349,8 @@
 <span class="sourceLineNo">341</span>         throw new ParseException("Class ''{0}'' could not be instantiated.  Reason: ''{1}''", sType.getInnerClass().getName(), sType.getNotABeanReason());<a name="line.341"></a>
 <span class="sourceLineNo">342</span>      }<a name="line.342"></a>
 <span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span>      if (transform != null &amp;&amp; o != null)<a name="line.344"></a>
-<span class="sourceLineNo">345</span>         o = transform.unswap(this, o, eType);<a name="line.345"></a>
+<span class="sourceLineNo">344</span>      if (swap != null &amp;&amp; o != null)<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         o = swap.unswap(this, o, eType);<a name="line.345"></a>
 <span class="sourceLineNo">346</span><a name="line.346"></a>
 <span class="sourceLineNo">347</span>      if (outer != null)<a name="line.347"></a>
 <span class="sourceLineNo">348</span>         setParent(eType, o, outer);<a name="line.348"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/jena/RdfSerializerSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/jena/RdfSerializerSession.html b/content/site/apidocs/src-html/org/apache/juneau/jena/RdfSerializerSession.html
index 11ab1dc..2fa4143 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/jena/RdfSerializerSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/jena/RdfSerializerSession.html
@@ -214,212 +214,213 @@
 <span class="sourceLineNo">206</span>            aType = ((Delegate)o).getClassMeta();<a name="line.206"></a>
 <span class="sourceLineNo">207</span>         }<a name="line.207"></a>
 <span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>         sType = aType.getSerializedClassMeta();<a name="line.209"></a>
+<span class="sourceLineNo">209</span>         sType = aType;<a name="line.209"></a>
 <span class="sourceLineNo">210</span><a name="line.210"></a>
 <span class="sourceLineNo">211</span>         // Swap if necessary<a name="line.211"></a>
-<span class="sourceLineNo">212</span>         PojoSwap swap = aType.getPojoSwap();<a name="line.212"></a>
+<span class="sourceLineNo">212</span>         PojoSwap swap = aType.getPojoSwap(this);<a name="line.212"></a>
 <span class="sourceLineNo">213</span>         if (swap != null) {<a name="line.213"></a>
 <span class="sourceLineNo">214</span>            o = swap.swap(this, o);<a name="line.214"></a>
-<span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>            // If the getSwapClass() method returns Object, we need to figure out<a name="line.216"></a>
-<span class="sourceLineNo">217</span>            // the actual type now.<a name="line.217"></a>
-<span class="sourceLineNo">218</span>            if (sType.isObject())<a name="line.218"></a>
-<span class="sourceLineNo">219</span>               sType = getClassMetaForObject(o);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>         }<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      } else {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>         sType = eType.getSerializedClassMeta();<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      }<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>      String typeName = getBeanTypeName(eType, aType, bpm);<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>      RDFNode n = null;<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span>      if (o == null || sType.isChar() &amp;&amp; ((Character)o).charValue() == 0) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>         if (bpm != null) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>            if (! isTrimNulls()) {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>               n = m.createResource(RDF_NIL);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>            }<a name="line.233"></a>
-<span class="sourceLineNo">234</span>         } else {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>            n = m.createResource(RDF_NIL);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>         }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>      } else if (sType.isUri() || isURI) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>         // Note that RDF URIs must be absolute to be valid!<a name="line.239"></a>
-<span class="sourceLineNo">240</span>         String uri = getUri(o, null);<a name="line.240"></a>
-<span class="sourceLineNo">241</span>         if (StringUtils.isAbsoluteUri(uri))<a name="line.241"></a>
-<span class="sourceLineNo">242</span>            n = m.createResource(uri);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>         else<a name="line.243"></a>
-<span class="sourceLineNo">244</span>            n = m.createLiteral(encodeTextInvalidChars(uri));<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>      } else if (sType.isCharSequence() || sType.isChar()) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>         n = m.createLiteral(encodeTextInvalidChars(o));<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>      } else if (sType.isNumber() || sType.isBoolean()) {<a name="line.249"></a>
-<span class="sourceLineNo">250</span>         if (! addLiteralTypes)<a name="line.250"></a>
-<span class="sourceLineNo">251</span>            n = m.createLiteral(o.toString());<a name="line.251"></a>
-<span class="sourceLineNo">252</span>         else<a name="line.252"></a>
-<span class="sourceLineNo">253</span>            n = m.createTypedLiteral(o);<a name="line.253"></a>
-<span class="sourceLineNo">254</span><a name="line.254"></a>
-<span class="sourceLineNo">255</span>      } else if (sType.isMap() || (wType != null &amp;&amp; wType.isMap())) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>         if (o instanceof BeanMap) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>            BeanMap bm = (BeanMap)o;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>            Object uri = null;<a name="line.258"></a>
-<span class="sourceLineNo">259</span>            RdfBeanMeta rbm = (RdfBeanMeta)bm.getMeta().getExtendedMeta(RdfBeanMeta.class);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>            if (rbm.hasBeanUri())<a name="line.260"></a>
-<span class="sourceLineNo">261</span>               uri = rbm.getBeanUriProperty().get(bm, null);<a name="line.261"></a>
-<span class="sourceLineNo">262</span>            String uri2 = getUri(uri, null);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            n = m.createResource(uri2);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>            serializeBeanMap(bm, (Resource)n, typeName);<a name="line.264"></a>
-<span class="sourceLineNo">265</span>         } else {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>            Map m2 = (Map)o;<a name="line.266"></a>
-<span class="sourceLineNo">267</span>            n = m.createResource();<a name="line.267"></a>
-<span class="sourceLineNo">268</span>            serializeMap(m2, (Resource)n, sType);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>         }<a name="line.269"></a>
-<span class="sourceLineNo">270</span><a name="line.270"></a>
-<span class="sourceLineNo">271</span>      } else if (sType.isBean()) {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>         BeanMap bm = toBeanMap(o);<a name="line.272"></a>
-<span class="sourceLineNo">273</span>         Object uri = null;<a name="line.273"></a>
-<span class="sourceLineNo">274</span>         RdfBeanMeta rbm = (RdfBeanMeta)bm.getMeta().getExtendedMeta(RdfBeanMeta.class);<a name="line.274"></a>
-<span class="sourceLineNo">275</span>         if (rbm.hasBeanUri())<a name="line.275"></a>
-<span class="sourceLineNo">276</span>            uri = rbm.getBeanUriProperty().get(bm, null);<a name="line.276"></a>
-<span class="sourceLineNo">277</span>         String uri2 = getUri(uri, null);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>         n = m.createResource(uri2);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>         serializeBeanMap(bm, (Resource)n, typeName);<a name="line.279"></a>
-<span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      } else if (sType.isCollectionOrArray() || (wType != null &amp;&amp; wType.isCollection())) {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>         Collection c = sort(sType.isCollection() ? (Collection)o : toList(sType.getInnerClass(), o));<a name="line.282"></a>
-<span class="sourceLineNo">283</span>         RdfCollectionFormat f = collectionFormat;<a name="line.283"></a>
-<span class="sourceLineNo">284</span>         RdfClassMeta rcm = sType.getExtendedMeta(RdfClassMeta.class);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>         if (rcm.getCollectionFormat() != RdfCollectionFormat.DEFAULT)<a name="line.285"></a>
-<span class="sourceLineNo">286</span>            f = rcm.getCollectionFormat();<a name="line.286"></a>
-<span class="sourceLineNo">287</span>         if (bpm != null &amp;&amp; bpm.getExtendedMeta(RdfBeanPropertyMeta.class).getCollectionFormat() != RdfCollectionFormat.DEFAULT)<a name="line.287"></a>
-<span class="sourceLineNo">288</span>            f = bpm.getExtendedMeta(RdfBeanPropertyMeta.class).getCollectionFormat();<a name="line.288"></a>
-<span class="sourceLineNo">289</span>         switch (f) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>            case BAG: n = serializeToContainer(c, eType, m.createBag()); break;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>            case LIST: n = serializeToList(c, eType); break;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>            case MULTI_VALUED: serializeToMultiProperties(c, eType, bpm, attrName, parentResource); break;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>            default: n = serializeToContainer(c, eType, m.createSeq());<a name="line.293"></a>
-<span class="sourceLineNo">294</span>         }<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      <a name="line.295"></a>
-<span class="sourceLineNo">296</span>      } else if (sType.isReader() || sType.isInputStream()) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>         n = m.createLiteral(encodeTextInvalidChars(IOUtils.read(o)));<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      <a name="line.298"></a>
-<span class="sourceLineNo">299</span>      } else {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>         n = m.createLiteral(encodeTextInvalidChars(toString(o)));<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      }<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>      pop();<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>      return n;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>   }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>   private String getUri(Object uri, Object uri2) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      String s = null;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      if (uri != null)<a name="line.310"></a>
-<span class="sourceLineNo">311</span>         s = uri.toString();<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      if ((s == null || s.isEmpty()) &amp;&amp; uri2 != null)<a name="line.312"></a>
-<span class="sourceLineNo">313</span>         s = uri2.toString();<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      if (s == null)<a name="line.314"></a>
-<span class="sourceLineNo">315</span>         return null;<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      return getUriResolver().resolve(s);<a name="line.316"></a>
-<span class="sourceLineNo">317</span>   }<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>   private void serializeMap(Map m, Resource r, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.319"></a>
-<span class="sourceLineNo">320</span><a name="line.320"></a>
-<span class="sourceLineNo">321</span>      m = sort(m);<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>      ClassMeta&lt;?&gt; keyType = type.getKeyType(), valueType = type.getValueType();<a name="line.323"></a>
-<span class="sourceLineNo">324</span><a name="line.324"></a>
-<span class="sourceLineNo">325</span>      ArrayList&lt;Map.Entry&lt;Object,Object&gt;&gt; l = new ArrayList&lt;Map.Entry&lt;Object,Object&gt;&gt;(m.entrySet());<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      Collections.reverse(l);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      for (Map.Entry&lt;Object,Object&gt; me : l) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>         Object value = me.getValue();<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span>         Object key = generalize(me.getKey(), keyType);<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>         Namespace ns = juneauBpNs;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>         Property p = model.createProperty(ns.getUri(), encodeElementName(toString(key)));<a name="line.333"></a>
-<span class="sourceLineNo">334</span>         RDFNode n = serializeAnything(value, false, valueType, key == null ? null : toString(key), null, r);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>         if (n != null)<a name="line.335"></a>
-<span class="sourceLineNo">336</span>            r.addProperty(p, n);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      }<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>   private void serializeBeanMap(BeanMap&lt;?&gt; m, Resource r, String typeName) throws Exception {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      List&lt;BeanPropertyValue&gt; l = m.getValues(isTrimNulls(), typeName != null ? createBeanTypeNameProperty(m, typeName) : null);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      Collections.reverse(l);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>      for (BeanPropertyValue bpv : l) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>         BeanPropertyMeta pMeta = bpv.getMeta();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>         ClassMeta&lt;?&gt; cMeta = pMeta.getClassMeta();<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>         if (pMeta.getExtendedMeta(RdfBeanPropertyMeta.class).isBeanUri())<a name="line.347"></a>
-<span class="sourceLineNo">348</span>            continue;<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span>         String key = bpv.getName();<a name="line.350"></a>
-<span class="sourceLineNo">351</span>         Object value = bpv.getValue();<a name="line.351"></a>
-<span class="sourceLineNo">352</span>         Throwable t = bpv.getThrown();<a name="line.352"></a>
-<span class="sourceLineNo">353</span>         if (t != null)<a name="line.353"></a>
-<span class="sourceLineNo">354</span>            onBeanGetterException(pMeta, t);<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>         if (canIgnoreValue(cMeta, key, value))<a name="line.356"></a>
-<span class="sourceLineNo">357</span>            continue;<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>         BeanPropertyMeta bpm = bpv.getMeta();<a name="line.359"></a>
-<span class="sourceLineNo">360</span>         Namespace ns = bpm.getExtendedMeta(RdfBeanPropertyMeta.class).getNamespace();<a name="line.360"></a>
-<span class="sourceLineNo">361</span>         if (ns == null &amp;&amp; useXmlNamespaces)<a name="line.361"></a>
-<span class="sourceLineNo">362</span>            ns = bpm.getExtendedMeta(XmlBeanPropertyMeta.class).getNamespace();<a name="line.362"></a>
-<span class="sourceLineNo">363</span>         if (ns == null)<a name="line.363"></a>
-<span class="sourceLineNo">364</span>            ns = juneauBpNs;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>         else if (autoDetectNamespaces)<a name="line.365"></a>
-<span class="sourceLineNo">366</span>            addModelPrefix(ns);<a name="line.366"></a>
-<span class="sourceLineNo">367</span><a name="line.367"></a>
-<span class="sourceLineNo">368</span>         Property p = model.createProperty(ns.getUri(), encodeElementName(key));<a name="line.368"></a>
-<span class="sourceLineNo">369</span>         RDFNode n = serializeAnything(value, pMeta.isUri(), cMeta, key, pMeta, r);<a name="line.369"></a>
-<span class="sourceLineNo">370</span>         if (n != null)<a name="line.370"></a>
-<span class="sourceLineNo">371</span>            r.addProperty(p, n);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      }<a name="line.372"></a>
-<span class="sourceLineNo">373</span>   }<a name="line.373"></a>
-<span class="sourceLineNo">374</span><a name="line.374"></a>
+<span class="sourceLineNo">215</span>            sType = swap.getSwapClassMeta(this);<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>            // If the getSwapClass() method returns Object, we need to figure out<a name="line.217"></a>
+<span class="sourceLineNo">218</span>            // the actual type now.<a name="line.218"></a>
+<span class="sourceLineNo">219</span>            if (sType.isObject())<a name="line.219"></a>
+<span class="sourceLineNo">220</span>               sType = getClassMetaForObject(o);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      } else {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         sType = eType.getSerializedClassMeta(this);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>      String typeName = getBeanTypeName(eType, aType, bpm);<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>      RDFNode n = null;<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>      if (o == null || sType.isChar() &amp;&amp; ((Character)o).charValue() == 0) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>         if (bpm != null) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>            if (! isTrimNulls()) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>               n = m.createResource(RDF_NIL);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>            }<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         } else {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>            n = m.createResource(RDF_NIL);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         }<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>      } else if (sType.isUri() || isURI) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>         // Note that RDF URIs must be absolute to be valid!<a name="line.240"></a>
+<span class="sourceLineNo">241</span>         String uri = getUri(o, null);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         if (StringUtils.isAbsoluteUri(uri))<a name="line.242"></a>
+<span class="sourceLineNo">243</span>            n = m.createResource(uri);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         else<a name="line.244"></a>
+<span class="sourceLineNo">245</span>            n = m.createLiteral(encodeTextInvalidChars(uri));<a name="line.245"></a>
+<span class="sourceLineNo">246</span><a name="line.246"></a>
+<span class="sourceLineNo">247</span>      } else if (sType.isCharSequence() || sType.isChar()) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>         n = m.createLiteral(encodeTextInvalidChars(o));<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>      } else if (sType.isNumber() || sType.isBoolean()) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>         if (! addLiteralTypes)<a name="line.251"></a>
+<span class="sourceLineNo">252</span>            n = m.createLiteral(o.toString());<a name="line.252"></a>
+<span class="sourceLineNo">253</span>         else<a name="line.253"></a>
+<span class="sourceLineNo">254</span>            n = m.createTypedLiteral(o);<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>      } else if (sType.isMap() || (wType != null &amp;&amp; wType.isMap())) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>         if (o instanceof BeanMap) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>            BeanMap bm = (BeanMap)o;<a name="line.258"></a>
+<span class="sourceLineNo">259</span>            Object uri = null;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>            RdfBeanMeta rbm = (RdfBeanMeta)bm.getMeta().getExtendedMeta(RdfBeanMeta.class);<a name="line.260"></a>
+<span class="sourceLineNo">261</span>            if (rbm.hasBeanUri())<a name="line.261"></a>
+<span class="sourceLineNo">262</span>               uri = rbm.getBeanUriProperty().get(bm, null);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>            String uri2 = getUri(uri, null);<a name="line.263"></a>
+<span class="sourceLineNo">264</span>            n = m.createResource(uri2);<a name="line.264"></a>
+<span class="sourceLineNo">265</span>            serializeBeanMap(bm, (Resource)n, typeName);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>         } else {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>            Map m2 = (Map)o;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>            n = m.createResource();<a name="line.268"></a>
+<span class="sourceLineNo">269</span>            serializeMap(m2, (Resource)n, sType);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>         }<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>      } else if (sType.isBean()) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>         BeanMap bm = toBeanMap(o);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>         Object uri = null;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>         RdfBeanMeta rbm = (RdfBeanMeta)bm.getMeta().getExtendedMeta(RdfBeanMeta.class);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>         if (rbm.hasBeanUri())<a name="line.276"></a>
+<span class="sourceLineNo">277</span>            uri = rbm.getBeanUriProperty().get(bm, null);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         String uri2 = getUri(uri, null);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         n = m.createResource(uri2);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         serializeBeanMap(bm, (Resource)n, typeName);<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>      } else if (sType.isCollectionOrArray() || (wType != null &amp;&amp; wType.isCollection())) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         Collection c = sort(sType.isCollection() ? (Collection)o : toList(sType.getInnerClass(), o));<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         RdfCollectionFormat f = collectionFormat;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         RdfClassMeta rcm = sType.getExtendedMeta(RdfClassMeta.class);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         if (rcm.getCollectionFormat() != RdfCollectionFormat.DEFAULT)<a name="line.286"></a>
+<span class="sourceLineNo">287</span>            f = rcm.getCollectionFormat();<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         if (bpm != null &amp;&amp; bpm.getExtendedMeta(RdfBeanPropertyMeta.class).getCollectionFormat() != RdfCollectionFormat.DEFAULT)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>            f = bpm.getExtendedMeta(RdfBeanPropertyMeta.class).getCollectionFormat();<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         switch (f) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>            case BAG: n = serializeToContainer(c, eType, m.createBag()); break;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>            case LIST: n = serializeToList(c, eType); break;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>            case MULTI_VALUED: serializeToMultiProperties(c, eType, bpm, attrName, parentResource); break;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>            default: n = serializeToContainer(c, eType, m.createSeq());<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         }<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      <a name="line.296"></a>
+<span class="sourceLineNo">297</span>      } else if (sType.isReader() || sType.isInputStream()) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         n = m.createLiteral(encodeTextInvalidChars(IOUtils.read(o)));<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      <a name="line.299"></a>
+<span class="sourceLineNo">300</span>      } else {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         n = m.createLiteral(encodeTextInvalidChars(toString(o)));<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>      pop();<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span>      return n;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>   }<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>   private String getUri(Object uri, Object uri2) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      String s = null;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      if (uri != null)<a name="line.311"></a>
+<span class="sourceLineNo">312</span>         s = uri.toString();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>      if ((s == null || s.isEmpty()) &amp;&amp; uri2 != null)<a name="line.313"></a>
+<span class="sourceLineNo">314</span>         s = uri2.toString();<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      if (s == null)<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         return null;<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      return getUriResolver().resolve(s);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>   }<a name="line.318"></a>
+<span class="sourceLineNo">319</span><a name="line.319"></a>
+<span class="sourceLineNo">320</span>   private void serializeMap(Map m, Resource r, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span>      m = sort(m);<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>      ClassMeta&lt;?&gt; keyType = type.getKeyType(), valueType = type.getValueType();<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>      ArrayList&lt;Map.Entry&lt;Object,Object&gt;&gt; l = new ArrayList&lt;Map.Entry&lt;Object,Object&gt;&gt;(m.entrySet());<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      Collections.reverse(l);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      for (Map.Entry&lt;Object,Object&gt; me : l) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         Object value = me.getValue();<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>         Object key = generalize(me.getKey(), keyType);<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>         Namespace ns = juneauBpNs;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         Property p = model.createProperty(ns.getUri(), encodeElementName(toString(key)));<a name="line.334"></a>
+<span class="sourceLineNo">335</span>         RDFNode n = serializeAnything(value, false, valueType, key == null ? null : toString(key), null, r);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>         if (n != null)<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            r.addProperty(p, n);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>   }<a name="line.339"></a>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>   private void serializeBeanMap(BeanMap&lt;?&gt; m, Resource r, String typeName) throws Exception {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      List&lt;BeanPropertyValue&gt; l = m.getValues(isTrimNulls(), typeName != null ? createBeanTypeNameProperty(m, typeName) : null);<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      Collections.reverse(l);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      for (BeanPropertyValue bpv : l) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         BeanPropertyMeta pMeta = bpv.getMeta();<a name="line.345"></a>
+<span class="sourceLineNo">346</span>         ClassMeta&lt;?&gt; cMeta = pMeta.getClassMeta();<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>         if (pMeta.getExtendedMeta(RdfBeanPropertyMeta.class).isBeanUri())<a name="line.348"></a>
+<span class="sourceLineNo">349</span>            continue;<a name="line.349"></a>
+<span class="sourceLineNo">350</span><a name="line.350"></a>
+<span class="sourceLineNo">351</span>         String key = bpv.getName();<a name="line.351"></a>
+<span class="sourceLineNo">352</span>         Object value = bpv.getValue();<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         Throwable t = bpv.getThrown();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         if (t != null)<a name="line.354"></a>
+<span class="sourceLineNo">355</span>            onBeanGetterException(pMeta, t);<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>         if (canIgnoreValue(cMeta, key, value))<a name="line.357"></a>
+<span class="sourceLineNo">358</span>            continue;<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>         BeanPropertyMeta bpm = bpv.getMeta();<a name="line.360"></a>
+<span class="sourceLineNo">361</span>         Namespace ns = bpm.getExtendedMeta(RdfBeanPropertyMeta.class).getNamespace();<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         if (ns == null &amp;&amp; useXmlNamespaces)<a name="line.362"></a>
+<span class="sourceLineNo">363</span>            ns = bpm.getExtendedMeta(XmlBeanPropertyMeta.class).getNamespace();<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         if (ns == null)<a name="line.364"></a>
+<span class="sourceLineNo">365</span>            ns = juneauBpNs;<a name="line.365"></a>
+<span class="sourceLineNo">366</span>         else if (autoDetectNamespaces)<a name="line.366"></a>
+<span class="sourceLineNo">367</span>            addModelPrefix(ns);<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>         Property p = model.createProperty(ns.getUri(), encodeElementName(key));<a name="line.369"></a>
+<span class="sourceLineNo">370</span>         RDFNode n = serializeAnything(value, pMeta.isUri(), cMeta, key, pMeta, r);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         if (n != null)<a name="line.371"></a>
+<span class="sourceLineNo">372</span>            r.addProperty(p, n);<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      }<a name="line.373"></a>
+<span class="sourceLineNo">374</span>   }<a name="line.374"></a>
 <span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>   private Container serializeToContainer(Collection c, ClassMeta&lt;?&gt; type, Container list) throws Exception {<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>      ClassMeta&lt;?&gt; elementType = type.getElementType();<a name="line.378"></a>
-<span class="sourceLineNo">379</span>      for (Object e : c) {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>         RDFNode n = serializeAnything(e, false, elementType, null, null, null);<a name="line.380"></a>
-<span class="sourceLineNo">381</span>         list = list.add(n);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      }<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      return list;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   }<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>   private RDFList serializeToList(Collection c, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      ClassMeta&lt;?&gt; elementType = type.getElementType();<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      List&lt;RDFNode&gt; l = new ArrayList&lt;RDFNode&gt;(c.size());<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      for (Object e : c) {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>         l.add(serializeAnything(e, false, elementType, null, null, null));<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      }<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      return model.createList(l.iterator());<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   }<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>   private void serializeToMultiProperties(Collection c, ClassMeta&lt;?&gt; sType, <a name="line.395"></a>
-<span class="sourceLineNo">396</span>         BeanPropertyMeta bpm, String attrName, Resource parentResource) throws Exception {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      ClassMeta&lt;?&gt; elementType = sType.getElementType();<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      for (Object e : c) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>         Namespace ns = null;<a name="line.399"></a>
-<span class="sourceLineNo">400</span>         if (bpm != null) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>            ns = bpm.getExtendedMeta(RdfBeanPropertyMeta.class).getNamespace();<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            if (ns == null &amp;&amp; useXmlNamespaces)<a name="line.402"></a>
-<span class="sourceLineNo">403</span>               ns = bpm.getExtendedMeta(XmlBeanPropertyMeta.class).getNamespace();<a name="line.403"></a>
-<span class="sourceLineNo">404</span>         }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>         if (ns == null)<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            ns = juneauBpNs;<a name="line.406"></a>
-<span class="sourceLineNo">407</span>         else if (autoDetectNamespaces)<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            addModelPrefix(ns);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>         RDFNode n2 = serializeAnything(e, false, elementType, null, null, null);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>         Property p = model.createProperty(ns.getUri(), encodeElementName(attrName));<a name="line.410"></a>
-<span class="sourceLineNo">411</span>         parentResource.addProperty(p, n2);<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      }<a name="line.412"></a>
-<span class="sourceLineNo">413</span>   }<a name="line.413"></a>
-<span class="sourceLineNo">414</span>}<a name="line.414"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>   private Container serializeToContainer(Collection c, ClassMeta&lt;?&gt; type, Container list) throws Exception {<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>      ClassMeta&lt;?&gt; elementType = type.getElementType();<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      for (Object e : c) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         RDFNode n = serializeAnything(e, false, elementType, null, null, null);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>         list = list.add(n);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      }<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      return list;<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>   private RDFList serializeToList(Collection c, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      ClassMeta&lt;?&gt; elementType = type.getElementType();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      List&lt;RDFNode&gt; l = new ArrayList&lt;RDFNode&gt;(c.size());<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      for (Object e : c) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>         l.add(serializeAnything(e, false, elementType, null, null, null));<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      return model.createList(l.iterator());<a name="line.393"></a>
+<span class="sourceLineNo">394</span>   }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>   private void serializeToMultiProperties(Collection c, ClassMeta&lt;?&gt; sType, <a name="line.396"></a>
+<span class="sourceLineNo">397</span>         BeanPropertyMeta bpm, String attrName, Resource parentResource) throws Exception {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>      ClassMeta&lt;?&gt; elementType = sType.getElementType();<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      for (Object e : c) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>         Namespace ns = null;<a name="line.400"></a>
+<span class="sourceLineNo">401</span>         if (bpm != null) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>            ns = bpm.getExtendedMeta(RdfBeanPropertyMeta.class).getNamespace();<a name="line.402"></a>
+<span class="sourceLineNo">403</span>            if (ns == null &amp;&amp; useXmlNamespaces)<a name="line.403"></a>
+<span class="sourceLineNo">404</span>               ns = bpm.getExtendedMeta(XmlBeanPropertyMeta.class).getNamespace();<a name="line.404"></a>
+<span class="sourceLineNo">405</span>         }<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         if (ns == null)<a name="line.406"></a>
+<span class="sourceLineNo">407</span>            ns = juneauBpNs;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>         else if (autoDetectNamespaces)<a name="line.408"></a>
+<span class="sourceLineNo">409</span>            addModelPrefix(ns);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>         RDFNode n2 = serializeAnything(e, false, elementType, null, null, null);<a name="line.410"></a>
+<span class="sourceLineNo">411</span>         Property p = model.createProperty(ns.getUri(), encodeElementName(attrName));<a name="line.411"></a>
+<span class="sourceLineNo">412</span>         parentResource.addProperty(p, n2);<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      }<a name="line.413"></a>
+<span class="sourceLineNo">414</span>   }<a name="line.414"></a>
+<span class="sourceLineNo">415</span>}<a name="line.415"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/json/JsonParserSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/json/JsonParserSession.html b/content/site/apidocs/src-html/org/apache/juneau/json/JsonParserSession.html
index 293396f..4dee7de 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/json/JsonParserSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/json/JsonParserSession.html
@@ -117,8 +117,8 @@
 <span class="sourceLineNo">109</span><a name="line.109"></a>
 <span class="sourceLineNo">110</span>      if (eType == null)<a name="line.110"></a>
 <span class="sourceLineNo">111</span>         eType = (ClassMeta&lt;T&gt;)object();<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      PojoSwap&lt;T,Object&gt; transform = (PojoSwap&lt;T,Object&gt;)eType.getPojoSwap();<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      ClassMeta&lt;?&gt; sType = eType.getSerializedClassMeta();<a name="line.113"></a>
+<span class="sourceLineNo">112</span>      PojoSwap&lt;T,Object&gt; swap = (PojoSwap&lt;T,Object&gt;)eType.getPojoSwap(this);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      ClassMeta&lt;?&gt; sType = swap == null ? eType : swap.getSwapClassMeta(this);<a name="line.113"></a>
 <span class="sourceLineNo">114</span>      setCurrentClass(sType);<a name="line.114"></a>
 <span class="sourceLineNo">115</span>      String wrapperAttr = sType.getExtendedMeta(JsonClassMeta.class).getWrapperAttr();<a name="line.115"></a>
 <span class="sourceLineNo">116</span><a name="line.116"></a>
@@ -213,8 +213,8 @@
 <span class="sourceLineNo">205</span>      if (wrapperAttr != null)<a name="line.205"></a>
 <span class="sourceLineNo">206</span>         skipWrapperAttrEnd(r);<a name="line.206"></a>
 <span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>      if (transform != null &amp;&amp; o != null)<a name="line.208"></a>
-<span class="sourceLineNo">209</span>         o = transform.unswap(this, o, eType);<a name="line.209"></a>
+<span class="sourceLineNo">208</span>      if (swap != null &amp;&amp; o != null)<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         o = swap.unswap(this, o, eType);<a name="line.209"></a>
 <span class="sourceLineNo">210</span><a name="line.210"></a>
 <span class="sourceLineNo">211</span>      if (outer != null)<a name="line.211"></a>
 <span class="sourceLineNo">212</span>         setParent(eType, o, outer);<a name="line.212"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/json/JsonSchemaSerializerSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/json/JsonSchemaSerializerSession.html b/content/site/apidocs/src-html/org/apache/juneau/json/JsonSchemaSerializerSession.html
index 08fa670..18919d7 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/json/JsonSchemaSerializerSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/json/JsonSchemaSerializerSession.html
@@ -80,7 +80,7 @@
 <span class="sourceLineNo">072</span><a name="line.72"></a>
 <span class="sourceLineNo">073</span>      aType = push(attrName, eType, null);<a name="line.73"></a>
 <span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>      sType = eType.getSerializedClassMeta();<a name="line.75"></a>
+<span class="sourceLineNo">075</span>      sType = eType.getSerializedClassMeta(this);<a name="line.75"></a>
 <span class="sourceLineNo">076</span>      String type = null;<a name="line.76"></a>
 <span class="sourceLineNo">077</span><a name="line.77"></a>
 <span class="sourceLineNo">078</span>      if (sType.isEnum() || sType.isCharSequence() || sType.isChar())<a name="line.78"></a>
@@ -98,7 +98,7 @@
 <span class="sourceLineNo">090</span><a name="line.90"></a>
 <span class="sourceLineNo">091</span>      out.put("type", type);<a name="line.91"></a>
 <span class="sourceLineNo">092</span>      out.put("description", eType.toString());<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      PojoSwap f = eType.getPojoSwap();<a name="line.93"></a>
+<span class="sourceLineNo">093</span>      PojoSwap f = eType.getPojoSwap(this);<a name="line.93"></a>
 <span class="sourceLineNo">094</span>      if (f != null)<a name="line.94"></a>
 <span class="sourceLineNo">095</span>         out.put("transform", f);<a name="line.95"></a>
 <span class="sourceLineNo">096</span><a name="line.96"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.Readable.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.Readable.html b/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.Readable.html
index 3a31851..3e2afe3 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.Readable.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.Readable.html
@@ -156,7 +156,7 @@
 <span class="sourceLineNo">148</span>               .append(JSON_simpleMode, true)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>               .append(SERIALIZER_quoteChar, '\''),<a name="line.149"></a>
 <span class="sourceLineNo">150</span>            "application/json",<a name="line.150"></a>
-<span class="sourceLineNo">151</span>            "application/json+simple", "text/json+simple"<a name="line.151"></a>
+<span class="sourceLineNo">151</span>            "application/json+simple", "application/json+simple+*", "text/json+simple", "text/json+simple+*"<a name="line.151"></a>
 <span class="sourceLineNo">152</span>         );<a name="line.152"></a>
 <span class="sourceLineNo">153</span>      }<a name="line.153"></a>
 <span class="sourceLineNo">154</span>   }<a name="line.154"></a>
@@ -212,7 +212,7 @@
 <span class="sourceLineNo">204</span>    *    The property store containing all the settings for this object.<a name="line.204"></a>
 <span class="sourceLineNo">205</span>    */<a name="line.205"></a>
 <span class="sourceLineNo">206</span>   public JsonSerializer(PropertyStore propertyStore) {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      this(propertyStore, "application/json", "application/json", "text/json");<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      this(propertyStore, "application/json", "application/json", "application/json+*", "text/json", "text/json+*");<a name="line.207"></a>
 <span class="sourceLineNo">208</span>   }<a name="line.208"></a>
 <span class="sourceLineNo">209</span><a name="line.209"></a>
 <span class="sourceLineNo">210</span>   /**<a name="line.210"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.Simple.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.Simple.html b/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.Simple.html
index 3a31851..3e2afe3 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.Simple.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.Simple.html
@@ -156,7 +156,7 @@
 <span class="sourceLineNo">148</span>               .append(JSON_simpleMode, true)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>               .append(SERIALIZER_quoteChar, '\''),<a name="line.149"></a>
 <span class="sourceLineNo">150</span>            "application/json",<a name="line.150"></a>
-<span class="sourceLineNo">151</span>            "application/json+simple", "text/json+simple"<a name="line.151"></a>
+<span class="sourceLineNo">151</span>            "application/json+simple", "application/json+simple+*", "text/json+simple", "text/json+simple+*"<a name="line.151"></a>
 <span class="sourceLineNo">152</span>         );<a name="line.152"></a>
 <span class="sourceLineNo">153</span>      }<a name="line.153"></a>
 <span class="sourceLineNo">154</span>   }<a name="line.154"></a>
@@ -212,7 +212,7 @@
 <span class="sourceLineNo">204</span>    *    The property store containing all the settings for this object.<a name="line.204"></a>
 <span class="sourceLineNo">205</span>    */<a name="line.205"></a>
 <span class="sourceLineNo">206</span>   public JsonSerializer(PropertyStore propertyStore) {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      this(propertyStore, "application/json", "application/json", "text/json");<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      this(propertyStore, "application/json", "application/json", "application/json+*", "text/json", "text/json+*");<a name="line.207"></a>
 <span class="sourceLineNo">208</span>   }<a name="line.208"></a>
 <span class="sourceLineNo">209</span><a name="line.209"></a>
 <span class="sourceLineNo">210</span>   /**<a name="line.210"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.SimpleReadable.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.SimpleReadable.html b/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.SimpleReadable.html
index 3a31851..3e2afe3 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.SimpleReadable.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.SimpleReadable.html
@@ -156,7 +156,7 @@
 <span class="sourceLineNo">148</span>               .append(JSON_simpleMode, true)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>               .append(SERIALIZER_quoteChar, '\''),<a name="line.149"></a>
 <span class="sourceLineNo">150</span>            "application/json",<a name="line.150"></a>
-<span class="sourceLineNo">151</span>            "application/json+simple", "text/json+simple"<a name="line.151"></a>
+<span class="sourceLineNo">151</span>            "application/json+simple", "application/json+simple+*", "text/json+simple", "text/json+simple+*"<a name="line.151"></a>
 <span class="sourceLineNo">152</span>         );<a name="line.152"></a>
 <span class="sourceLineNo">153</span>      }<a name="line.153"></a>
 <span class="sourceLineNo">154</span>   }<a name="line.154"></a>
@@ -212,7 +212,7 @@
 <span class="sourceLineNo">204</span>    *    The property store containing all the settings for this object.<a name="line.204"></a>
 <span class="sourceLineNo">205</span>    */<a name="line.205"></a>
 <span class="sourceLineNo">206</span>   public JsonSerializer(PropertyStore propertyStore) {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      this(propertyStore, "application/json", "application/json", "text/json");<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      this(propertyStore, "application/json", "application/json", "application/json+*", "text/json", "text/json+*");<a name="line.207"></a>
 <span class="sourceLineNo">208</span>   }<a name="line.208"></a>
 <span class="sourceLineNo">209</span><a name="line.209"></a>
 <span class="sourceLineNo">210</span>   /**<a name="line.210"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.SimpleReadableSafe.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.SimpleReadableSafe.html b/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.SimpleReadableSafe.html
index 3a31851..3e2afe3 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.SimpleReadableSafe.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.SimpleReadableSafe.html
@@ -156,7 +156,7 @@
 <span class="sourceLineNo">148</span>               .append(JSON_simpleMode, true)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>               .append(SERIALIZER_quoteChar, '\''),<a name="line.149"></a>
 <span class="sourceLineNo">150</span>            "application/json",<a name="line.150"></a>
-<span class="sourceLineNo">151</span>            "application/json+simple", "text/json+simple"<a name="line.151"></a>
+<span class="sourceLineNo">151</span>            "application/json+simple", "application/json+simple+*", "text/json+simple", "text/json+simple+*"<a name="line.151"></a>
 <span class="sourceLineNo">152</span>         );<a name="line.152"></a>
 <span class="sourceLineNo">153</span>      }<a name="line.153"></a>
 <span class="sourceLineNo">154</span>   }<a name="line.154"></a>
@@ -212,7 +212,7 @@
 <span class="sourceLineNo">204</span>    *    The property store containing all the settings for this object.<a name="line.204"></a>
 <span class="sourceLineNo">205</span>    */<a name="line.205"></a>
 <span class="sourceLineNo">206</span>   public JsonSerializer(PropertyStore propertyStore) {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      this(propertyStore, "application/json", "application/json", "text/json");<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      this(propertyStore, "application/json", "application/json", "application/json+*", "text/json", "text/json+*");<a name="line.207"></a>
 <span class="sourceLineNo">208</span>   }<a name="line.208"></a>
 <span class="sourceLineNo">209</span><a name="line.209"></a>
 <span class="sourceLineNo">210</span>   /**<a name="line.210"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.html b/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.html
index 3a31851..3e2afe3 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializer.html
@@ -156,7 +156,7 @@
 <span class="sourceLineNo">148</span>               .append(JSON_simpleMode, true)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>               .append(SERIALIZER_quoteChar, '\''),<a name="line.149"></a>
 <span class="sourceLineNo">150</span>            "application/json",<a name="line.150"></a>
-<span class="sourceLineNo">151</span>            "application/json+simple", "text/json+simple"<a name="line.151"></a>
+<span class="sourceLineNo">151</span>            "application/json+simple", "application/json+simple+*", "text/json+simple", "text/json+simple+*"<a name="line.151"></a>
 <span class="sourceLineNo">152</span>         );<a name="line.152"></a>
 <span class="sourceLineNo">153</span>      }<a name="line.153"></a>
 <span class="sourceLineNo">154</span>   }<a name="line.154"></a>
@@ -212,7 +212,7 @@
 <span class="sourceLineNo">204</span>    *    The property store containing all the settings for this object.<a name="line.204"></a>
 <span class="sourceLineNo">205</span>    */<a name="line.205"></a>
 <span class="sourceLineNo">206</span>   public JsonSerializer(PropertyStore propertyStore) {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      this(propertyStore, "application/json", "application/json", "text/json");<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      this(propertyStore, "application/json", "application/json", "application/json+*", "text/json", "text/json+*");<a name="line.207"></a>
 <span class="sourceLineNo">208</span>   }<a name="line.208"></a>
 <span class="sourceLineNo">209</span><a name="line.209"></a>
 <span class="sourceLineNo">210</span>   /**<a name="line.210"></a>


[08/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/rest/labels/BeanDescription.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/labels/BeanDescription.html b/content/site/apidocs/src-html/org/apache/juneau/rest/labels/BeanDescription.html
index 1d21b2c..f02d666 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/rest/labels/BeanDescription.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/rest/labels/BeanDescription.html
@@ -75,7 +75,7 @@
 <span class="sourceLineNo">067</span>       */<a name="line.67"></a>
 <span class="sourceLineNo">068</span>      public BeanPropertyDescription(String name, ClassMeta&lt;?&gt; type) {<a name="line.68"></a>
 <span class="sourceLineNo">069</span>         this.name = name;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>         this.type = type.getSerializedClassMeta().toString();<a name="line.70"></a>
+<span class="sourceLineNo">070</span>         this.type = type.getSerializedClassMeta(null).toString();<a name="line.70"></a>
 <span class="sourceLineNo">071</span>      }<a name="line.71"></a>
 <span class="sourceLineNo">072</span>   }<a name="line.72"></a>
 <span class="sourceLineNo">073</span>}<a name="line.73"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerGroup.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerGroup.html b/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerGroup.html
index 6f551f0..8ff3238 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerGroup.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerGroup.html
@@ -38,195 +38,232 @@
 <span class="sourceLineNo">030</span> *    &lt;li&gt;<a name="line.30"></a>
 <span class="sourceLineNo">031</span> *       Sets common properties on all serializers in a single method call.<a name="line.31"></a>
 <span class="sourceLineNo">032</span> *    &lt;li&gt;<a name="line.32"></a>
-<span class="sourceLineNo">033</span> *       Locks all serializers in a single method call.<a name="line.33"></a>
-<span class="sourceLineNo">034</span> *    &lt;li&gt;<a name="line.34"></a>
-<span class="sourceLineNo">035</span> *       Clones existing groups and all serializers within the group in a single method call.<a name="line.35"></a>
-<span class="sourceLineNo">036</span> * &lt;/ul&gt;<a name="line.36"></a>
+<span class="sourceLineNo">033</span> *       Clones existing groups and all serializers within the group in a single method call.<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * &lt;/ul&gt;<a name="line.34"></a>
+<span class="sourceLineNo">035</span> *<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * &lt;h6 class='topic'&gt;Match ordering&lt;/h6&gt;<a name="line.36"></a>
 <span class="sourceLineNo">037</span> *<a name="line.37"></a>
-<span class="sourceLineNo">038</span> * &lt;h6 class='topic'&gt;Match ordering&lt;/h6&gt;<a name="line.38"></a>
+<span class="sourceLineNo">038</span> * Serializers are matched against &lt;code&gt;Accept&lt;/code&gt; strings in the order they exist in this group.<a name="line.38"></a>
 <span class="sourceLineNo">039</span> *<a name="line.39"></a>
-<span class="sourceLineNo">040</span> * Serializers are matched against &lt;code&gt;Accept&lt;/code&gt; strings in the order they exist in this group.<a name="line.40"></a>
-<span class="sourceLineNo">041</span> *<a name="line.41"></a>
-<span class="sourceLineNo">042</span> * &lt;p&gt;<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * Adding new entries will cause the entries to be prepended to the group.<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * This allows for previous serializers to be overridden through subsequent calls.<a name="line.44"></a>
-<span class="sourceLineNo">045</span> *<a name="line.45"></a>
-<span class="sourceLineNo">046</span> * &lt;p&gt;<a name="line.46"></a>
-<span class="sourceLineNo">047</span> * For example, calling &lt;code&gt;g.append(S1.&lt;jk&gt;class&lt;/jk&gt;,S2.&lt;jk&gt;class&lt;/jk&gt;).append(S3.&lt;jk&gt;class&lt;/jk&gt;,S4.&lt;jk&gt;class&lt;/jk&gt;)&lt;/code&gt;<a name="line.47"></a>
-<span class="sourceLineNo">048</span> * will result in the order &lt;code&gt;S3, S4, S1, S2&lt;/code&gt;.<a name="line.48"></a>
-<span class="sourceLineNo">049</span> *<a name="line.49"></a>
-<span class="sourceLineNo">050</span> * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.50"></a>
-<span class="sourceLineNo">051</span> * &lt;p class='bcode'&gt;<a name="line.51"></a>
-<span class="sourceLineNo">052</span> *    &lt;jc&gt;// Construct a new serializer group&lt;/jc&gt;<a name="line.52"></a>
-<span class="sourceLineNo">053</span> *    SerializerGroup g = &lt;jk&gt;new&lt;/jk&gt; SerializerGroupBuilder();<a name="line.53"></a>
-<span class="sourceLineNo">054</span> *       .append(JsonSerializer.&lt;jk&gt;class&lt;/jk&gt;, XmlSerializer.&lt;jk&gt;class&lt;/jk&gt;); &lt;jc&gt;// Add some serializers to it&lt;/jc&gt;<a name="line.54"></a>
-<span class="sourceLineNo">055</span> *       .ws().pojoSwaps(CalendarSwap.ISO8601DT.&lt;jk&gt;class&lt;/jk&gt;) &lt;jc&gt;// Change settings for all serializers in the group.&lt;/jc&gt;<a name="line.55"></a>
-<span class="sourceLineNo">056</span> *       .build();<a name="line.56"></a>
-<span class="sourceLineNo">057</span> *<a name="line.57"></a>
-<span class="sourceLineNo">058</span> *    &lt;jc&gt;// Find the appropriate serializer by Accept type&lt;/jc&gt;<a name="line.58"></a>
-<span class="sourceLineNo">059</span> *    String mediaTypeMatch = g.findMatch(&lt;js&gt;"text/foo, text/json;q=0.8, text/*;q:0.6, *\/*;q=0.0"&lt;/js&gt;);<a name="line.59"></a>
-<span class="sourceLineNo">060</span> *    WriterSerializer s = g.getWriterSerializer(mediaTypeMatch);<a name="line.60"></a>
-<span class="sourceLineNo">061</span> *<a name="line.61"></a>
-<span class="sourceLineNo">062</span> *    &lt;jc&gt;// Serialize a bean to JSON text &lt;/jc&gt;<a name="line.62"></a>
-<span class="sourceLineNo">063</span> *    AddressBook addressBook = &lt;jk&gt;new&lt;/jk&gt; AddressBook();  &lt;jc&gt;// Bean to serialize.&lt;/jc&gt;<a name="line.63"></a>
-<span class="sourceLineNo">064</span> *    String json = s.serialize(addressBook);<a name="line.64"></a>
-<span class="sourceLineNo">065</span> * &lt;/p&gt;<a name="line.65"></a>
-<span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>public final class SerializerGroup {<a name="line.67"></a>
+<span class="sourceLineNo">040</span> * &lt;p&gt;<a name="line.40"></a>
+<span class="sourceLineNo">041</span> * Adding new entries will cause the entries to be prepended to the group.<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * This allows for previous serializers to be overridden through subsequent calls.<a name="line.42"></a>
+<span class="sourceLineNo">043</span> *<a name="line.43"></a>
+<span class="sourceLineNo">044</span> * &lt;p&gt;<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * For example, calling &lt;code&gt;g.append(S1.&lt;jk&gt;class&lt;/jk&gt;,S2.&lt;jk&gt;class&lt;/jk&gt;).append(S3.&lt;jk&gt;class&lt;/jk&gt;,S4.&lt;jk&gt;class&lt;/jk&gt;)&lt;/code&gt;<a name="line.45"></a>
+<span class="sourceLineNo">046</span> * will result in the order &lt;code&gt;S3, S4, S1, S2&lt;/code&gt;.<a name="line.46"></a>
+<span class="sourceLineNo">047</span> *<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.48"></a>
+<span class="sourceLineNo">049</span> * &lt;p class='bcode'&gt;<a name="line.49"></a>
+<span class="sourceLineNo">050</span> *    &lt;jc&gt;// Construct a new serializer group&lt;/jc&gt;<a name="line.50"></a>
+<span class="sourceLineNo">051</span> *    SerializerGroup g = &lt;jk&gt;new&lt;/jk&gt; SerializerGroupBuilder();<a name="line.51"></a>
+<span class="sourceLineNo">052</span> *       .append(JsonSerializer.&lt;jk&gt;class&lt;/jk&gt;, XmlSerializer.&lt;jk&gt;class&lt;/jk&gt;); &lt;jc&gt;// Add some serializers to it&lt;/jc&gt;<a name="line.52"></a>
+<span class="sourceLineNo">053</span> *       .ws().pojoSwaps(CalendarSwap.ISO8601DT.&lt;jk&gt;class&lt;/jk&gt;) &lt;jc&gt;// Change settings for all serializers in the group.&lt;/jc&gt;<a name="line.53"></a>
+<span class="sourceLineNo">054</span> *       .build();<a name="line.54"></a>
+<span class="sourceLineNo">055</span> *<a name="line.55"></a>
+<span class="sourceLineNo">056</span> *    &lt;jc&gt;// Find the appropriate serializer by Accept type&lt;/jc&gt;<a name="line.56"></a>
+<span class="sourceLineNo">057</span> *    WriterSerializer s = g.getWriterSerializer(&lt;js&gt;"text/foo, text/json;q=0.8, text/*;q:0.6, *\/*;q=0.0"&lt;/js&gt;);<a name="line.57"></a>
+<span class="sourceLineNo">058</span> *<a name="line.58"></a>
+<span class="sourceLineNo">059</span> *    &lt;jc&gt;// Serialize a bean to JSON text &lt;/jc&gt;<a name="line.59"></a>
+<span class="sourceLineNo">060</span> *    AddressBook addressBook = &lt;jk&gt;new&lt;/jk&gt; AddressBook();  &lt;jc&gt;// Bean to serialize.&lt;/jc&gt;<a name="line.60"></a>
+<span class="sourceLineNo">061</span> *    String json = s.serialize(addressBook);<a name="line.61"></a>
+<span class="sourceLineNo">062</span> * &lt;/p&gt;<a name="line.62"></a>
+<span class="sourceLineNo">063</span> */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>public final class SerializerGroup {<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>   // Maps Accept headers to matching serializers.<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   private final ConcurrentHashMap&lt;String,SerializerMatch&gt; cache = new ConcurrentHashMap&lt;String,SerializerMatch&gt;();<a name="line.67"></a>
 <span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>   // Maps Accept headers to matching serializers.<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   private final ConcurrentHashMap&lt;String,SerializerMatch&gt; cache = new ConcurrentHashMap&lt;String,SerializerMatch&gt;();<a name="line.70"></a>
-<span class="sourceLineNo">071</span><a name="line.71"></a>
-<span class="sourceLineNo">072</span>   private final MediaType[] mediaTypes;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>   private final List&lt;MediaType&gt; mediaTypesList;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>   private final Serializer[] mediaTypeSerializers;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   private final List&lt;Serializer&gt; serializers;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>   private final PropertyStore propertyStore;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>   private final BeanContext beanContext;<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>   /**<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    * Constructor.<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    *<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    * @param propertyStore<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    *    The modifiable properties that were used to initialize the serializers.<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    *    A snapshot of these will be made so that we can clone and modify this group.<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    * @param serializers<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    *    The serializers defined in this group.<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    *    The order is important because they will be tried in reverse order (e.g.newer first) in which they will be tried<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    *    to match against media types.<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    */<a name="line.89"></a>
-<span class="sourceLineNo">090</span>   public SerializerGroup(PropertyStore propertyStore, Serializer[] serializers) {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      this.propertyStore = propertyStore.copy();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      this.beanContext = propertyStore.getBeanContext();<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      this.serializers = Collections.unmodifiableList(new ArrayList&lt;Serializer&gt;(Arrays.asList(serializers)));<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>      List&lt;MediaType&gt; lmt = new ArrayList&lt;MediaType&gt;();<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      List&lt;Serializer&gt; l = new ArrayList&lt;Serializer&gt;();<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      for (Serializer s : serializers) {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>         for (MediaType m: s.getMediaTypes()) {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>            lmt.add(m);<a name="line.99"></a>
-<span class="sourceLineNo">100</span>            l.add(s);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>         }<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      }<a name="line.102"></a>
-<span class="sourceLineNo">103</span><a name="line.103"></a>
-<span class="sourceLineNo">104</span>      this.mediaTypes = lmt.toArray(new MediaType[lmt.size()]);<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      this.mediaTypesList = Collections.unmodifiableList(lmt);<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      this.mediaTypeSerializers = l.toArray(new Serializer[l.size()]);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   }<a name="line.107"></a>
-<span class="sourceLineNo">108</span><a name="line.108"></a>
-<span class="sourceLineNo">109</span>   /**<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    * Searches the group for a serializer that can handle the specified &lt;code&gt;Accept&lt;/code&gt; value.<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    *<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    * &lt;p&gt;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    * The &lt;code&gt;accept&lt;/code&gt; value complies with the syntax described in RFC2616, Section 14.1, as described below:<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    * &lt;p class='bcode'&gt;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    *    Accept         = "Accept" ":"<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    *                      #( media-range [ accept-params ] )<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    *<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    *    media-range    = ( "*\/*"<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    *                      | ( type "/" "*" )<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    *                      | ( type "/" subtype )<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    *                      ) *( ";" parameter )<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    *    accept-params  = ";" "q" "=" qvalue *( accept-extension )<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    *    accept-extension = ";" token [ "=" ( token | quoted-string ) ]<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    * &lt;/p&gt;<a name="line.124"></a>
+<span class="sourceLineNo">069</span>   private final MediaType[] mediaTypes;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>   private final List&lt;MediaType&gt; mediaTypesList;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>   private final Serializer[] mediaTypeSerializers;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>   private final List&lt;Serializer&gt; serializers;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>   private final PropertyStore propertyStore;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   private final BeanContext beanContext;<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>   /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    * Constructor.<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    *<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    * @param propertyStore<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    *    The modifiable properties that were used to initialize the serializers.<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    *    A snapshot of these will be made so that we can clone and modify this group.<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    * @param serializers<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    *    The serializers defined in this group.<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    *    The order is important because they will be tried in reverse order (e.g.newer first) in which they will be tried<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    *    to match against media types.<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    */<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   public SerializerGroup(PropertyStore propertyStore, Serializer[] serializers) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      this.propertyStore = propertyStore.copy();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      this.beanContext = propertyStore.getBeanContext();<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      this.serializers = Collections.unmodifiableList(new ArrayList&lt;Serializer&gt;(Arrays.asList(serializers)));<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>      List&lt;MediaType&gt; lmt = new ArrayList&lt;MediaType&gt;();<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      List&lt;Serializer&gt; l = new ArrayList&lt;Serializer&gt;();<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      for (Serializer s : serializers) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>         for (MediaType m: s.getMediaTypes()) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>            lmt.add(m);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>            l.add(s);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         }<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>      this.mediaTypes = lmt.toArray(new MediaType[lmt.size()]);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>      this.mediaTypesList = Collections.unmodifiableList(lmt);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      this.mediaTypeSerializers = l.toArray(new Serializer[l.size()]);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>   }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>   /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    * Searches the group for a serializer that can handle the specified &lt;code&gt;Accept&lt;/code&gt; value.<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    *<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    * &lt;p&gt;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    * The &lt;code&gt;accept&lt;/code&gt; value complies with the syntax described in RFC2616, Section 14.1, as described below:<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    * &lt;p class='bcode'&gt;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    *    Accept         = "Accept" ":"<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    *                      #( media-range [ accept-params ] )<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    *<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    *    media-range    = ( "*\/*"<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    *                      | ( type "/" "*" )<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    *                      | ( type "/" subtype )<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    *                      ) *( ";" parameter )<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    *    accept-params  = ";" "q" "=" qvalue *( accept-extension )<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    *    accept-extension = ";" token [ "=" ( token | quoted-string ) ]<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    * &lt;/p&gt;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    *<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    * &lt;p&gt;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    * The returned object includes both the serializer and media type that matched.<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    *<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    * &lt;p&gt;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    * The returned object includes both the serializer and media type that matched.<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    *<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    * @param acceptHeader The HTTP &lt;l&gt;Accept&lt;/l&gt; header string.<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    * @return The serializer and media type that matched the accept header, or &lt;jk&gt;null&lt;/jk&gt; if no match was made.<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    */<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   public SerializerMatch getSerializerMatch(String acceptHeader) {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      SerializerMatch sm = cache.get(acceptHeader);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      if (sm != null)<a name="line.134"></a>
-<span class="sourceLineNo">135</span>         return sm;<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span>      Accept a = Accept.forString(acceptHeader);<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      int match = a.findMatch(mediaTypes);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      if (match &gt;= 0) {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>         sm = new SerializerMatch(mediaTypes[match], mediaTypeSerializers[match]);<a name="line.140"></a>
-<span class="sourceLineNo">141</span>         cache.putIfAbsent(acceptHeader, sm);<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      }<a name="line.142"></a>
+<span class="sourceLineNo">126</span>    * @param acceptHeader The HTTP &lt;l&gt;Accept&lt;/l&gt; header string.<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    * @return The serializer and media type that matched the accept header, or &lt;jk&gt;null&lt;/jk&gt; if no match was made.<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    */<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   public SerializerMatch getSerializerMatch(String acceptHeader) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      SerializerMatch sm = cache.get(acceptHeader);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      if (sm != null)<a name="line.131"></a>
+<span class="sourceLineNo">132</span>         return sm;<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>      Accept a = Accept.forString(acceptHeader);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      int match = a.findMatch(mediaTypes);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      if (match &gt;= 0) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         sm = new SerializerMatch(mediaTypes[match], mediaTypeSerializers[match]);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         cache.putIfAbsent(acceptHeader, sm);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      }<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>      return cache.get(acceptHeader);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>   }<a name="line.142"></a>
 <span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return cache.get(acceptHeader);<a name="line.144"></a>
-<span class="sourceLineNo">145</span>   }<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>   /**<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    * Same as {@link #getSerializerMatch(String)} but matches using a {@link MediaType} instance.<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    *<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    * @param mediaType The HTTP media type.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    * @return The serializer and media type that matched the media type, or &lt;jk&gt;null&lt;/jk&gt; if no match was made.<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    */<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   public SerializerMatch getSerializerMatch(MediaType mediaType) {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      return getSerializerMatch(mediaType.toString());<a name="line.154"></a>
-<span class="sourceLineNo">155</span>   }<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>   /**<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    * Same as {@link #getSerializerMatch(String)} but returns just the matched serializer.<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    *<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    * @param acceptHeader The HTTP &lt;l&gt;Accept&lt;/l&gt; header string.<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    * @return The serializer that matched the accept header, or &lt;jk&gt;null&lt;/jk&gt; if no match was made.<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    */<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   public Serializer getSerializer(String acceptHeader) {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>      SerializerMatch sm = getSerializerMatch(acceptHeader);<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      return sm == null ? null : sm.getSerializer();<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>   /**<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    * Same as {@link #getSerializerMatch(MediaType)} but returns just the matched serializer.<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    *<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    * @param mediaType The HTTP media type.<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    * @return The serializer that matched the accept header, or &lt;jk&gt;null&lt;/jk&gt; if no match was made.<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   public Serializer getSerializer(MediaType mediaType) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      if (mediaType == null)<a name="line.175"></a>
-<span class="sourceLineNo">176</span>         return null;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      return getSerializer(mediaType.toString());<a name="line.177"></a>
-<span class="sourceLineNo">178</span>   }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>   /**<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    * Returns the media types that all serializers in this group can handle.<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    *<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    * &lt;p&gt;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    * Entries are ordered in the same order as the serializers in the group.<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    *<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    * @return An unmodifiable list of media types.<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    */<a name="line.187"></a>
-<span class="sourceLineNo">188</span>   public List&lt;MediaType&gt; getSupportedMediaTypes() {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      return mediaTypesList;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   }<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>   /**<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    * Returns a copy of the property store that was used to create the serializers in this group.<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    *<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    * &lt;p&gt;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    * This method returns a new factory each time so is somewhat expensive.<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    *<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    * @return A new copy of the property store passed in to the constructor.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    */<a name="line.199"></a>
-<span class="sourceLineNo">200</span>   public PropertyStore createPropertyStore() {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      return propertyStore.copy();<a name="line.201"></a>
-<span class="sourceLineNo">202</span>   }<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>   /**<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    * Returns a copy of the serializers in this group.<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    *<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    * @return An unmodifiable list of serializers in this group.<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    */<a name="line.208"></a>
-<span class="sourceLineNo">209</span>   public List&lt;Serializer&gt; getSerializers() {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      return serializers;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   }<a name="line.211"></a>
-<span class="sourceLineNo">212</span><a name="line.212"></a>
-<span class="sourceLineNo">213</span>   /**<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    * Returns a bean context with the same properties as this group.<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    *<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    * @return The bean context.<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    */<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   public BeanContext getBeanContext() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      return beanContext;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>   }<a name="line.220"></a>
-<span class="sourceLineNo">221</span>}<a name="line.221"></a>
+<span class="sourceLineNo">144</span>   /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    * Same as {@link #getSerializerMatch(String)} but matches using a {@link MediaType} instance.<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    *<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    * @param mediaType The HTTP media type.<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    * @return The serializer and media type that matched the media type, or &lt;jk&gt;null&lt;/jk&gt; if no match was made.<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    */<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   public SerializerMatch getSerializerMatch(MediaType mediaType) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      return getSerializerMatch(mediaType.toString());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   }<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>   /**<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    * Same as {@link #getSerializerMatch(String)} but returns just the matched serializer.<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    *<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    * @param acceptHeader The HTTP &lt;l&gt;Accept&lt;/l&gt; header string.<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    * @return The serializer that matched the accept header, or &lt;jk&gt;null&lt;/jk&gt; if no match was made.<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    */<a name="line.159"></a>
+<span class="sourceLineNo">160</span>   public Serializer getSerializer(String acceptHeader) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      SerializerMatch sm = getSerializerMatch(acceptHeader);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      return sm == null ? null : sm.getSerializer();<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   }<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>   /**<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    * Same as {@link #getSerializerMatch(MediaType)} but returns just the matched serializer.<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    *<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    * @param mediaType The HTTP media type.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    * @return The serializer that matched the accept header, or &lt;jk&gt;null&lt;/jk&gt; if no match was made.<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    */<a name="line.170"></a>
+<span class="sourceLineNo">171</span>   public Serializer getSerializer(MediaType mediaType) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      if (mediaType == null)<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         return null;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      return getSerializer(mediaType.toString());<a name="line.174"></a>
+<span class="sourceLineNo">175</span>   }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>   /**<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    * Same as {@link #getSerializer(String)}, but casts it to a {@link WriterSerializer}.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    *<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    * @param acceptHeader The HTTP &lt;l&gt;Accept&lt;/l&gt; header string.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    * @return The serializer that matched the accept header, or &lt;jk&gt;null&lt;/jk&gt; if no match was made.<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    */<a name="line.182"></a>
+<span class="sourceLineNo">183</span>   public WriterSerializer getWriterSerializer(String acceptHeader) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      return (WriterSerializer)getSerializer(acceptHeader);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   }<a name="line.185"></a>
+<span class="sourceLineNo">186</span><a name="line.186"></a>
+<span class="sourceLineNo">187</span>   /**<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    * Same as {@link #getSerializer(MediaType)}, but casts it to a {@link WriterSerializer}.<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    *<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    * @param mediaType The HTTP media type.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    * @return The serializer that matched the accept header, or &lt;jk&gt;null&lt;/jk&gt; if no match was made.<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    */<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   public WriterSerializer getWriterSerializer(MediaType mediaType) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      return (WriterSerializer)getSerializer(mediaType);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>   }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>   /**<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    * Same as {@link #getSerializer(String)}, but casts it to an {@link OutputStreamSerializer}.<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    *<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    * @param acceptHeader The HTTP &lt;l&gt;Accept&lt;/l&gt; header string.<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    * @return The serializer that matched the accept header, or &lt;jk&gt;null&lt;/jk&gt; if no match was made.<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    */<a name="line.202"></a>
+<span class="sourceLineNo">203</span>   public OutputStreamSerializer getStreamSerializer(String acceptHeader) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      return (OutputStreamSerializer)getSerializer(acceptHeader);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>   }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>   /**<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    * Same as {@link #getSerializer(MediaType)}, but casts it to a {@link OutputStreamSerializer}.<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    *<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    * @param mediaType The HTTP media type.<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    * @return The serializer that matched the accept header, or &lt;jk&gt;null&lt;/jk&gt; if no match was made.<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    */<a name="line.212"></a>
+<span class="sourceLineNo">213</span>   public OutputStreamSerializer getStreamSerializer(MediaType mediaType) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      return (OutputStreamSerializer)getSerializer(mediaType);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>   }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>   /**<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    * Returns the media types that all serializers in this group can handle.<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    *<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    * &lt;p&gt;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    * Entries are ordered in the same order as the serializers in the group.<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    *<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    * @return An unmodifiable list of media types.<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    */<a name="line.224"></a>
+<span class="sourceLineNo">225</span>   public List&lt;MediaType&gt; getSupportedMediaTypes() {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      return mediaTypesList;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>   }<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>   /**<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    * Returns a copy of the property store that was used to create the serializers in this group.<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    *<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    * &lt;p&gt;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    * This method returns a new factory each time so is somewhat expensive.<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    *<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    * @return A new copy of the property store passed in to the constructor.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    */<a name="line.236"></a>
+<span class="sourceLineNo">237</span>   public PropertyStore createPropertyStore() {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      return propertyStore.copy();<a name="line.238"></a>
+<span class="sourceLineNo">239</span>   }<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>   /**<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    * Returns a copy of the serializers in this group.<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    *<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    * @return An unmodifiable list of serializers in this group.<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    */<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   public List&lt;Serializer&gt; getSerializers() {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      return serializers;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>   }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>   /**<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    * Returns a bean context with the same properties as this group.<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    *<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    * @return The bean context.<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    */<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   public BeanContext getBeanContext() {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      return beanContext;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   }<a name="line.257"></a>
+<span class="sourceLineNo">258</span>}<a name="line.258"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerSession.html b/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerSession.html
index 9515d47..737e4b2 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerSession.html
@@ -543,7 +543,7 @@
 <span class="sourceLineNo">535</span>      try {<a name="line.535"></a>
 <span class="sourceLineNo">536</span>         if (o == null)<a name="line.536"></a>
 <span class="sourceLineNo">537</span>            return null;<a name="line.537"></a>
-<span class="sourceLineNo">538</span>         PojoSwap f = (type == null || type.isObject() ? getClassMeta(o.getClass()).getPojoSwap() : type.getPojoSwap());<a name="line.538"></a>
+<span class="sourceLineNo">538</span>         PojoSwap f = (type == null || type.isObject() ? getClassMeta(o.getClass()).getPojoSwap(this) : type.getPojoSwap(this));<a name="line.538"></a>
 <span class="sourceLineNo">539</span>         if (f == null)<a name="line.539"></a>
 <span class="sourceLineNo">540</span>            return o;<a name="line.540"></a>
 <span class="sourceLineNo">541</span>         return f.swap(this, o);<a name="line.541"></a>
@@ -752,8 +752,8 @@
 <span class="sourceLineNo">744</span>         StringBuilder sb = new StringBuilder().append('[').append(depth).append(']');<a name="line.744"></a>
 <span class="sourceLineNo">745</span>         sb.append(isEmpty(name) ? "&lt;noname&gt;" : name).append(':');<a name="line.745"></a>
 <span class="sourceLineNo">746</span>         sb.append(aType.toString(simple));<a name="line.746"></a>
-<span class="sourceLineNo">747</span>         if (aType != aType.getSerializedClassMeta())<a name="line.747"></a>
-<span class="sourceLineNo">748</span>            sb.append('/').append(aType.getSerializedClassMeta().toString(simple));<a name="line.748"></a>
+<span class="sourceLineNo">747</span>         if (aType != aType.getSerializedClassMeta(null))<a name="line.747"></a>
+<span class="sourceLineNo">748</span>            sb.append('/').append(aType.getSerializedClassMeta(null).toString(simple));<a name="line.748"></a>
 <span class="sourceLineNo">749</span>         return sb.toString();<a name="line.749"></a>
 <span class="sourceLineNo">750</span>      }<a name="line.750"></a>
 <span class="sourceLineNo">751</span>   }<a name="line.751"></a>



[12/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/internal/ClassUtils.MethodInfo.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/internal/ClassUtils.MethodInfo.html b/content/site/apidocs/src-html/org/apache/juneau/internal/ClassUtils.MethodInfo.html
index 6cbb889..57fc64b 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/internal/ClassUtils.MethodInfo.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/internal/ClassUtils.MethodInfo.html
@@ -464,656 +464,662 @@
 <span class="sourceLineNo">456</span>         oc = oc.getSuperclass();<a name="line.456"></a>
 <span class="sourceLineNo">457</span>      }<a name="line.457"></a>
 <span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span>      ParameterizedType opt = (ParameterizedType)oc.getGenericSuperclass();<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      Type actualType = opt.getActualTypeArguments()[index];<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>      if (typeMap.containsKey(actualType))<a name="line.462"></a>
-<span class="sourceLineNo">463</span>         actualType = typeMap.get(actualType);<a name="line.463"></a>
+<span class="sourceLineNo">459</span>      Type gsc = oc.getGenericSuperclass();<a name="line.459"></a>
+<span class="sourceLineNo">460</span>      <a name="line.460"></a>
+<span class="sourceLineNo">461</span>      // Not actually a parameterized type.<a name="line.461"></a>
+<span class="sourceLineNo">462</span>      if (! (gsc instanceof ParameterizedType))<a name="line.462"></a>
+<span class="sourceLineNo">463</span>         return Object.class;<a name="line.463"></a>
 <span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>      if (actualType instanceof Class) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>         return (Class&lt;?&gt;)actualType;<a name="line.466"></a>
+<span class="sourceLineNo">465</span>      ParameterizedType opt = (ParameterizedType)gsc;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>      Type actualType = opt.getActualTypeArguments()[index];<a name="line.466"></a>
 <span class="sourceLineNo">467</span><a name="line.467"></a>
-<span class="sourceLineNo">468</span>      } else if (actualType instanceof GenericArrayType) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>         Class&lt;?&gt; cmpntType = (Class&lt;?&gt;)((GenericArrayType)actualType).getGenericComponentType();<a name="line.469"></a>
-<span class="sourceLineNo">470</span>         return Array.newInstance(cmpntType, 0).getClass();<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>      } else if (actualType instanceof TypeVariable) {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>         TypeVariable&lt;?&gt; typeVariable = (TypeVariable&lt;?&gt;)actualType;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>         List&lt;Class&lt;?&gt;&gt; nestedOuterTypes = new LinkedList&lt;Class&lt;?&gt;&gt;();<a name="line.474"></a>
-<span class="sourceLineNo">475</span>         for (Class&lt;?&gt; ec = oc.getEnclosingClass(); ec != null; ec = ec.getEnclosingClass()) {<a name="line.475"></a>
-<span class="sourceLineNo">476</span>            try {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>               Class&lt;?&gt; outerClass = oc.getClass();<a name="line.477"></a>
-<span class="sourceLineNo">478</span>               nestedOuterTypes.add(outerClass);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>               Map&lt;Type,Type&gt; outerTypeMap = new HashMap&lt;Type,Type&gt;();<a name="line.479"></a>
-<span class="sourceLineNo">480</span>               extractTypes(outerTypeMap, outerClass);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>               for (Map.Entry&lt;Type,Type&gt; entry : outerTypeMap.entrySet()) {<a name="line.481"></a>
-<span class="sourceLineNo">482</span>                  Type key = entry.getKey(), value = entry.getValue();<a name="line.482"></a>
-<span class="sourceLineNo">483</span>                  if (key instanceof TypeVariable) {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>                     TypeVariable&lt;?&gt; keyType = (TypeVariable&lt;?&gt;)key;<a name="line.484"></a>
-<span class="sourceLineNo">485</span>                     if (keyType.getName().equals(typeVariable.getName()) &amp;&amp; isInnerClass(keyType.getGenericDeclaration(), typeVariable.getGenericDeclaration())) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>                        if (value instanceof Class)<a name="line.486"></a>
-<span class="sourceLineNo">487</span>                           return (Class&lt;?&gt;)value;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>                        typeVariable = (TypeVariable&lt;?&gt;)entry.getValue();<a name="line.488"></a>
-<span class="sourceLineNo">489</span>                     }<a name="line.489"></a>
-<span class="sourceLineNo">490</span>                  }<a name="line.490"></a>
-<span class="sourceLineNo">491</span>               }<a name="line.491"></a>
-<span class="sourceLineNo">492</span>            } catch (Exception e) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>               throw new RuntimeException(e);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>            }<a name="line.494"></a>
-<span class="sourceLineNo">495</span>         }<a name="line.495"></a>
-<span class="sourceLineNo">496</span>         throw new FormattedRuntimeException("Could not resolve type: {0}", actualType);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      } else {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>         throw new FormattedRuntimeException("Invalid type found in resolveParameterType: {0}", actualType);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      }<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   }<a name="line.500"></a>
-<span class="sourceLineNo">501</span><a name="line.501"></a>
-<span class="sourceLineNo">502</span>   private static boolean isInnerClass(GenericDeclaration od, GenericDeclaration id) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      if (od instanceof Class &amp;&amp; id instanceof Class) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>         Class&lt;?&gt; oc = (Class&lt;?&gt;)od;<a name="line.504"></a>
-<span class="sourceLineNo">505</span>         Class&lt;?&gt; ic = (Class&lt;?&gt;)id;<a name="line.505"></a>
-<span class="sourceLineNo">506</span>         while ((ic = ic.getEnclosingClass()) != null)<a name="line.506"></a>
-<span class="sourceLineNo">507</span>            if (ic == oc)<a name="line.507"></a>
-<span class="sourceLineNo">508</span>               return true;<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      }<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      return false;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   }<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>   private static void extractTypes(Map&lt;Type,Type&gt; typeMap, Class&lt;?&gt; c) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      Type gs = c.getGenericSuperclass();<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      if (gs instanceof ParameterizedType) {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>         ParameterizedType pt = (ParameterizedType)gs;<a name="line.516"></a>
-<span class="sourceLineNo">517</span>         Type[] typeParameters = ((Class&lt;?&gt;)pt.getRawType()).getTypeParameters();<a name="line.517"></a>
-<span class="sourceLineNo">518</span>         Type[] actualTypeArguments = pt.getActualTypeArguments();<a name="line.518"></a>
-<span class="sourceLineNo">519</span>         for (int i = 0; i &lt; typeParameters.length; i++) {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>            if (typeMap.containsKey(actualTypeArguments[i]))<a name="line.520"></a>
-<span class="sourceLineNo">521</span>               actualTypeArguments[i] = typeMap.get(actualTypeArguments[i]);<a name="line.521"></a>
-<span class="sourceLineNo">522</span>            typeMap.put(typeParameters[i], actualTypeArguments[i]);<a name="line.522"></a>
-<span class="sourceLineNo">523</span>         }<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
-<span class="sourceLineNo">525</span>   }<a name="line.525"></a>
-<span class="sourceLineNo">526</span><a name="line.526"></a>
-<span class="sourceLineNo">527</span>   /**<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    * Finds a public method with the specified parameters.<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    *<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    * @param c The class to look for the method.<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    * @param name The method name.<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    * @param returnType<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    *    The return type of the method.<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    *    Can be a super type of the actual return type.<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    *    For example, if the actual return type is &lt;code&gt;CharSequence&lt;/code&gt;, then &lt;code&gt;Object&lt;/code&gt; will match but<a name="line.535"></a>
-<span class="sourceLineNo">536</span>    *    &lt;code&gt;String&lt;/code&gt; will not.<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    * @param parameterTypes<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    *    The parameter types of the method.<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    *    Can be subtypes of the actual parameter types.<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    *    For example, if the parameter type is &lt;code&gt;CharSequence&lt;/code&gt;, then &lt;code&gt;String&lt;/code&gt; will match but<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    *    &lt;code&gt;Object&lt;/code&gt; will not.<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    * @return The matched method, or &lt;jk&gt;null&lt;/jk&gt; if no match was found.<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    */<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   public static Method findPublicMethod(Class&lt;?&gt; c, String name, Class&lt;?&gt; returnType, Class&lt;?&gt;...parameterTypes) {<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      for (Method m : c.getMethods()) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>         if (isPublic(m) &amp;&amp; m.getName().equals(name)) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>            Class&lt;?&gt; rt = m.getReturnType();<a name="line.547"></a>
-<span class="sourceLineNo">548</span>            if (isParentClass(returnType, rt)) {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>               Class&lt;?&gt;[] pt = m.getParameterTypes();<a name="line.549"></a>
-<span class="sourceLineNo">550</span>               if (pt.length == parameterTypes.length) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>                  boolean matches = true;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>                  for (int i = 0; i &lt; pt.length; i++) {<a name="line.552"></a>
-<span class="sourceLineNo">553</span>                     if (! isParentClass(pt[i], parameterTypes[i])) {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>                        matches = false;<a name="line.554"></a>
-<span class="sourceLineNo">555</span>                        break;<a name="line.555"></a>
-<span class="sourceLineNo">556</span>                     }<a name="line.556"></a>
-<span class="sourceLineNo">557</span>                  }<a name="line.557"></a>
-<span class="sourceLineNo">558</span>                  if (matches)<a name="line.558"></a>
-<span class="sourceLineNo">559</span>                     return m;<a name="line.559"></a>
-<span class="sourceLineNo">560</span>               }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>            }<a name="line.561"></a>
-<span class="sourceLineNo">562</span>         }<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      }<a name="line.563"></a>
-<span class="sourceLineNo">564</span>      return null;<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   }<a name="line.565"></a>
-<span class="sourceLineNo">566</span><a name="line.566"></a>
-<span class="sourceLineNo">567</span>   /**<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    * Finds a public constructor with the specified parameters without throwing an exception.<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    *<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    * @param c The class to search for a constructor.<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    * @param parameterTypes<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    *    The parameter types in the constructor.<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    *    Can be subtypes of the actual constructor argument types.<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    * @return The matching constructor, or &lt;jk&gt;null&lt;/jk&gt; if constructor could not be found.<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    */<a name="line.575"></a>
-<span class="sourceLineNo">576</span>   @SuppressWarnings("unchecked")<a name="line.576"></a>
-<span class="sourceLineNo">577</span>   public static &lt;T&gt; Constructor&lt;T&gt; findPublicConstructor(Class&lt;T&gt; c, Class&lt;?&gt;...parameterTypes) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      for (Constructor&lt;?&gt; n : c.getConstructors()) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>         if (isPublic(n)) {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>            Class&lt;?&gt;[] pt = n.getParameterTypes();<a name="line.580"></a>
-<span class="sourceLineNo">581</span>            if (pt.length == parameterTypes.length) {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>               boolean matches = true;<a name="line.582"></a>
-<span class="sourceLineNo">583</span>               for (int i = 0; i &lt; pt.length; i++) {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>                  if (! isParentClass(pt[i], parameterTypes[i])) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>                     matches = false;<a name="line.585"></a>
-<span class="sourceLineNo">586</span>                     break;<a name="line.586"></a>
-<span class="sourceLineNo">587</span>                  }<a name="line.587"></a>
-<span class="sourceLineNo">588</span>               }<a name="line.588"></a>
-<span class="sourceLineNo">589</span>               if (matches)<a name="line.589"></a>
-<span class="sourceLineNo">590</span>                  return (Constructor&lt;T&gt;)n;<a name="line.590"></a>
-<span class="sourceLineNo">591</span>            }<a name="line.591"></a>
-<span class="sourceLineNo">592</span>         }<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      }<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      return null;<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   }<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>   /**<a name="line.597"></a>
-<span class="sourceLineNo">598</span>    * Finds the public constructor that can take in the specified arguments.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>    *<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    * @param c The class we're trying to construct.<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    * @param args The arguments we want to pass into the constructor.<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    * @return<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    *    The constructor, or &lt;jk&gt;null&lt;/jk&gt; if a public constructor could not be found that takes in the specified<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    *    arguments.<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    */<a name="line.605"></a>
-<span class="sourceLineNo">606</span>   public static &lt;T&gt; Constructor&lt;T&gt; findPublicConstructor(Class&lt;T&gt; c, Object...args) {<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      return findPublicConstructor(c, getClasses(args));<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   }<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>   /**<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    * Returns the class types for the specified arguments.<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    *<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    * @param args The objects we're getting the classes of.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    * @return The classes of the arguments.<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    */<a name="line.615"></a>
-<span class="sourceLineNo">616</span>   public static Class&lt;?&gt;[] getClasses(Object...args) {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>      Class&lt;?&gt;[] pt = new Class&lt;?&gt;[args.length];<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      for (int i = 0; i &lt; args.length; i++)<a name="line.618"></a>
-<span class="sourceLineNo">619</span>         pt[i] = args[i] == null ? null : args[i].getClass();<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      return pt;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>   }<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>// This code is inherently unsafe (but still potentially useful?)<a name="line.623"></a>
-<span class="sourceLineNo">624</span>//<a name="line.624"></a>
-<span class="sourceLineNo">625</span>// /**<a name="line.625"></a>
-<span class="sourceLineNo">626</span>//  * Converts class name strings to ClassMeta objects.<a name="line.626"></a>
-<span class="sourceLineNo">627</span>//  *<a name="line.627"></a>
-<span class="sourceLineNo">628</span>//  * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.628"></a>
-<span class="sourceLineNo">629</span>//  * &lt;ul&gt;<a name="line.629"></a>
-<span class="sourceLineNo">630</span>//  *    &lt;li&gt;&lt;js&gt;"java.lang.String"&lt;/js&gt;<a name="line.630"></a>
-<span class="sourceLineNo">631</span>//  *    &lt;li&gt;&lt;js&gt;"com.foo.sample.MyBean[]"&lt;/js&gt;<a name="line.631"></a>
-<span class="sourceLineNo">632</span>//  *    &lt;li&gt;&lt;js&gt;"java.util.HashMap&lt;java.lang.String,java.lang.Integer&gt;"&lt;/js&gt;<a name="line.632"></a>
-<span class="sourceLineNo">633</span>//  *    &lt;li&gt;&lt;js&gt;"[Ljava.lang.String;"&lt;/js&gt; (i.e. the value of &lt;code&gt;String[].&lt;jk&gt;class&lt;/jk&gt;.getName()&lt;/code&gt;)<a name="line.633"></a>
-<span class="sourceLineNo">634</span>//  * &lt;/ul&gt;<a name="line.634"></a>
-<span class="sourceLineNo">635</span>//  *<a name="line.635"></a>
-<span class="sourceLineNo">636</span>//  * @param s The class name.<a name="line.636"></a>
-<span class="sourceLineNo">637</span>//  * @return The ClassMeta corresponding to the class name string.<a name="line.637"></a>
-<span class="sourceLineNo">638</span>//  */<a name="line.638"></a>
-<span class="sourceLineNo">639</span>// protected final ClassMeta&lt;?&gt; getClassMetaFromString(String s) {<a name="line.639"></a>
-<span class="sourceLineNo">640</span>//    int d = 0;<a name="line.640"></a>
-<span class="sourceLineNo">641</span>//    if (s == null || s.isEmpty())<a name="line.641"></a>
-<span class="sourceLineNo">642</span>//       return null;<a name="line.642"></a>
-<span class="sourceLineNo">643</span>//<a name="line.643"></a>
-<span class="sourceLineNo">644</span>//    // Check for Class.getName() on array class types.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>//    if (s.charAt(0) == '[') {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>//       try {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>//          return getClassMeta(findClass(s));<a name="line.647"></a>
-<span class="sourceLineNo">648</span>//       } catch (ClassNotFoundException e) {<a name="line.648"></a>
-<span class="sourceLineNo">649</span>//          throw new RuntimeException(e);<a name="line.649"></a>
-<span class="sourceLineNo">650</span>//       }<a name="line.650"></a>
-<span class="sourceLineNo">651</span>//    }<a name="line.651"></a>
-<span class="sourceLineNo">652</span>//<a name="line.652"></a>
-<span class="sourceLineNo">653</span>//    int i1 = 0;<a name="line.653"></a>
-<span class="sourceLineNo">654</span>//    int i2 = 0;<a name="line.654"></a>
-<span class="sourceLineNo">655</span>//    int dim = 0;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>//    List&lt;ClassMeta&lt;?&gt;&gt; p = null;<a name="line.656"></a>
-<span class="sourceLineNo">657</span>//    for (int i = 0; i &lt; s.length(); i++) {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>//       char c = s.charAt(i);<a name="line.658"></a>
-<span class="sourceLineNo">659</span>//       if (c == '&lt;') {<a name="line.659"></a>
-<span class="sourceLineNo">660</span>//          if (d == 0) {<a name="line.660"></a>
-<span class="sourceLineNo">661</span>//             i1 = i;<a name="line.661"></a>
-<span class="sourceLineNo">662</span>//             i2 = i+1;<a name="line.662"></a>
-<span class="sourceLineNo">663</span>//             p = new LinkedList&lt;ClassMeta&lt;?&gt;&gt;();<a name="line.663"></a>
-<span class="sourceLineNo">664</span>//          }<a name="line.664"></a>
-<span class="sourceLineNo">665</span>//          d++;<a name="line.665"></a>
-<span class="sourceLineNo">666</span>//       } else if (c == '&gt;') {<a name="line.666"></a>
-<span class="sourceLineNo">667</span>//          d--;<a name="line.667"></a>
-<span class="sourceLineNo">668</span>//          if (d == 0 &amp;&amp; p != null)<a name="line.668"></a>
-<span class="sourceLineNo">669</span>//             p.add(getClassMetaFromString(s.substring(i2, i)));<a name="line.669"></a>
-<span class="sourceLineNo">670</span>//       } else if (c == ',' &amp;&amp; d == 1) {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>//          if (p != null)<a name="line.671"></a>
-<span class="sourceLineNo">672</span>//             p.add(getClassMetaFromString(s.substring(i2, i)));<a name="line.672"></a>
-<span class="sourceLineNo">673</span>//          i2 = i+1;<a name="line.673"></a>
-<span class="sourceLineNo">674</span>//       }<a name="line.674"></a>
-<span class="sourceLineNo">675</span>//       if (c == '[') {<a name="line.675"></a>
-<span class="sourceLineNo">676</span>//          if (i1 == 0)<a name="line.676"></a>
-<span class="sourceLineNo">677</span>//             i1 = i;<a name="line.677"></a>
-<span class="sourceLineNo">678</span>//          dim++;<a name="line.678"></a>
-<span class="sourceLineNo">679</span>//       }<a name="line.679"></a>
-<span class="sourceLineNo">680</span>//    }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>//    if (i1 == 0)<a name="line.681"></a>
-<span class="sourceLineNo">682</span>//       i1 = s.length();<a name="line.682"></a>
-<span class="sourceLineNo">683</span>//    try {<a name="line.683"></a>
-<span class="sourceLineNo">684</span>//       String name = s.substring(0, i1).trim();<a name="line.684"></a>
-<span class="sourceLineNo">685</span>//       char x = name.charAt(0);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>//       Class&lt;?&gt; c = null;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>//       if (x &gt;= 'b' &amp;&amp; x &lt;= 's') {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>//          if (x == 'b' &amp;&amp; name.equals("boolean"))<a name="line.688"></a>
-<span class="sourceLineNo">689</span>//             c = boolean.class;<a name="line.689"></a>
-<span class="sourceLineNo">690</span>//          else if (x == 'b' &amp;&amp; name.equals("byte"))<a name="line.690"></a>
-<span class="sourceLineNo">691</span>//             c = byte.class;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>//          else if (x == 'c' &amp;&amp; name.equals("char"))<a name="line.692"></a>
-<span class="sourceLineNo">693</span>//             c = char.class;<a name="line.693"></a>
-<span class="sourceLineNo">694</span>//          else if (x == 'd' &amp;&amp; name.equals("double"))<a name="line.694"></a>
-<span class="sourceLineNo">695</span>//             c = double.class;<a name="line.695"></a>
-<span class="sourceLineNo">696</span>//          else if (x == 'i' &amp;&amp; name.equals("int"))<a name="line.696"></a>
-<span class="sourceLineNo">697</span>//             c = int.class;<a name="line.697"></a>
-<span class="sourceLineNo">698</span>//          else if (x == 'l' &amp;&amp; name.equals("long"))<a name="line.698"></a>
-<span class="sourceLineNo">699</span>//             c = long.class;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>//          else if (x == 's' &amp;&amp; name.equals("short"))<a name="line.700"></a>
-<span class="sourceLineNo">701</span>//             c = short.class;<a name="line.701"></a>
-<span class="sourceLineNo">702</span>//          else<a name="line.702"></a>
-<span class="sourceLineNo">703</span>//             c = findClass(name);<a name="line.703"></a>
-<span class="sourceLineNo">704</span>//       } else {<a name="line.704"></a>
-<span class="sourceLineNo">705</span>//          c = findClass(name);<a name="line.705"></a>
-<span class="sourceLineNo">706</span>//       }<a name="line.706"></a>
-<span class="sourceLineNo">707</span>//<a name="line.707"></a>
-<span class="sourceLineNo">708</span>//       ClassMeta&lt;?&gt; cm = getClassMeta(c);<a name="line.708"></a>
-<span class="sourceLineNo">709</span>//<a name="line.709"></a>
-<span class="sourceLineNo">710</span>//       if (p != null) {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>//          if (cm.isMap())<a name="line.711"></a>
-<span class="sourceLineNo">712</span>//             cm = new ClassMeta(c, this).setKeyType(p.get(0)).setValueType(p.get(1));<a name="line.712"></a>
-<span class="sourceLineNo">713</span>//          if (cm.isCollection())<a name="line.713"></a>
-<span class="sourceLineNo">714</span>//             cm = new ClassMeta(c, this).setElementType(p.get(0));<a name="line.714"></a>
-<span class="sourceLineNo">715</span>//       }<a name="line.715"></a>
-<span class="sourceLineNo">716</span>//<a name="line.716"></a>
-<span class="sourceLineNo">717</span>//       while (dim &gt; 0) {<a name="line.717"></a>
-<span class="sourceLineNo">718</span>//          cm = new ClassMeta(Array.newInstance(cm.getInnerClass(), 0).getClass(), this);<a name="line.718"></a>
-<span class="sourceLineNo">719</span>//          dim--;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>//       }<a name="line.720"></a>
-<span class="sourceLineNo">721</span>//<a name="line.721"></a>
-<span class="sourceLineNo">722</span>//       return cm;<a name="line.722"></a>
-<span class="sourceLineNo">723</span>//    } catch (ClassNotFoundException e) {<a name="line.723"></a>
-<span class="sourceLineNo">724</span>//       throw new RuntimeException(e);<a name="line.724"></a>
-<span class="sourceLineNo">725</span>//    }<a name="line.725"></a>
-<span class="sourceLineNo">726</span>// }<a name="line.726"></a>
+<span class="sourceLineNo">468</span>      if (typeMap.containsKey(actualType))<a name="line.468"></a>
+<span class="sourceLineNo">469</span>         actualType = typeMap.get(actualType);<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>      if (actualType instanceof Class) {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         return (Class&lt;?&gt;)actualType;<a name="line.472"></a>
+<span class="sourceLineNo">473</span><a name="line.473"></a>
+<span class="sourceLineNo">474</span>      } else if (actualType instanceof GenericArrayType) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>         Class&lt;?&gt; cmpntType = (Class&lt;?&gt;)((GenericArrayType)actualType).getGenericComponentType();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>         return Array.newInstance(cmpntType, 0).getClass();<a name="line.476"></a>
+<span class="sourceLineNo">477</span><a name="line.477"></a>
+<span class="sourceLineNo">478</span>      } else if (actualType instanceof TypeVariable) {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>         TypeVariable&lt;?&gt; typeVariable = (TypeVariable&lt;?&gt;)actualType;<a name="line.479"></a>
+<span class="sourceLineNo">480</span>         List&lt;Class&lt;?&gt;&gt; nestedOuterTypes = new LinkedList&lt;Class&lt;?&gt;&gt;();<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         for (Class&lt;?&gt; ec = oc.getEnclosingClass(); ec != null; ec = ec.getEnclosingClass()) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>            try {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>               Class&lt;?&gt; outerClass = oc.getClass();<a name="line.483"></a>
+<span class="sourceLineNo">484</span>               nestedOuterTypes.add(outerClass);<a name="line.484"></a>
+<span class="sourceLineNo">485</span>               Map&lt;Type,Type&gt; outerTypeMap = new HashMap&lt;Type,Type&gt;();<a name="line.485"></a>
+<span class="sourceLineNo">486</span>               extractTypes(outerTypeMap, outerClass);<a name="line.486"></a>
+<span class="sourceLineNo">487</span>               for (Map.Entry&lt;Type,Type&gt; entry : outerTypeMap.entrySet()) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                  Type key = entry.getKey(), value = entry.getValue();<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                  if (key instanceof TypeVariable) {<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                     TypeVariable&lt;?&gt; keyType = (TypeVariable&lt;?&gt;)key;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                     if (keyType.getName().equals(typeVariable.getName()) &amp;&amp; isInnerClass(keyType.getGenericDeclaration(), typeVariable.getGenericDeclaration())) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                        if (value instanceof Class)<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                           return (Class&lt;?&gt;)value;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                        typeVariable = (TypeVariable&lt;?&gt;)entry.getValue();<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                     }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                  }<a name="line.496"></a>
+<span class="sourceLineNo">497</span>               }<a name="line.497"></a>
+<span class="sourceLineNo">498</span>            } catch (Exception e) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>               throw new RuntimeException(e);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>            }<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         }<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         throw new FormattedRuntimeException("Could not resolve type: {0}", actualType);<a name="line.502"></a>
+<span class="sourceLineNo">503</span>      } else {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         throw new FormattedRuntimeException("Invalid type found in resolveParameterType: {0}", actualType);<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      }<a name="line.505"></a>
+<span class="sourceLineNo">506</span>   }<a name="line.506"></a>
+<span class="sourceLineNo">507</span><a name="line.507"></a>
+<span class="sourceLineNo">508</span>   private static boolean isInnerClass(GenericDeclaration od, GenericDeclaration id) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>      if (od instanceof Class &amp;&amp; id instanceof Class) {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>         Class&lt;?&gt; oc = (Class&lt;?&gt;)od;<a name="line.510"></a>
+<span class="sourceLineNo">511</span>         Class&lt;?&gt; ic = (Class&lt;?&gt;)id;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>         while ((ic = ic.getEnclosingClass()) != null)<a name="line.512"></a>
+<span class="sourceLineNo">513</span>            if (ic == oc)<a name="line.513"></a>
+<span class="sourceLineNo">514</span>               return true;<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
+<span class="sourceLineNo">516</span>      return false;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>   }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>   private static void extractTypes(Map&lt;Type,Type&gt; typeMap, Class&lt;?&gt; c) {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      Type gs = c.getGenericSuperclass();<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      if (gs instanceof ParameterizedType) {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         ParameterizedType pt = (ParameterizedType)gs;<a name="line.522"></a>
+<span class="sourceLineNo">523</span>         Type[] typeParameters = ((Class&lt;?&gt;)pt.getRawType()).getTypeParameters();<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         Type[] actualTypeArguments = pt.getActualTypeArguments();<a name="line.524"></a>
+<span class="sourceLineNo">525</span>         for (int i = 0; i &lt; typeParameters.length; i++) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>            if (typeMap.containsKey(actualTypeArguments[i]))<a name="line.526"></a>
+<span class="sourceLineNo">527</span>               actualTypeArguments[i] = typeMap.get(actualTypeArguments[i]);<a name="line.527"></a>
+<span class="sourceLineNo">528</span>            typeMap.put(typeParameters[i], actualTypeArguments[i]);<a name="line.528"></a>
+<span class="sourceLineNo">529</span>         }<a name="line.529"></a>
+<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
+<span class="sourceLineNo">531</span>   }<a name="line.531"></a>
+<span class="sourceLineNo">532</span><a name="line.532"></a>
+<span class="sourceLineNo">533</span>   /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>    * Finds a public method with the specified parameters.<a name="line.534"></a>
+<span class="sourceLineNo">535</span>    *<a name="line.535"></a>
+<span class="sourceLineNo">536</span>    * @param c The class to look for the method.<a name="line.536"></a>
+<span class="sourceLineNo">537</span>    * @param name The method name.<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    * @param returnType<a name="line.538"></a>
+<span class="sourceLineNo">539</span>    *    The return type of the method.<a name="line.539"></a>
+<span class="sourceLineNo">540</span>    *    Can be a super type of the actual return type.<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    *    For example, if the actual return type is &lt;code&gt;CharSequence&lt;/code&gt;, then &lt;code&gt;Object&lt;/code&gt; will match but<a name="line.541"></a>
+<span class="sourceLineNo">542</span>    *    &lt;code&gt;String&lt;/code&gt; will not.<a name="line.542"></a>
+<span class="sourceLineNo">543</span>    * @param parameterTypes<a name="line.543"></a>
+<span class="sourceLineNo">544</span>    *    The parameter types of the method.<a name="line.544"></a>
+<span class="sourceLineNo">545</span>    *    Can be subtypes of the actual parameter types.<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    *    For example, if the parameter type is &lt;code&gt;CharSequence&lt;/code&gt;, then &lt;code&gt;String&lt;/code&gt; will match but<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    *    &lt;code&gt;Object&lt;/code&gt; will not.<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    * @return The matched method, or &lt;jk&gt;null&lt;/jk&gt; if no match was found.<a name="line.548"></a>
+<span class="sourceLineNo">549</span>    */<a name="line.549"></a>
+<span class="sourceLineNo">550</span>   public static Method findPublicMethod(Class&lt;?&gt; c, String name, Class&lt;?&gt; returnType, Class&lt;?&gt;...parameterTypes) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>      for (Method m : c.getMethods()) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         if (isPublic(m) &amp;&amp; m.getName().equals(name)) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>            Class&lt;?&gt; rt = m.getReturnType();<a name="line.553"></a>
+<span class="sourceLineNo">554</span>            if (isParentClass(returnType, rt)) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>               Class&lt;?&gt;[] pt = m.getParameterTypes();<a name="line.555"></a>
+<span class="sourceLineNo">556</span>               if (pt.length == parameterTypes.length) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                  boolean matches = true;<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                  for (int i = 0; i &lt; pt.length; i++) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                     if (! isParentClass(pt[i], parameterTypes[i])) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        matches = false;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                        break;<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                     }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                  }<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                  if (matches)<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                     return m;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>               }<a name="line.566"></a>
+<span class="sourceLineNo">567</span>            }<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         }<a name="line.568"></a>
+<span class="sourceLineNo">569</span>      }<a name="line.569"></a>
+<span class="sourceLineNo">570</span>      return null;<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>   /**<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    * Finds a public constructor with the specified parameters without throwing an exception.<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    *<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    * @param c The class to search for a constructor.<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    * @param parameterTypes<a name="line.577"></a>
+<span class="sourceLineNo">578</span>    *    The parameter types in the constructor.<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    *    Can be subtypes of the actual constructor argument types.<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    * @return The matching constructor, or &lt;jk&gt;null&lt;/jk&gt; if constructor could not be found.<a name="line.580"></a>
+<span class="sourceLineNo">581</span>    */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>   @SuppressWarnings("unchecked")<a name="line.582"></a>
+<span class="sourceLineNo">583</span>   public static &lt;T&gt; Constructor&lt;T&gt; findPublicConstructor(Class&lt;T&gt; c, Class&lt;?&gt;...parameterTypes) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>      for (Constructor&lt;?&gt; n : c.getConstructors()) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         if (isPublic(n)) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>            Class&lt;?&gt;[] pt = n.getParameterTypes();<a name="line.586"></a>
+<span class="sourceLineNo">587</span>            if (pt.length == parameterTypes.length) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>               boolean matches = true;<a name="line.588"></a>
+<span class="sourceLineNo">589</span>               for (int i = 0; i &lt; pt.length; i++) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                  if (! isParentClass(pt[i], parameterTypes[i])) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                     matches = false;<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                     break;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                  }<a name="line.593"></a>
+<span class="sourceLineNo">594</span>               }<a name="line.594"></a>
+<span class="sourceLineNo">595</span>               if (matches)<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                  return (Constructor&lt;T&gt;)n;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>            }<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>      }<a name="line.599"></a>
+<span class="sourceLineNo">600</span>      return null;<a name="line.600"></a>
+<span class="sourceLineNo">601</span>   }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>   /**<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    * Finds the public constructor that can take in the specified arguments.<a name="line.604"></a>
+<span class="sourceLineNo">605</span>    *<a name="line.605"></a>
+<span class="sourceLineNo">606</span>    * @param c The class we're trying to construct.<a name="line.606"></a>
+<span class="sourceLineNo">607</span>    * @param args The arguments we want to pass into the constructor.<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    * @return<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    *    The constructor, or &lt;jk&gt;null&lt;/jk&gt; if a public constructor could not be found that takes in the specified<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    *    arguments.<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    */<a name="line.611"></a>
+<span class="sourceLineNo">612</span>   public static &lt;T&gt; Constructor&lt;T&gt; findPublicConstructor(Class&lt;T&gt; c, Object...args) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>      return findPublicConstructor(c, getClasses(args));<a name="line.613"></a>
+<span class="sourceLineNo">614</span>   }<a name="line.614"></a>
+<span class="sourceLineNo">615</span><a name="line.615"></a>
+<span class="sourceLineNo">616</span>   /**<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    * Returns the class types for the specified arguments.<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    *<a name="line.618"></a>
+<span class="sourceLineNo">619</span>    * @param args The objects we're getting the classes of.<a name="line.619"></a>
+<span class="sourceLineNo">620</span>    * @return The classes of the arguments.<a name="line.620"></a>
+<span class="sourceLineNo">621</span>    */<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   public static Class&lt;?&gt;[] getClasses(Object...args) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>      Class&lt;?&gt;[] pt = new Class&lt;?&gt;[args.length];<a name="line.623"></a>
+<span class="sourceLineNo">624</span>      for (int i = 0; i &lt; args.length; i++)<a name="line.624"></a>
+<span class="sourceLineNo">625</span>         pt[i] = args[i] == null ? null : args[i].getClass();<a name="line.625"></a>
+<span class="sourceLineNo">626</span>      return pt;<a name="line.626"></a>
+<span class="sourceLineNo">627</span>   }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>// This code is inherently unsafe (but still potentially useful?)<a name="line.629"></a>
+<span class="sourceLineNo">630</span>//<a name="line.630"></a>
+<span class="sourceLineNo">631</span>// /**<a name="line.631"></a>
+<span class="sourceLineNo">632</span>//  * Converts class name strings to ClassMeta objects.<a name="line.632"></a>
+<span class="sourceLineNo">633</span>//  *<a name="line.633"></a>
+<span class="sourceLineNo">634</span>//  * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.634"></a>
+<span class="sourceLineNo">635</span>//  * &lt;ul&gt;<a name="line.635"></a>
+<span class="sourceLineNo">636</span>//  *    &lt;li&gt;&lt;js&gt;"java.lang.String"&lt;/js&gt;<a name="line.636"></a>
+<span class="sourceLineNo">637</span>//  *    &lt;li&gt;&lt;js&gt;"com.foo.sample.MyBean[]"&lt;/js&gt;<a name="line.637"></a>
+<span class="sourceLineNo">638</span>//  *    &lt;li&gt;&lt;js&gt;"java.util.HashMap&lt;java.lang.String,java.lang.Integer&gt;"&lt;/js&gt;<a name="line.638"></a>
+<span class="sourceLineNo">639</span>//  *    &lt;li&gt;&lt;js&gt;"[Ljava.lang.String;"&lt;/js&gt; (i.e. the value of &lt;code&gt;String[].&lt;jk&gt;class&lt;/jk&gt;.getName()&lt;/code&gt;)<a name="line.639"></a>
+<span class="sourceLineNo">640</span>//  * &lt;/ul&gt;<a name="line.640"></a>
+<span class="sourceLineNo">641</span>//  *<a name="line.641"></a>
+<span class="sourceLineNo">642</span>//  * @param s The class name.<a name="line.642"></a>
+<span class="sourceLineNo">643</span>//  * @return The ClassMeta corresponding to the class name string.<a name="line.643"></a>
+<span class="sourceLineNo">644</span>//  */<a name="line.644"></a>
+<span class="sourceLineNo">645</span>// protected final ClassMeta&lt;?&gt; getClassMetaFromString(String s) {<a name="line.645"></a>
+<span class="sourceLineNo">646</span>//    int d = 0;<a name="line.646"></a>
+<span class="sourceLineNo">647</span>//    if (s == null || s.isEmpty())<a name="line.647"></a>
+<span class="sourceLineNo">648</span>//       return null;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>//<a name="line.649"></a>
+<span class="sourceLineNo">650</span>//    // Check for Class.getName() on array class types.<a name="line.650"></a>
+<span class="sourceLineNo">651</span>//    if (s.charAt(0) == '[') {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>//       try {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>//          return getClassMeta(findClass(s));<a name="line.653"></a>
+<span class="sourceLineNo">654</span>//       } catch (ClassNotFoundException e) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>//          throw new RuntimeException(e);<a name="line.655"></a>
+<span class="sourceLineNo">656</span>//       }<a name="line.656"></a>
+<span class="sourceLineNo">657</span>//    }<a name="line.657"></a>
+<span class="sourceLineNo">658</span>//<a name="line.658"></a>
+<span class="sourceLineNo">659</span>//    int i1 = 0;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>//    int i2 = 0;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>//    int dim = 0;<a name="line.661"></a>
+<span class="sourceLineNo">662</span>//    List&lt;ClassMeta&lt;?&gt;&gt; p = null;<a name="line.662"></a>
+<span class="sourceLineNo">663</span>//    for (int i = 0; i &lt; s.length(); i++) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>//       char c = s.charAt(i);<a name="line.664"></a>
+<span class="sourceLineNo">665</span>//       if (c == '&lt;') {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>//          if (d == 0) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>//             i1 = i;<a name="line.667"></a>
+<span class="sourceLineNo">668</span>//             i2 = i+1;<a name="line.668"></a>
+<span class="sourceLineNo">669</span>//             p = new LinkedList&lt;ClassMeta&lt;?&gt;&gt;();<a name="line.669"></a>
+<span class="sourceLineNo">670</span>//          }<a name="line.670"></a>
+<span class="sourceLineNo">671</span>//          d++;<a name="line.671"></a>
+<span class="sourceLineNo">672</span>//       } else if (c == '&gt;') {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>//          d--;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>//          if (d == 0 &amp;&amp; p != null)<a name="line.674"></a>
+<span class="sourceLineNo">675</span>//             p.add(getClassMetaFromString(s.substring(i2, i)));<a name="line.675"></a>
+<span class="sourceLineNo">676</span>//       } else if (c == ',' &amp;&amp; d == 1) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>//          if (p != null)<a name="line.677"></a>
+<span class="sourceLineNo">678</span>//             p.add(getClassMetaFromString(s.substring(i2, i)));<a name="line.678"></a>
+<span class="sourceLineNo">679</span>//          i2 = i+1;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>//       }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>//       if (c == '[') {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>//          if (i1 == 0)<a name="line.682"></a>
+<span class="sourceLineNo">683</span>//             i1 = i;<a name="line.683"></a>
+<span class="sourceLineNo">684</span>//          dim++;<a name="line.684"></a>
+<span class="sourceLineNo">685</span>//       }<a name="line.685"></a>
+<span class="sourceLineNo">686</span>//    }<a name="line.686"></a>
+<span class="sourceLineNo">687</span>//    if (i1 == 0)<a name="line.687"></a>
+<span class="sourceLineNo">688</span>//       i1 = s.length();<a name="line.688"></a>
+<span class="sourceLineNo">689</span>//    try {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>//       String name = s.substring(0, i1).trim();<a name="line.690"></a>
+<span class="sourceLineNo">691</span>//       char x = name.charAt(0);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>//       Class&lt;?&gt; c = null;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>//       if (x &gt;= 'b' &amp;&amp; x &lt;= 's') {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>//          if (x == 'b' &amp;&amp; name.equals("boolean"))<a name="line.694"></a>
+<span class="sourceLineNo">695</span>//             c = boolean.class;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>//          else if (x == 'b' &amp;&amp; name.equals("byte"))<a name="line.696"></a>
+<span class="sourceLineNo">697</span>//             c = byte.class;<a name="line.697"></a>
+<span class="sourceLineNo">698</span>//          else if (x == 'c' &amp;&amp; name.equals("char"))<a name="line.698"></a>
+<span class="sourceLineNo">699</span>//             c = char.class;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>//          else if (x == 'd' &amp;&amp; name.equals("double"))<a name="line.700"></a>
+<span class="sourceLineNo">701</span>//             c = double.class;<a name="line.701"></a>
+<span class="sourceLineNo">702</span>//          else if (x == 'i' &amp;&amp; name.equals("int"))<a name="line.702"></a>
+<span class="sourceLineNo">703</span>//             c = int.class;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>//          else if (x == 'l' &amp;&amp; name.equals("long"))<a name="line.704"></a>
+<span class="sourceLineNo">705</span>//             c = long.class;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>//          else if (x == 's' &amp;&amp; name.equals("short"))<a name="line.706"></a>
+<span class="sourceLineNo">707</span>//             c = short.class;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>//          else<a name="line.708"></a>
+<span class="sourceLineNo">709</span>//             c = findClass(name);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>//       } else {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>//          c = findClass(name);<a name="line.711"></a>
+<span class="sourceLineNo">712</span>//       }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>//<a name="line.713"></a>
+<span class="sourceLineNo">714</span>//       ClassMeta&lt;?&gt; cm = getClassMeta(c);<a name="line.714"></a>
+<span class="sourceLineNo">715</span>//<a name="line.715"></a>
+<span class="sourceLineNo">716</span>//       if (p != null) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>//          if (cm.isMap())<a name="line.717"></a>
+<span class="sourceLineNo">718</span>//             cm = new ClassMeta(c, this).setKeyType(p.get(0)).setValueType(p.get(1));<a name="line.718"></a>
+<span class="sourceLineNo">719</span>//          if (cm.isCollection())<a name="line.719"></a>
+<span class="sourceLineNo">720</span>//             cm = new ClassMeta(c, this).setElementType(p.get(0));<a name="line.720"></a>
+<span class="sourceLineNo">721</span>//       }<a name="line.721"></a>
+<span class="sourceLineNo">722</span>//<a name="line.722"></a>
+<span class="sourceLineNo">723</span>//       while (dim &gt; 0) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>//          cm = new ClassMeta(Array.newInstance(cm.getInnerClass(), 0).getClass(), this);<a name="line.724"></a>
+<span class="sourceLineNo">725</span>//          dim--;<a name="line.725"></a>
+<span class="sourceLineNo">726</span>//       }<a name="line.726"></a>
 <span class="sourceLineNo">727</span>//<a name="line.727"></a>
-<span class="sourceLineNo">728</span>// private Class&lt;?&gt; findClass(String name) throws ClassNotFoundException {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>//    return classLoader == null ? Class.forName(name) : Class.forName(name, true, classLoader);<a name="line.729"></a>
-<span class="sourceLineNo">730</span>// }<a name="line.730"></a>
-<span class="sourceLineNo">731</span><a name="line.731"></a>
-<span class="sourceLineNo">732</span>   /**<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    * Returns a {@link MethodInfo} bean that describes the specified method.<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    *<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    * @param m The method to describe.<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    * @return The bean with information about the method.<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    */<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   public static MethodInfo getMethodInfo(Method m) {<a name="line.738"></a>
-<span class="sourceLineNo">739</span>      return new MethodInfo(m);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>   }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>   /**<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    * Returns {@link MethodInfo} beans that describe the specified methods.<a name="line.743"></a>
-<span class="sourceLineNo">744</span>    *<a name="line.744"></a>
-<span class="sourceLineNo">745</span>    * @param m The methods to describe.<a name="line.745"></a>
-<span class="sourceLineNo">746</span>    * @return The beans with information about the methods.<a name="line.746"></a>
-<span class="sourceLineNo">747</span>    */<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   public static MethodInfo[] getMethodInfo(Collection&lt;Method&gt; m) {<a name="line.748"></a>
-<span class="sourceLineNo">749</span>      MethodInfo[] mi = new MethodInfo[m.size()];<a name="line.749"></a>
-<span class="sourceLineNo">750</span>      int i = 0;<a name="line.750"></a>
-<span class="sourceLineNo">751</span>      for (Method mm : m)<a name="line.751"></a>
-<span class="sourceLineNo">752</span>         mi[i++] = getMethodInfo(mm);<a name="line.752"></a>
-<span class="sourceLineNo">753</span>      return mi;<a name="line.753"></a>
-<span class="sourceLineNo">754</span>   }<a name="line.754"></a>
-<span class="sourceLineNo">755</span><a name="line.755"></a>
-<span class="sourceLineNo">756</span>   /**<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    * Simple bean that shows the name, parameter types, and return type of a method.<a name="line.757"></a>
-<span class="sourceLineNo">758</span>    */<a name="line.758"></a>
-<span class="sourceLineNo">759</span>   @SuppressWarnings("javadoc")<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   public static class MethodInfo {<a name="line.760"></a>
-<span class="sourceLineNo">761</span>      public final String methodName;<a name="line.761"></a>
-<span class="sourceLineNo">762</span>      public final String[] parameterTypes;<a name="line.762"></a>
-<span class="sourceLineNo">763</span>      public final String returnType;<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>      MethodInfo(Method m) {<a name="line.765"></a>
-<span class="sourceLineNo">766</span>         methodName = m.getName();<a name="line.766"></a>
-<span class="sourceLineNo">767</span>         Type[] pt = m.getGenericParameterTypes();<a name="line.767"></a>
-<span class="sourceLineNo">768</span>         parameterTypes = new String[pt.length];<a name="line.768"></a>
-<span class="sourceLineNo">769</span>         for (int i  = 0; i &lt; pt.length; i++)<a name="line.769"></a>
-<span class="sourceLineNo">770</span>            parameterTypes[i] = BeanContext.DEFAULT.getClassMeta(pt[i]).toString();<a name="line.770"></a>
-<span class="sourceLineNo">771</span>         returnType = BeanContext.DEFAULT.getClassMeta(m.getGenericReturnType()).toString();<a name="line.771"></a>
-<span class="sourceLineNo">772</span>      }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>   }<a name="line.773"></a>
-<span class="sourceLineNo">774</span><a name="line.774"></a>
-<span class="sourceLineNo">775</span>   /**<a name="line.775"></a>
-<span class="sourceLineNo">776</span>    * Creates an instance of the specified class without throwing exceptions.<a name="line.776"></a>
-<span class="sourceLineNo">777</span>    *<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    * @param c The class to cast to.<a name="line.778"></a>
-<span class="sourceLineNo">779</span>    * @param c2<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    *    The class to instantiate.<a name="line.780"></a>
-<span class="sourceLineNo">781</span>    *    Can also be an instance of the class.<a name="line.781"></a>
-<span class="sourceLineNo">782</span>    * @param args The arguments to pass to the constructor.<a name="line.782"></a>
-<span class="sourceLineNo">783</span>    * @return The new class instance, or &lt;jk&gt;null&lt;/jk&gt; if the class was &lt;jk&gt;null&lt;/jk&gt; or is abstract or an interface.<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    * @throws RuntimeException if constructor could not be found or called.<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    */<a name="line.785"></a>
-<span class="sourceLineNo">786</span>   public static &lt;T&gt; T newInstance(Class&lt;T&gt; c, Object c2, Object...args) {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>      return newInstanceFromOuter(null, c, c2, args);<a name="line.787"></a>
-<span class="sourceLineNo">788</span>   }<a name="line.788"></a>
-<span class="sourceLineNo">789</span><a name="line.789"></a>
-<span class="sourceLineNo">790</span>   /**<a name="line.790"></a>
-<span class="sourceLineNo">791</span>    * Creates an instance of the specified class from within the context of another object.<a name="line.791"></a>
-<span class="sourceLineNo">792</span>    *<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    * @param outer<a name="line.793"></a>
-<span class="sourceLineNo">794</span>    *    The outer object.<a name="line.794"></a>
-<span class="sourceLineNo">795</span>    *    Can be &lt;jk&gt;null&lt;/jk&gt;.<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    * @param c The class to cast to.<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    * @param c2<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    *    The class to instantiate.<a name="line.798"></a>
-<span class="sourceLineNo">799</span>    *    Can also be an instance of the class.<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    * @param args The arguments to pass to the constructor.<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    * @return The new class instance, or &lt;jk&gt;null&lt;/jk&gt; if the class was &lt;jk&gt;null&lt;/jk&gt; or is abstract or an interface.<a name="line.801"></a>
-<span class="sourceLineNo">802</span>    * @throws RuntimeException if constructor could not be found or called.<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    */<a name="line.803"></a>
-<span class="sourceLineNo">804</span>   @SuppressWarnings("unchecked")<a name="line.804"></a>
-<span class="sourceLineNo">805</span>   public static &lt;T&gt; T newInstanceFromOuter(Object outer, Class&lt;T&gt; c, Object c2, Object...args) {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>      if (c2 == null)<a name="line.806"></a>
-<span class="sourceLineNo">807</span>         return null;<a name="line.807"></a>
-<span class="sourceLineNo">808</span>      if (c2 instanceof Class) {<a name="line.808"></a>
-<span class="sourceLineNo">809</span>         try {<a name="line.809"></a>
-<span class="sourceLineNo">810</span>            Class&lt;?&gt; c3 = (Class&lt;?&gt;)c2;<a name="line.810"></a>
-<span class="sourceLineNo">811</span>            if (c3.isInterface() || isAbstract(c3))<a name="line.811"></a>
-<span class="sourceLineNo">812</span>               return null;<a name="line.812"></a>
-<span class="sourceLineNo">813</span>            Constructor&lt;?&gt; con = findPublicConstructor(c3, args);<a name="line.813"></a>
-<span class="sourceLineNo">814</span>            if (con != null)<a name="line.814"></a>
-<span class="sourceLineNo">815</span>               return (T)con.newInstance(args);<a name="line.815"></a>
-<span class="sourceLineNo">816</span>            if (outer != null) {<a name="line.816"></a>
-<span class="sourceLineNo">817</span>               Object[] args2 = new AList&lt;Object&gt;().append(outer).appendAll(args).toArray();<a name="line.817"></a>
-<span class="sourceLineNo">818</span>               con = findPublicConstructor(c3, args2);<a name="line.818"></a>
-<span class="sourceLineNo">819</span>               if (con != null)<a name="line.819"></a>
-<span class="sourceLineNo">820</span>                  return (T)con.newInstance(args2);<a name="line.820"></a>
-<span class="sourceLineNo">821</span>            }<a name="line.821"></a>
-<span class="sourceLineNo">822</span>            return (T)c3.getConstructor(getClasses(args)).newInstance(args);<a name="line.822"></a>
-<span class="sourceLineNo">823</span>         } catch (Exception e) {<a name="line.823"></a>
-<span class="sourceLineNo">824</span>            throw new FormattedRuntimeException(e, "Could not instantiate class {0}", c.getName());<a name="line.824"></a>
-<span class="sourceLineNo">825</span>         }<a name="line.825"></a>
-<span class="sourceLineNo">826</span>      } else if (isParentClass(c, c2.getClass())) {<a name="line.826"></a>
-<span class="sourceLineNo">827</span>         return (T)c2;<a name="line.827"></a>
-<span class="sourceLineNo">828</span>      } else {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>         throw new FormattedRuntimeException("Object of type {0} found but was expecting {1}.", c2.getClass(), c.getClass());<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      }<a name="line.830"></a>
-<span class="sourceLineNo">831</span>   }<a name="line.831"></a>
-<span class="sourceLineNo">832</span><a name="line.832"></a>
-<span class="sourceLineNo">833</span>   /**<a name="line.833"></a>
-<span class="sourceLineNo">834</span>    * Returns all the fields in the specified class and all parent classes.<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    *<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    * &lt;p&gt;<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    * Fields are ordered in either parent-to-child, or child-to-parent order, then alphabetically.<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    *<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    * @param c The class to get all fields on.<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    * @param parentFirst Order them in parent-class-to-child-class order, otherwise child-class-to-parent-class order.<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    * @return An iterable of all fields in the specified class.<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    */<a name="line.842"></a>
-<span class="sourceLineNo">843</span>   @SuppressWarnings("rawtypes")<a name="line.843"></a>
-<span class="sourceLineNo">844</span>   public static Iterable&lt;Field&gt; getAllFields(final Class c, final boolean parentFirst) {<a name="line.844"></a>
-<span class="sourceLineNo">845</span>      return new Iterable&lt;Field&gt;() {<a name="line.845"></a>
-<span class="sourceLineNo">846</span>         @Override<a name="line.846"></a>
-<span class="sourceLineNo">847</span>         public Iterator&lt;Field&gt; iterator() {<a name="line.847"></a>
-<span class="sourceLineNo">848</span>            return new Iterator&lt;Field&gt;(){<a name="line.848"></a>
-<span class="sourceLineNo">849</span>               final Iterator&lt;Class&lt;?&gt;&gt; classIterator = getParentClasses(c, parentFirst, false);<a name="line.849"></a>
-<span class="sourceLineNo">850</span>               Field[] fields = classIterator.hasNext() ? sort(classIterator.next().getDeclaredFields()) : new Field[0];<a name="line.850"></a>
-<span class="sourceLineNo">851</span>               int fIndex = 0;<a name="line.851"></a>
-<span class="sourceLineNo">852</span>               Field next;<a name="line.852"></a>
-<span class="sourceLineNo">853</span><a name="line.853"></a>
-<span class="sourceLineNo">854</span>               @Override<a name="line.854"></a>
-<span class="sourceLineNo">855</span>               public boolean hasNext() {<a name="line.855"></a>
-<span class="sourceLineNo">856</span>                  prime();<a name="line.856"></a>
-<span class="sourceLineNo">857</span>                  return next != null;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>               }<a name="line.858"></a>
+<span class="sourceLineNo">728</span>//       return cm;<a name="line.728"></a>
+<span class="sourceLineNo">729</span>//    } catch (ClassNotFoundException e) {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>//       throw new RuntimeException(e);<a name="line.730"></a>
+<span class="sourceLineNo">731</span>//    }<a name="line.731"></a>
+<span class="sourceLineNo">732</span>// }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>//<a name="line.733"></a>
+<span class="sourceLineNo">734</span>// private Class&lt;?&gt; findClass(String name) throws ClassNotFoundException {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>//    return classLoader == null ? Class.forName(name) : Class.forName(name, true, classLoader);<a name="line.735"></a>
+<span class="sourceLineNo">736</span>// }<a name="line.736"></a>
+<span class="sourceLineNo">737</span><a name="line.737"></a>
+<span class="sourceLineNo">738</span>   /**<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    * Returns a {@link MethodInfo} bean that describes the specified method.<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    *<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    * @param m The method to describe.<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    * @return The bean with information about the method.<a name="line.742"></a>
+<span class="sourceLineNo">743</span>    */<a name="line.743"></a>
+<span class="sourceLineNo">744</span>   public static MethodInfo getMethodInfo(Method m) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>      return new MethodInfo(m);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>   }<a name="line.746"></a>
+<span class="sourceLineNo">747</span><a name="line.747"></a>
+<span class="sourceLineNo">748</span>   /**<a name="line.748"></a>
+<span class="sourceLineNo">749</span>    * Returns {@link MethodInfo} beans that describe the specified methods.<a name="line.749"></a>
+<span class="sourceLineNo">750</span>    *<a name="line.750"></a>
+<span class="sourceLineNo">751</span>    * @param m The methods to describe.<a name="line.751"></a>
+<span class="sourceLineNo">752</span>    * @return The beans with information about the methods.<a name="line.752"></a>
+<span class="sourceLineNo">753</span>    */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>   public static MethodInfo[] getMethodInfo(Collection&lt;Method&gt; m) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>      MethodInfo[] mi = new MethodInfo[m.size()];<a name="line.755"></a>
+<span class="sourceLineNo">756</span>      int i = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>      for (Method mm : m)<a name="line.757"></a>
+<span class="sourceLineNo">758</span>         mi[i++] = getMethodInfo(mm);<a name="line.758"></a>
+<span class="sourceLineNo">759</span>      return mi;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>   }<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>   /**<a name="line.762"></a>
+<span class="sourceLineNo">763</span>    * Simple bean that shows the name, parameter types, and return type of a method.<a name="line.763"></a>
+<span class="sourceLineNo">764</span>    */<a name="line.764"></a>
+<span class="sourceLineNo">765</span>   @SuppressWarnings("javadoc")<a name="line.765"></a>
+<span class="sourceLineNo">766</span>   public static class MethodInfo {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>      public final String methodName;<a name="line.767"></a>
+<span class="sourceLineNo">768</span>      public final String[] parameterTypes;<a name="line.768"></a>
+<span class="sourceLineNo">769</span>      public final String returnType;<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>      MethodInfo(Method m) {<a name="line.771"></a>
+<span class="sourceLineNo">772</span>         methodName = m.getName();<a name="line.772"></a>
+<span class="sourceLineNo">773</span>         Type[] pt = m.getGenericParameterTypes();<a name="line.773"></a>
+<span class="sourceLineNo">774</span>         parameterTypes = new String[pt.length];<a name="line.774"></a>
+<span class="sourceLineNo">775</span>         for (int i  = 0; i &lt; pt.length; i++)<a name="line.775"></a>
+<span class="sourceLineNo">776</span>            parameterTypes[i] = BeanContext.DEFAULT.getClassMeta(pt[i]).toString();<a name="line.776"></a>
+<span class="sourceLineNo">777</span>         returnType = BeanContext.DEFAULT.getClassMeta(m.getGenericReturnType()).toString();<a name="line.777"></a>
+<span class="sourceLineNo">778</span>      }<a name="line.778"></a>
+<span class="sourceLineNo">779</span>   }<a name="line.779"></a>
+<span class="sourceLineNo">780</span><a name="line.780"></a>
+<span class="sourceLineNo">781</span>   /**<a name="line.781"></a>
+<span class="sourceLineNo">782</span>    * Creates an instance of the specified class without throwing exceptions.<a name="line.782"></a>
+<span class="sourceLineNo">783</span>    *<a name="line.783"></a>
+<span class="sourceLineNo">784</span>    * @param c The class to cast to.<a name="line.784"></a>
+<span class="sourceLineNo">785</span>    * @param c2<a name="line.785"></a>
+<span class="sourceLineNo">786</span>    *    The class to instantiate.<a name="line.786"></a>
+<span class="sourceLineNo">787</span>    *    Can also be an instance of the class.<a name="line.787"></a>
+<span class="sourceLineNo">788</span>    * @param args The arguments to pass to the constructor.<a name="line.788"></a>
+<span class="sourceLineNo">789</span>    * @return The new class instance, or &lt;jk&gt;null&lt;/jk&gt; if the class was &lt;jk&gt;null&lt;/jk&gt; or is abstract or an interface.<a name="line.789"></a>
+<span class="sourceLineNo">790</span>    * @throws RuntimeException if constructor could not be found or called.<a name="line.790"></a>
+<span class="sourceLineNo">791</span>    */<a name="line.791"></a>
+<span class="sourceLineNo">792</span>   public static &lt;T&gt; T newInstance(Class&lt;T&gt; c, Object c2, Object...args) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>      return newInstanceFromOuter(null, c, c2, args);<a name="line.793"></a>
+<span class="sourceLineNo">794</span>   }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>   /**<a name="line.796"></a>
+<span class="sourceLineNo">797</span>    * Creates an instance of the specified class from within the context of another object.<a name="line.797"></a>
+<span class="sourceLineNo">798</span>    *<a name="line.798"></a>
+<span class="sourceLineNo">799</span>    * @param outer<a name="line.799"></a>
+<span class="sourceLineNo">800</span>    *    The outer object.<a name="line.800"></a>
+<span class="sourceLineNo">801</span>    *    Can be &lt;jk&gt;null&lt;/jk&gt;.<a name="line.801"></a>
+<span class="sourceLineNo">802</span>    * @param c The class to cast to.<a name="line.802"></a>
+<span class="sourceLineNo">803</span>    * @param c2<a name="line.803"></a>
+<span class="sourceLineNo">804</span>    *    The class to instantiate.<a name="line.804"></a>
+<span class="sourceLineNo">805</span>    *    Can also be an instance of the class.<a name="line.805"></a>
+<span class="sourceLineNo">806</span>    * @param args The arguments to pass to the constructor.<a name="line.806"></a>
+<span class="sourceLineNo">807</span>    * @return The new class instance, or &lt;jk&gt;null&lt;/jk&gt; if the class was &lt;jk&gt;null&lt;/jk&gt; or is abstract or an interface.<a name="line.807"></a>
+<span class="sourceLineNo">808</span>    * @throws RuntimeException if constructor could not be found or called.<a name="line.808"></a>
+<span class="sourceLineNo">809</span>    */<a name="line.809"></a>
+<span class="sourceLineNo">810</span>   @SuppressWarnings("unchecked")<a name="line.810"></a>
+<span class="sourceLineNo">811</span>   public static &lt;T&gt; T newInstanceFromOuter(Object outer, Class&lt;T&gt; c, Object c2, Object...args) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>      if (c2 == null)<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         return null;<a name="line.813"></a>
+<span class="sourceLineNo">814</span>      if (c2 instanceof Class) {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         try {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>            Class&lt;?&gt; c3 = (Class&lt;?&gt;)c2;<a name="line.816"></a>
+<span class="sourceLineNo">817</span>            if (c3.isInterface() || isAbstract(c3))<a name="line.817"></a>
+<span class="sourceLineNo">818</span>               return null;<a name="line.818"></a>
+<span class="sourceLineNo">819</span>            Constructor&lt;?&gt; con = findPublicConstructor(c3, args);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>            if (con != null)<a name="line.820"></a>
+<span class="sourceLineNo">821</span>               return (T)con.newInstance(args);<a name="line.821"></a>
+<span class="sourceLineNo">822</span>            if (outer != null) {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>               Object[] args2 = new AList&lt;Object&gt;().append(outer).appendAll(args).toArray();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>               con = findPublicConstructor(c3, args2);<a name="line.824"></a>
+<span class="sourceLineNo">825</span>               if (con != null)<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                  return (T)con.newInstance(args2);<a name="line.826"></a>
+<span class="sourceLineNo">827</span>            }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>            return (T)c3.getConstructor(getClasses(args)).newInstance(args);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>         } catch (Exception e) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>            throw new FormattedRuntimeException(e, "Could not instantiate class {0}", c.getName());<a name="line.830"></a>
+<span class="sourceLineNo">831</span>         }<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      } else if (isParentClass(c, c2.getClass())) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>         return (T)c2;<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      } else {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>         throw new FormattedRuntimeException("Object of type {0} found but was expecting {1}.", c2.getClass(), c.getClass());<a name="line.835"></a>
+<span class="sourceLineNo">836</span>      }<a name="line.836"></a>
+<span class="sourceLineNo">837</span>   }<a name="line.837"></a>
+<span class="sourceLineNo">838</span><a name="line.838"></a>
+<span class="sourceLineNo">839</span>   /**<a name="line.839"></a>
+<span class="sourceLineNo">840</span>    * Returns all the fields in the specified class and all parent classes.<a name="line.840"></a>
+<span class="sourceLineNo">841</span>    *<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    * &lt;p&gt;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    * Fields are ordered in either parent-to-child, or child-to-parent order, then alphabetically.<a name="line.843"></a>
+<span class="sourceLineNo">844</span>    *<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    * @param c The class to get all fields on.<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    * @param parentFirst Order them in parent-class-to-child-class order, otherwise child-class-to-parent-class order.<a name="line.846"></a>
+<span class="sourceLineNo">847</span>    * @return An iterable of all fields in the specified class.<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    */<a name="line.848"></a>
+<span class="sourceLineNo">849</span>   @SuppressWarnings("rawtypes")<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   public static Iterable&lt;Field&gt; getAllFields(final Class c, final boolean parentFirst) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>      return new Iterable&lt;Field&gt;() {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>         @Override<a name="line.852"></a>
+<span class="sourceLineNo">853</span>         public Iterator&lt;Field&gt; iterator() {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>            return new Iterator&lt;Field&gt;(){<a name="line.854"></a>
+<span class="sourceLineNo">855</span>               final Iterator&lt;Class&lt;?&gt;&gt; classIterator = getParentClasses(c, parentFirst, false);<a name="line.855"></a>
+<span class="sourceLineNo">856</span>               Field[] fields = classIterator.hasNext() ? sort(classIterator.next().getDeclaredFields()) : new Field[0];<a name="line.856"></a>
+<span class="sourceLineNo">857</span>               int fIndex = 0;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>               Field next;<a name="line.858"></a>
 <span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>               private void prime() {<a name="line.860"></a>
-<span class="sourceLineNo">861</span>                  if (next == null) {<a name="line.861"></a>
-<span class="sourceLineNo">862</span>                     while (fIndex &gt;= fields.length) {<a name="line.862"></a>
-<span class="sourceLineNo">863</span>                        if (classIterator.hasNext()) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>                           fields = sort(classIterator.next().getDeclaredFields());<a name="line.864"></a>
-<span class="sourceLineNo">865</span>                           fIndex = 0;<a name="line.865"></a>
-<span class="sourceLineNo">866</span>                        } else {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>                           fIndex = -1;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>                        }<a name="line.868"></a>
-<span class="sourceLineNo">869</span>                     }<a name="line.869"></a>
-<span class="sourceLineNo">870</span>                     if (fIndex != -1)<a name="line.870"></a>
-<span class="sourceLineNo">871</span>                        next = fields[fIndex++];<a name="line.871"></a>
-<span class="sourceLineNo">872</span>                  }<a name="line.872"></a>
-<span class="sourceLineNo">873</span>               }<a name="line.873"></a>
-<span class="sourceLineNo">874</span><a name="line.874"></a>
-<span class="sourceLineNo">875</span>               @Override<a name="line.875"></a>
-<span class="sourceLineNo">876</span>               public Field next() {<a name="line.876"></a>
-<span class="sourceLineNo">877</span>                  prime();<a name="line.877"></a>
-<span class="sourceLineNo">878</span>                  Field f = next;<a name="line.878"></a>
-<span class="sourceLineNo">879</span>                  next = null;<a name="line.879"></a>
-<span class="sourceLineNo">880</span>                  return f;<a name="line.880"></a>
-<span class="sourceLineNo">881</span>               }<a name="line.881"></a>
-<span class="sourceLineNo">882</span><a name="line.882"></a>
-<span class="sourceLineNo">883</span>               @Override<a name="line.883"></a>
-<span class="sourceLineNo">884</span>               public void remove() {<a name="line.884"></a>
-<span class="sourceLineNo">885</span>               }<a name="line.885"></a>
-<span class="sourceLineNo">886</span>            };<a name="line.886"></a>
-<span class="sourceLineNo">887</span>         }<a name="line.887"></a>
-<span class="sourceLineNo">888</span>      };<a name="line.888"></a>
-<span class="sourceLineNo">889</span>   }<a name="line.889"></a>
-<span class="sourceLineNo">890</span><a name="line.890"></a>
-<span class="sourceLineNo">891</span>   /**<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    * Returns all the methods in the specified class and all parent classes.<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    *<a name="line.893"></a>
-<span class="sourceLineNo">894</span>    * &lt;p&gt;<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    * Methods are ordered in either parent-to-child, or child-to-parent order, then alphabetically.<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    *<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    * @param c The class to get all methods on.<a name="line.897"></a>
-<span class="sourceLineNo">898</span>    * @param parentFirst Order them in parent-class-to-child-class order, otherwise child-class-to-parent-class order.<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    * @return An iterable of all methods in the specified class.<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    */<a name="line.900"></a>
-<span class="sourceLineNo">901</span>   @SuppressWarnings("rawtypes")<a name="line.901"></a>
-<span class="sourceLineNo">902</span>   public static Iterable&lt;Method&gt; getAllMethods(final Class c, final boolean parentFirst) {<a name="line.902"></a>
-<span class="sourceLineNo">903</span>      return new Iterable&lt;Method&gt;() {<a name="line.903"></a>
-<span class="sourceLineNo">904</span>         @Override<a name="line.904"></a>
-<span class="sourceLineNo">905</span>         public Iterator&lt;Method&gt; iterator() {<a name="line.905"></a>
-<span class="sourceLineNo">906</span>            return new Iterator&lt;Method&gt;(){<a name="line.906"></a>
-<span class="sourceLineNo">907</span>               final Iterator&lt;Class&lt;?&gt;&gt; classIterator = getParentClasses(c, parentFirst, true);<a name="line.907"></a>
-<span class="sourceLineNo">908</span>               Method[] methods = classIterator.hasNext() ? sort(classIterator.next().getDeclaredMethods()) : new Method[0];<a name="line.908"></a>
-<span class="sourceLineNo">909</span>               int mIndex = 0;<a name="line.909"></a>
-<span class="sourceLineNo">910</span>               Method next;<a name="line.910"></a>
-<span class="sourceLineNo">911</span><a name="line.911"></a>
-<span class="sourceLineNo">912</span>               @Override<a name="line.912"></a>
-<span class="sourceLineNo">913</span>               public boolean hasNext() {<a name="line.913"></a>
-<span class="sourceLineNo">914</span>                  prime();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>                  return next != null;<a name="line.915"></a>
-<span class="sourceLineNo">916</span>               }<a name="line.916"></a>
+<span class="sourceLineNo">860</span>               @Override<a name="line.860"></a>
+<span class="sourceLineNo">861</span>               public boolean hasNext() {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                  prime();<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                  return next != null;<a name="line.863"></a>
+<span class="sourceLineNo">864</span>               }<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>               private void prime() {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                  if (next == null) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                     while (fIndex &gt;= fields.length) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                        if (classIterator.hasNext()) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                           fields = sort(classIterator.next().getDeclaredFields());<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                           fIndex = 0;<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        } else {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                           fIndex = -1;<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        }<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                     }<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                     if (fIndex != -1)<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                        next = fields[fIndex++];<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                  }<a name="line.878"></a>
+<span class="sourceLineNo">879</span>               }<a name="line.879"></a>
+<span class="sourceLineNo">880</span><a name="line.880"></a>
+<span class="sourceLineNo">881</span>               @Override<a name="line.881"></a>
+<span class="sourceLineNo">882</span>               public Field next() {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                  prime();<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                  Field f = next;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>     

<TRUNCATED>


[04/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/uon/UonSerializerSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/uon/UonSerializerSession.html b/content/site/apidocs/src-html/org/apache/juneau/uon/UonSerializerSession.html
index 1e05dec..15937e8 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/uon/UonSerializerSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/uon/UonSerializerSession.html
@@ -137,149 +137,150 @@
 <span class="sourceLineNo">129</span>         aType = object();<a name="line.129"></a>
 <span class="sourceLineNo">130</span>      }<a name="line.130"></a>
 <span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span>      sType = aType.getSerializedClassMeta();<a name="line.132"></a>
+<span class="sourceLineNo">132</span>      sType = aType;<a name="line.132"></a>
 <span class="sourceLineNo">133</span>      String typeName = getBeanTypeName(eType, aType, pMeta);<a name="line.133"></a>
 <span class="sourceLineNo">134</span><a name="line.134"></a>
 <span class="sourceLineNo">135</span>      // Swap if necessary<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      PojoSwap swap = aType.getPojoSwap();<a name="line.136"></a>
+<span class="sourceLineNo">136</span>      PojoSwap swap = aType.getPojoSwap(this);<a name="line.136"></a>
 <span class="sourceLineNo">137</span>      if (swap != null) {<a name="line.137"></a>
 <span class="sourceLineNo">138</span>         o = swap.swap(this, o);<a name="line.138"></a>
-<span class="sourceLineNo">139</span><a name="line.139"></a>
-<span class="sourceLineNo">140</span>         // If the getSwapClass() method returns Object, we need to figure out<a name="line.140"></a>
-<span class="sourceLineNo">141</span>         // the actual type now.<a name="line.141"></a>
-<span class="sourceLineNo">142</span>         if (sType.isObject())<a name="line.142"></a>
-<span class="sourceLineNo">143</span>            sType = getClassMetaForObject(o);<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      }<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>      // '\0' characters are considered null.<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      if (o == null || (sType.isChar() &amp;&amp; ((Character)o).charValue() == 0))<a name="line.147"></a>
-<span class="sourceLineNo">148</span>         out.appendObject(null, false);<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      else if (sType.isBoolean())<a name="line.149"></a>
-<span class="sourceLineNo">150</span>         out.appendBoolean(o);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      else if (sType.isNumber())<a name="line.151"></a>
-<span class="sourceLineNo">152</span>         out.appendNumber(o);<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      else if (sType.isBean())<a name="line.153"></a>
-<span class="sourceLineNo">154</span>         serializeBeanMap(out, toBeanMap(o), typeName);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      else if (sType.isUri() || (pMeta != null &amp;&amp; pMeta.isUri()))<a name="line.155"></a>
-<span class="sourceLineNo">156</span>         out.appendUri(o);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      else if (sType.isMap()) {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>         if (o instanceof BeanMap)<a name="line.158"></a>
-<span class="sourceLineNo">159</span>            serializeBeanMap(out, (BeanMap)o, typeName);<a name="line.159"></a>
-<span class="sourceLineNo">160</span>         else<a name="line.160"></a>
-<span class="sourceLineNo">161</span>            serializeMap(out, (Map)o, eType);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      else if (sType.isCollection()) {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>         serializeCollection(out, (Collection) o, eType);<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      }<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      else if (sType.isArray()) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>         serializeCollection(out, toList(sType.getInnerClass(), o), eType);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      }<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      else if (sType.isReader() || sType.isInputStream()) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>         IOUtils.pipe(o, out);<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      }<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      else {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>         out.appendObject(o, false);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>      }<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>      if (! isRecursion)<a name="line.176"></a>
-<span class="sourceLineNo">177</span>         pop();<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return out;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   }<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>   @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   private SerializerWriter serializeMap(UonWriter out, Map m, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.182"></a>
-<span class="sourceLineNo">183</span><a name="line.183"></a>
-<span class="sourceLineNo">184</span>      m = sort(m);<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>      ClassMeta&lt;?&gt; keyType = type.getKeyType(), valueType = type.getValueType();<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>      if (! plainTextParams)<a name="line.188"></a>
-<span class="sourceLineNo">189</span>         out.append('(');<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>      Iterator mapEntries = m.entrySet().iterator();<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>      while (mapEntries.hasNext()) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>         Map.Entry e = (Map.Entry) mapEntries.next();<a name="line.194"></a>
-<span class="sourceLineNo">195</span>         Object value = e.getValue();<a name="line.195"></a>
-<span class="sourceLineNo">196</span>         Object key = generalize(e.getKey(), keyType);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>         out.cr(indent).appendObject(key, false).append('=');<a name="line.197"></a>
-<span class="sourceLineNo">198</span>         serializeAnything(out, value, valueType, (key == null ? null : toString(key)), null);<a name="line.198"></a>
-<span class="sourceLineNo">199</span>         if (mapEntries.hasNext())<a name="line.199"></a>
-<span class="sourceLineNo">200</span>            out.append(',');<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      }<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>      if (m.size() &gt; 0)<a name="line.203"></a>
-<span class="sourceLineNo">204</span>         out.cre(indent-1);<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>      if (! plainTextParams)<a name="line.206"></a>
-<span class="sourceLineNo">207</span>         out.append(')');<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>      return out;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   }<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>   private SerializerWriter serializeBeanMap(UonWriter out, BeanMap&lt;?&gt; m, String typeName) throws Exception {<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>      if (! plainTextParams)<a name="line.214"></a>
-<span class="sourceLineNo">215</span>         out.append('(');<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>      boolean addComma = false;<a name="line.217"></a>
-<span class="sourceLineNo">218</span><a name="line.218"></a>
-<span class="sourceLineNo">219</span>      for (BeanPropertyValue p : m.getValues(isTrimNulls(), typeName != null ? createBeanTypeNameProperty(m, typeName) : null)) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>         BeanPropertyMeta pMeta = p.getMeta();<a name="line.220"></a>
-<span class="sourceLineNo">221</span>         ClassMeta&lt;?&gt; cMeta = p.getClassMeta();<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>         String key = p.getName();<a name="line.223"></a>
-<span class="sourceLineNo">224</span>         Object value = p.getValue();<a name="line.224"></a>
-<span class="sourceLineNo">225</span>         Throwable t = p.getThrown();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>         if (t != null)<a name="line.226"></a>
-<span class="sourceLineNo">227</span>            onBeanGetterException(pMeta, t);<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span>         if (canIgnoreValue(cMeta, key, value))<a name="line.229"></a>
-<span class="sourceLineNo">230</span>            continue;<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>         if (addComma)<a name="line.232"></a>
-<span class="sourceLineNo">233</span>            out.append(',');<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>         out.cr(indent).appendObject(key, false).append('=');<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span>         serializeAnything(out, value, cMeta, key, pMeta);<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>         addComma = true;<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      }<a name="line.240"></a>
-<span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>      if (m.size() &gt; 0)<a name="line.242"></a>
-<span class="sourceLineNo">243</span>         out.cre(indent-1);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      if (! plainTextParams)<a name="line.244"></a>
-<span class="sourceLineNo">245</span>         out.append(')');<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>      return out;<a name="line.247"></a>
-<span class="sourceLineNo">248</span>   }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>   @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   private SerializerWriter serializeCollection(UonWriter out, Collection c, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>      ClassMeta&lt;?&gt; elementType = type.getElementType();<a name="line.253"></a>
-<span class="sourceLineNo">254</span><a name="line.254"></a>
-<span class="sourceLineNo">255</span>      c = sort(c);<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      if (! plainTextParams)<a name="line.257"></a>
-<span class="sourceLineNo">258</span>         out.append('@').append('(');<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>      for (Iterator i = c.iterator(); i.hasNext();) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>         out.cr(indent);<a name="line.261"></a>
-<span class="sourceLineNo">262</span>         serializeAnything(out, i.next(), elementType, "&lt;iterator&gt;", null);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>         if (i.hasNext())<a name="line.263"></a>
-<span class="sourceLineNo">264</span>            out.append(',');<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      }<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>      if (c.size() &gt; 0)<a name="line.267"></a>
-<span class="sourceLineNo">268</span>         out.cre(indent-1);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      if (! plainTextParams)<a name="line.269"></a>
-<span class="sourceLineNo">270</span>         out.append(')');<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span>      return out;<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   }<a name="line.273"></a>
-<span class="sourceLineNo">274</span>}<a name="line.274"></a>
+<span class="sourceLineNo">139</span>         sType = swap.getSwapClassMeta(this);<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>         // If the getSwapClass() method returns Object, we need to figure out<a name="line.141"></a>
+<span class="sourceLineNo">142</span>         // the actual type now.<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         if (sType.isObject())<a name="line.143"></a>
+<span class="sourceLineNo">144</span>            sType = getClassMetaForObject(o);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>      // '\0' characters are considered null.<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      if (o == null || (sType.isChar() &amp;&amp; ((Character)o).charValue() == 0))<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         out.appendObject(null, false);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      else if (sType.isBoolean())<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         out.appendBoolean(o);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      else if (sType.isNumber())<a name="line.152"></a>
+<span class="sourceLineNo">153</span>         out.appendNumber(o);<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      else if (sType.isBean())<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         serializeBeanMap(out, toBeanMap(o), typeName);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      else if (sType.isUri() || (pMeta != null &amp;&amp; pMeta.isUri()))<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         out.appendUri(o);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      else if (sType.isMap()) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>         if (o instanceof BeanMap)<a name="line.159"></a>
+<span class="sourceLineNo">160</span>            serializeBeanMap(out, (BeanMap)o, typeName);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>         else<a name="line.161"></a>
+<span class="sourceLineNo">162</span>            serializeMap(out, (Map)o, eType);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      }<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      else if (sType.isCollection()) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         serializeCollection(out, (Collection) o, eType);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      else if (sType.isArray()) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         serializeCollection(out, toList(sType.getInnerClass(), o), eType);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      else if (sType.isReader() || sType.isInputStream()) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         IOUtils.pipe(o, out);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      }<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      else {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         out.appendObject(o, false);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>      if (! isRecursion)<a name="line.177"></a>
+<span class="sourceLineNo">178</span>         pop();<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      return out;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   }<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>   @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.182"></a>
+<span class="sourceLineNo">183</span>   private SerializerWriter serializeMap(UonWriter out, Map m, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>      m = sort(m);<a name="line.185"></a>
+<span class="sourceLineNo">186</span><a name="line.186"></a>
+<span class="sourceLineNo">187</span>      ClassMeta&lt;?&gt; keyType = type.getKeyType(), valueType = type.getValueType();<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>      if (! plainTextParams)<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         out.append('(');<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>      Iterator mapEntries = m.entrySet().iterator();<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>      while (mapEntries.hasNext()) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         Map.Entry e = (Map.Entry) mapEntries.next();<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         Object value = e.getValue();<a name="line.196"></a>
+<span class="sourceLineNo">197</span>         Object key = generalize(e.getKey(), keyType);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>         out.cr(indent).appendObject(key, false).append('=');<a name="line.198"></a>
+<span class="sourceLineNo">199</span>         serializeAnything(out, value, valueType, (key == null ? null : toString(key)), null);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>         if (mapEntries.hasNext())<a name="line.200"></a>
+<span class="sourceLineNo">201</span>            out.append(',');<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      }<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>      if (m.size() &gt; 0)<a name="line.204"></a>
+<span class="sourceLineNo">205</span>         out.cre(indent-1);<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>      if (! plainTextParams)<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         out.append(')');<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>      return out;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>   }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>   private SerializerWriter serializeBeanMap(UonWriter out, BeanMap&lt;?&gt; m, String typeName) throws Exception {<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>      if (! plainTextParams)<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         out.append('(');<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>      boolean addComma = false;<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>      for (BeanPropertyValue p : m.getValues(isTrimNulls(), typeName != null ? createBeanTypeNameProperty(m, typeName) : null)) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         BeanPropertyMeta pMeta = p.getMeta();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>         ClassMeta&lt;?&gt; cMeta = p.getClassMeta();<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>         String key = p.getName();<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         Object value = p.getValue();<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         Throwable t = p.getThrown();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         if (t != null)<a name="line.227"></a>
+<span class="sourceLineNo">228</span>            onBeanGetterException(pMeta, t);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>         if (canIgnoreValue(cMeta, key, value))<a name="line.230"></a>
+<span class="sourceLineNo">231</span>            continue;<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>         if (addComma)<a name="line.233"></a>
+<span class="sourceLineNo">234</span>            out.append(',');<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>         out.cr(indent).appendObject(key, false).append('=');<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>         serializeAnything(out, value, cMeta, key, pMeta);<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>         addComma = true;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>      if (m.size() &gt; 0)<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         out.cre(indent-1);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      if (! plainTextParams)<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         out.append(')');<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>      return out;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>   }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>   @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.251"></a>
+<span class="sourceLineNo">252</span>   private SerializerWriter serializeCollection(UonWriter out, Collection c, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>      ClassMeta&lt;?&gt; elementType = type.getElementType();<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>      c = sort(c);<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>      if (! plainTextParams)<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         out.append('@').append('(');<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>      for (Iterator i = c.iterator(); i.hasNext();) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         out.cr(indent);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         serializeAnything(out, i.next(), elementType, "&lt;iterator&gt;", null);<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         if (i.hasNext())<a name="line.264"></a>
+<span class="sourceLineNo">265</span>            out.append(',');<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      }<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>      if (c.size() &gt; 0)<a name="line.268"></a>
+<span class="sourceLineNo">269</span>         out.cre(indent-1);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      if (! plainTextParams)<a name="line.270"></a>
+<span class="sourceLineNo">271</span>         out.append(')');<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>      return out;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>   }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>}<a name="line.275"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/urlencoding/UrlEncodingParserSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/urlencoding/UrlEncodingParserSession.html b/content/site/apidocs/src-html/org/apache/juneau/urlencoding/UrlEncodingParserSession.html
index 46edf66..b1be538 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/urlencoding/UrlEncodingParserSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/urlencoding/UrlEncodingParserSession.html
@@ -67,7 +67,7 @@
 <span class="sourceLineNo">059</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if the specified bean property should be expanded as multiple key-value pairs.<a name="line.59"></a>
 <span class="sourceLineNo">060</span>    */<a name="line.60"></a>
 <span class="sourceLineNo">061</span>   public final boolean shouldUseExpandedParams(BeanPropertyMeta pMeta) {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>      ClassMeta&lt;?&gt; cm = pMeta.getClassMeta();<a name="line.62"></a>
+<span class="sourceLineNo">062</span>      ClassMeta&lt;?&gt; cm = pMeta.getClassMeta().getSerializedClassMeta(this);<a name="line.62"></a>
 <span class="sourceLineNo">063</span>      if (cm.isCollectionOrArray()) {<a name="line.63"></a>
 <span class="sourceLineNo">064</span>         if (expandedParams)<a name="line.64"></a>
 <span class="sourceLineNo">065</span>            return true;<a name="line.65"></a>
@@ -97,8 +97,8 @@
 <span class="sourceLineNo">089</span><a name="line.89"></a>
 <span class="sourceLineNo">090</span>      if (eType == null)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>         eType = (ClassMeta&lt;T&gt;)object();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      PojoSwap&lt;T,Object&gt; transform = (PojoSwap&lt;T,Object&gt;)eType.getPojoSwap();<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      ClassMeta&lt;?&gt; sType = eType.getSerializedClassMeta();<a name="line.93"></a>
+<span class="sourceLineNo">092</span>      PojoSwap&lt;T,Object&gt; swap = (PojoSwap&lt;T,Object&gt;)eType.getPojoSwap(this);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      ClassMeta&lt;?&gt; sType = swap == null ? eType : swap.getSwapClassMeta(this);<a name="line.93"></a>
 <span class="sourceLineNo">094</span><a name="line.94"></a>
 <span class="sourceLineNo">095</span>      int c = r.peekSkipWs();<a name="line.95"></a>
 <span class="sourceLineNo">096</span>      if (c == '?')<a name="line.96"></a>
@@ -147,8 +147,8 @@
 <span class="sourceLineNo">139</span>         }<a name="line.139"></a>
 <span class="sourceLineNo">140</span>      }<a name="line.140"></a>
 <span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>      if (transform != null &amp;&amp; o != null)<a name="line.142"></a>
-<span class="sourceLineNo">143</span>         o = transform.unswap(this, o, eType);<a name="line.143"></a>
+<span class="sourceLineNo">142</span>      if (swap != null &amp;&amp; o != null)<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         o = swap.unswap(this, o, eType);<a name="line.143"></a>
 <span class="sourceLineNo">144</span><a name="line.144"></a>
 <span class="sourceLineNo">145</span>      if (outer != null)<a name="line.145"></a>
 <span class="sourceLineNo">146</span>         setParent(eType, o, outer);<a name="line.146"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.html b/content/site/apidocs/src-html/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.html
index 41894f0..72d3f26 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.html
@@ -70,7 +70,7 @@
 <span class="sourceLineNo">062</span>    * Returns &lt;jk&gt;true&lt;/jk&gt; if the specified bean property should be expanded as multiple key-value pairs.<a name="line.62"></a>
 <span class="sourceLineNo">063</span>    */<a name="line.63"></a>
 <span class="sourceLineNo">064</span>   private boolean shouldUseExpandedParams(BeanPropertyMeta pMeta) {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>      ClassMeta&lt;?&gt; cm = pMeta.getClassMeta();<a name="line.65"></a>
+<span class="sourceLineNo">065</span>      ClassMeta&lt;?&gt; cm = pMeta.getClassMeta().getSerializedClassMeta(this);<a name="line.65"></a>
 <span class="sourceLineNo">066</span>      if (cm.isCollectionOrArray()) {<a name="line.66"></a>
 <span class="sourceLineNo">067</span>         if (expandedParams)<a name="line.67"></a>
 <span class="sourceLineNo">068</span>            return true;<a name="line.68"></a>
@@ -86,7 +86,7 @@
 <span class="sourceLineNo">078</span>   private boolean shouldUseExpandedParams(Object value) {<a name="line.78"></a>
 <span class="sourceLineNo">079</span>      if (value == null || ! expandedParams)<a name="line.79"></a>
 <span class="sourceLineNo">080</span>         return false;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      ClassMeta&lt;?&gt; cm = getClassMetaForObject(value).getSerializedClassMeta();<a name="line.81"></a>
+<span class="sourceLineNo">081</span>      ClassMeta&lt;?&gt; cm = getClassMetaForObject(value).getSerializedClassMeta(this);<a name="line.81"></a>
 <span class="sourceLineNo">082</span>      if (cm.isCollectionOrArray()) {<a name="line.82"></a>
 <span class="sourceLineNo">083</span>         if (expandedParams)<a name="line.83"></a>
 <span class="sourceLineNo">084</span>            return true;<a name="line.84"></a>
@@ -112,159 +112,161 @@
 <span class="sourceLineNo">104</span>      if (aType == null)<a name="line.104"></a>
 <span class="sourceLineNo">105</span>         aType = object();<a name="line.105"></a>
 <span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>      sType = aType.getSerializedClassMeta();<a name="line.107"></a>
+<span class="sourceLineNo">107</span>      sType = aType;<a name="line.107"></a>
 <span class="sourceLineNo">108</span>      String typeName = getBeanTypeName(object(), aType, null);<a name="line.108"></a>
 <span class="sourceLineNo">109</span><a name="line.109"></a>
 <span class="sourceLineNo">110</span>      // Swap if necessary<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      PojoSwap swap = aType.getPojoSwap();<a name="line.111"></a>
+<span class="sourceLineNo">111</span>      PojoSwap swap = aType.getPojoSwap(this);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>      if (swap != null) {<a name="line.112"></a>
 <span class="sourceLineNo">113</span>         o = swap.swap(this, o);<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>         // If the getSwapClass() method returns Object, we need to figure out<a name="line.115"></a>
-<span class="sourceLineNo">116</span>         // the actual type now.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>         if (sType.isObject())<a name="line.117"></a>
-<span class="sourceLineNo">118</span>            sType = getClassMetaForObject(o);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      }<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>      if (sType.isMap()) {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>         if (o instanceof BeanMap)<a name="line.122"></a>
-<span class="sourceLineNo">123</span>            serializeBeanMap(out, (BeanMap)o, typeName);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>         else<a name="line.124"></a>
-<span class="sourceLineNo">125</span>            serializeMap(out, (Map)o, sType);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      } else if (sType.isBean()) {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>         serializeBeanMap(out, toBeanMap(o), typeName);<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      } else if (sType.isCollection() || sType.isArray()) {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>         Map m = sType.isCollection() ? getCollectionMap((Collection)o) : getCollectionMap(o);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>         serializeCollectionMap(out, m, getClassMeta(Map.class, Integer.class, Object.class));<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      } else if (sType.isReader() || sType.isInputStream()) {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>         IOUtils.pipe(o, out);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      } else {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>         // All other types can't be serialized as key/value pairs, so we create a<a name="line.134"></a>
-<span class="sourceLineNo">135</span>         // mock key/value pair with a "_value" key.<a name="line.135"></a>
-<span class="sourceLineNo">136</span>         out.append("_value=");<a name="line.136"></a>
-<span class="sourceLineNo">137</span>         super.serializeAnything(out, o, null, null, null);<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      }<a name="line.138"></a>
-<span class="sourceLineNo">139</span><a name="line.139"></a>
-<span class="sourceLineNo">140</span>      pop();<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      return out;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>   }<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>   /*<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    * Converts a Collection into an integer-indexed map.<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    */<a name="line.146"></a>
-<span class="sourceLineNo">147</span>   private static Map&lt;Integer,Object&gt; getCollectionMap(Collection&lt;?&gt; c) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      Map&lt;Integer,Object&gt; m = new TreeMap&lt;Integer,Object&gt;();<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      int i = 0;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      for (Object o : c)<a name="line.150"></a>
-<span class="sourceLineNo">151</span>         m.put(i++, o);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      return m;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   }<a name="line.153"></a>
-<span class="sourceLineNo">154</span><a name="line.154"></a>
-<span class="sourceLineNo">155</span>   /*<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    * Converts an array into an integer-indexed map.<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    */<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   private static Map&lt;Integer,Object&gt; getCollectionMap(Object array) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      Map&lt;Integer,Object&gt; m = new TreeMap&lt;Integer,Object&gt;();<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      for (int i = 0; i &lt; Array.getLength(array); i++)<a name="line.160"></a>
-<span class="sourceLineNo">161</span>         m.put(i, Array.get(array, i));<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      return m;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   }<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>   private SerializerWriter serializeMap(UonWriter out, Map m, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>      m = sort(m);<a name="line.167"></a>
-<span class="sourceLineNo">168</span><a name="line.168"></a>
-<span class="sourceLineNo">169</span>      ClassMeta&lt;?&gt; keyType = type.getKeyType(), valueType = type.getValueType();<a name="line.169"></a>
-<span class="sourceLineNo">170</span><a name="line.170"></a>
-<span class="sourceLineNo">171</span>      boolean addAmp = false;<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>      for (Map.Entry e : (Set&lt;Map.Entry&gt;)m.entrySet()) {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>         Object key = generalize(e.getKey(), keyType);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>         Object value = e.getValue();<a name="line.175"></a>
-<span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>         if (shouldUseExpandedParams(value)) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>            Iterator i = value instanceof Collection ? ((Collection)value).iterator() : iterator(value);<a name="line.178"></a>
-<span class="sourceLineNo">179</span>            while (i.hasNext()) {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>               if (addAmp)<a name="line.180"></a>
-<span class="sourceLineNo">181</span>                  out.cr(indent).append('&amp;');<a name="line.181"></a>
-<span class="sourceLineNo">182</span>               out.appendObject(key, true).append('=');<a name="line.182"></a>
-<span class="sourceLineNo">183</span>               super.serializeAnything(out, i.next(), null, (key == null ? null : key.toString()), null);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>               addAmp = true;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>            }<a name="line.185"></a>
-<span class="sourceLineNo">186</span>         } else {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>            if (addAmp)<a name="line.187"></a>
-<span class="sourceLineNo">188</span>               out.cr(indent).append('&amp;');<a name="line.188"></a>
-<span class="sourceLineNo">189</span>            out.appendObject(key, true).append('=');<a name="line.189"></a>
-<span class="sourceLineNo">190</span>            super.serializeAnything(out, value, valueType, (key == null ? null : key.toString()), null);<a name="line.190"></a>
-<span class="sourceLineNo">191</span>            addAmp = true;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>         }<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      }<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>      return out;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>   }<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>   private SerializerWriter serializeCollectionMap(UonWriter out, Map m, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>      ClassMeta&lt;?&gt; valueType = type.getValueType();<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>      boolean addAmp = false;<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>      for (Map.Entry e : (Set&lt;Map.Entry&gt;)m.entrySet()) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>         if (addAmp)<a name="line.205"></a>
-<span class="sourceLineNo">206</span>            out.cr(indent).append('&amp;');<a name="line.206"></a>
-<span class="sourceLineNo">207</span>         out.append(e.getKey()).append('=');<a name="line.207"></a>
-<span class="sourceLineNo">208</span>         super.serializeAnything(out, e.getValue(), valueType, null, null);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>         addAmp = true;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      }<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>      return out;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>   }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>   private SerializerWriter serializeBeanMap(UonWriter out, BeanMap&lt;?&gt; m, String typeName) throws Exception {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      boolean addAmp = false;<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>      for (BeanPropertyValue p : m.getValues(isTrimNulls(), typeName != null ? createBeanTypeNameProperty(m, typeName) : null)) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>         BeanPropertyMeta pMeta = p.getMeta();<a name="line.219"></a>
-<span class="sourceLineNo">220</span>         ClassMeta&lt;?&gt; cMeta = p.getClassMeta();<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span>         String key = p.getName();<a name="line.222"></a>
-<span class="sourceLineNo">223</span>         Object value = p.getValue();<a name="line.223"></a>
-<span class="sourceLineNo">224</span>         Throwable t = p.getThrown();<a name="line.224"></a>
-<span class="sourceLineNo">225</span>         if (t != null)<a name="line.225"></a>
-<span class="sourceLineNo">226</span>            onBeanGetterException(pMeta, t);<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>         if (canIgnoreValue(cMeta, key, value))<a name="line.228"></a>
-<span class="sourceLineNo">229</span>            continue;<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>         if (value != null &amp;&amp; shouldUseExpandedParams(pMeta)) {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>            // Transformed object array bean properties may be transformed resulting in ArrayLists,<a name="line.232"></a>
-<span class="sourceLineNo">233</span>            // so we need to check type if we think it's an array.<a name="line.233"></a>
-<span class="sourceLineNo">234</span>            Iterator i = (cMeta.isCollection() || value instanceof Collection) ? ((Collection)value).iterator() : iterator(value);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>            while (i.hasNext()) {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>               if (addAmp)<a name="line.236"></a>
-<span class="sourceLineNo">237</span>                  out.cr(indent).append('&amp;');<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>               out.appendObject(key, true).append('=');<a name="line.239"></a>
+<span class="sourceLineNo">114</span>         sType = swap.getSwapClassMeta(this);<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>         // If the getSwapClass() method returns Object, we need to figure out<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         // the actual type now.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         if (sType.isObject())<a name="line.118"></a>
+<span class="sourceLineNo">119</span>            sType = getClassMetaForObject(o);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>      if (sType.isMap()) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>         if (o instanceof BeanMap)<a name="line.123"></a>
+<span class="sourceLineNo">124</span>            serializeBeanMap(out, (BeanMap)o, typeName);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         else<a name="line.125"></a>
+<span class="sourceLineNo">126</span>            serializeMap(out, (Map)o, sType);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      } else if (sType.isBean()) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         serializeBeanMap(out, toBeanMap(o), typeName);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>      } else if (sType.isCollection() || sType.isArray()) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         Map m = sType.isCollection() ? getCollectionMap((Collection)o) : getCollectionMap(o);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         serializeCollectionMap(out, m, getClassMeta(Map.class, Integer.class, Object.class));<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      } else if (sType.isReader() || sType.isInputStream()) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>         IOUtils.pipe(o, out);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      } else {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         // All other types can't be serialized as key/value pairs, so we create a<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         // mock key/value pair with a "_value" key.<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         out.append("_value=");<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         super.serializeAnything(out, o, null, null, null);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      }<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>      pop();<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      return out;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>   }<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>   /*<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    * Converts a Collection into an integer-indexed map.<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    */<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   private static Map&lt;Integer,Object&gt; getCollectionMap(Collection&lt;?&gt; c) {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      Map&lt;Integer,Object&gt; m = new TreeMap&lt;Integer,Object&gt;();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      int i = 0;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      for (Object o : c)<a name="line.151"></a>
+<span class="sourceLineNo">152</span>         m.put(i++, o);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      return m;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>   }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>   /*<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    * Converts an array into an integer-indexed map.<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    */<a name="line.158"></a>
+<span class="sourceLineNo">159</span>   private static Map&lt;Integer,Object&gt; getCollectionMap(Object array) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      Map&lt;Integer,Object&gt; m = new TreeMap&lt;Integer,Object&gt;();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      for (int i = 0; i &lt; Array.getLength(array); i++)<a name="line.161"></a>
+<span class="sourceLineNo">162</span>         m.put(i, Array.get(array, i));<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      return m;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>   }<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>   private SerializerWriter serializeMap(UonWriter out, Map m, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>      m = sort(m);<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>      ClassMeta&lt;?&gt; keyType = type.getKeyType(), valueType = type.getValueType();<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>      boolean addAmp = false;<a name="line.172"></a>
+<span class="sourceLineNo">173</span><a name="line.173"></a>
+<span class="sourceLineNo">174</span>      for (Map.Entry e : (Set&lt;Map.Entry&gt;)m.entrySet()) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>         Object key = generalize(e.getKey(), keyType);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>         Object value = e.getValue();<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>         if (shouldUseExpandedParams(value)) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>            Iterator i = value instanceof Collection ? ((Collection)value).iterator() : iterator(value);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>            while (i.hasNext()) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>               if (addAmp)<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                  out.cr(indent).append('&amp;');<a name="line.182"></a>
+<span class="sourceLineNo">183</span>               out.appendObject(key, true).append('=');<a name="line.183"></a>
+<span class="sourceLineNo">184</span>               super.serializeAnything(out, i.next(), null, (key == null ? null : key.toString()), null);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>               addAmp = true;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>            }<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         } else {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>            if (addAmp)<a name="line.188"></a>
+<span class="sourceLineNo">189</span>               out.cr(indent).append('&amp;');<a name="line.189"></a>
+<span class="sourceLineNo">190</span>            out.appendObject(key, true).append('=');<a name="line.190"></a>
+<span class="sourceLineNo">191</span>            super.serializeAnything(out, value, valueType, (key == null ? null : key.toString()), null);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>            addAmp = true;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>      return out;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>   }<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>   private SerializerWriter serializeCollectionMap(UonWriter out, Map m, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>      ClassMeta&lt;?&gt; valueType = type.getValueType();<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>      boolean addAmp = false;<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>      for (Map.Entry e : (Set&lt;Map.Entry&gt;)m.entrySet()) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         if (addAmp)<a name="line.206"></a>
+<span class="sourceLineNo">207</span>            out.cr(indent).append('&amp;');<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         out.append(e.getKey()).append('=');<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         super.serializeAnything(out, e.getValue(), valueType, null, null);<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         addAmp = true;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>      return out;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>   }<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>   private SerializerWriter serializeBeanMap(UonWriter out, BeanMap&lt;?&gt; m, String typeName) throws Exception {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      boolean addAmp = false;<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>      for (BeanPropertyValue p : m.getValues(isTrimNulls(), typeName != null ? createBeanTypeNameProperty(m, typeName) : null)) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         BeanPropertyMeta pMeta = p.getMeta();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         ClassMeta&lt;?&gt; cMeta = p.getClassMeta();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>         ClassMeta&lt;?&gt; sMeta = cMeta.getSerializedClassMeta(this);<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>         String key = p.getName();<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         Object value = p.getValue();<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         Throwable t = p.getThrown();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         if (t != null)<a name="line.227"></a>
+<span class="sourceLineNo">228</span>            onBeanGetterException(pMeta, t);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>         if (canIgnoreValue(sMeta, key, value))<a name="line.230"></a>
+<span class="sourceLineNo">231</span>            continue;<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>         if (value != null &amp;&amp; shouldUseExpandedParams(pMeta)) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>            // Transformed object array bean properties may be transformed resulting in ArrayLists,<a name="line.234"></a>
+<span class="sourceLineNo">235</span>            // so we need to check type if we think it's an array.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>            Iterator i = (sMeta.isCollection() || value instanceof Collection) ? ((Collection)value).iterator() : iterator(value);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>            while (i.hasNext()) {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>               if (addAmp)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                  out.cr(indent).append('&amp;');<a name="line.239"></a>
 <span class="sourceLineNo">240</span><a name="line.240"></a>
-<span class="sourceLineNo">241</span>               super.serializeAnything(out, i.next(), cMeta.getElementType(), key, pMeta);<a name="line.241"></a>
+<span class="sourceLineNo">241</span>               out.appendObject(key, true).append('=');<a name="line.241"></a>
 <span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>               addAmp = true;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>            }<a name="line.244"></a>
-<span class="sourceLineNo">245</span>         } else {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>            if (addAmp)<a name="line.246"></a>
-<span class="sourceLineNo">247</span>               out.cr(indent).append('&amp;');<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>            out.appendObject(key, true).append('=');<a name="line.249"></a>
+<span class="sourceLineNo">243</span>               super.serializeAnything(out, i.next(), cMeta.getElementType(), key, pMeta);<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>               addAmp = true;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>            }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>         } else {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>            if (addAmp)<a name="line.248"></a>
+<span class="sourceLineNo">249</span>               out.cr(indent).append('&amp;');<a name="line.249"></a>
 <span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span>            super.serializeAnything(out, value, cMeta, key, pMeta);<a name="line.251"></a>
+<span class="sourceLineNo">251</span>            out.appendObject(key, true).append('=');<a name="line.251"></a>
 <span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>            addAmp = true;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>         }<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>      }<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      return out;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   }<a name="line.258"></a>
-<span class="sourceLineNo">259</span>}<a name="line.259"></a>
+<span class="sourceLineNo">253</span>            super.serializeAnything(out, value, cMeta, key, pMeta);<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span>            addAmp = true;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>         }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>      }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      return out;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   }<a name="line.260"></a>
+<span class="sourceLineNo">261</span>}<a name="line.261"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/xml/XmlParserSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/xml/XmlParserSession.html b/content/site/apidocs/src-html/org/apache/juneau/xml/XmlParserSession.html
index 7508dfb..5b11117 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/xml/XmlParserSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/xml/XmlParserSession.html
@@ -291,8 +291,8 @@
 <span class="sourceLineNo">283</span><a name="line.283"></a>
 <span class="sourceLineNo">284</span>      if (eType == null)<a name="line.284"></a>
 <span class="sourceLineNo">285</span>         eType = (ClassMeta&lt;T&gt;)object();<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      PojoSwap&lt;T,Object&gt; transform = (PojoSwap&lt;T,Object&gt;)eType.getPojoSwap();<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      ClassMeta&lt;?&gt; sType = eType.getSerializedClassMeta();<a name="line.287"></a>
+<span class="sourceLineNo">286</span>      PojoSwap&lt;T,Object&gt; swap = (PojoSwap&lt;T,Object&gt;)eType.getPojoSwap(this);<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      ClassMeta&lt;?&gt; sType = swap == null ? eType : swap.getSwapClassMeta(this);<a name="line.287"></a>
 <span class="sourceLineNo">288</span>      setCurrentClass(sType);<a name="line.288"></a>
 <span class="sourceLineNo">289</span><a name="line.289"></a>
 <span class="sourceLineNo">290</span>      String wrapperAttr = (isRoot &amp;&amp; preserveRootElement) ? r.getName().getLocalPart() : null;<a name="line.290"></a>
@@ -385,8 +385,8 @@
 <span class="sourceLineNo">377</span>            sType.getInnerClass().getName(), sType.getNotABeanReason(), pMeta == null ? null : pMeta.getName());<a name="line.377"></a>
 <span class="sourceLineNo">378</span>      }<a name="line.378"></a>
 <span class="sourceLineNo">379</span><a name="line.379"></a>
-<span class="sourceLineNo">380</span>      if (transform != null &amp;&amp; o != null)<a name="line.380"></a>
-<span class="sourceLineNo">381</span>         o = transform.unswap(this, o, eType);<a name="line.381"></a>
+<span class="sourceLineNo">380</span>      if (swap != null &amp;&amp; o != null)<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         o = swap.unswap(this, o, eType);<a name="line.381"></a>
 <span class="sourceLineNo">382</span><a name="line.382"></a>
 <span class="sourceLineNo">383</span>      if (outer != null)<a name="line.383"></a>
 <span class="sourceLineNo">384</span>         setParent(eType, o, outer);<a name="line.384"></a>


[25/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeLong.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeLong.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeLong.html
index 486ab26..23e348b 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeLong.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeLong.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeMedium.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeMedium.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeMedium.html
index f99ae90..fe5b586 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeMedium.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeMedium.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeShort.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeShort.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeShort.html
index 242bcdf..26e0297 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeShort.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeShort.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeSimple.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeSimple.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeSimple.html
index 9d0e564..897e9d6 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeSimple.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.TimeSimple.html
@@ -221,7 +221,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ToString.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ToString.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ToString.html
index f261ab9..8cf8e38 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ToString.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.ToString.html
@@ -221,7 +221,7 @@ extends <a href="../../../../org/apache/juneau/transforms/DateSwap.html" title="
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/DateSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.html b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.html
index d509056..c08e003 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/DateSwap.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/DateSwap.html
@@ -369,7 +369,7 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/EnumerationSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/EnumerationSwap.html b/content/site/apidocs/org/apache/juneau/transforms/EnumerationSwap.html
index e2d9623..884980b 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/EnumerationSwap.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/EnumerationSwap.html
@@ -182,7 +182,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">unswap</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/IteratorSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/IteratorSwap.html b/content/site/apidocs/org/apache/juneau/transforms/IteratorSwap.html
index ffe9e6c..9e53a53 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/IteratorSwap.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/IteratorSwap.html
@@ -182,7 +182,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">unswap</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.Html.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.Html.html b/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.Html.html
index ce7f909..1817c31 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.Html.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.Html.html
@@ -116,7 +116,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.html#line.70">ReaderSwap.Html</a>
+<pre>public static class <a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.html#line.69">ReaderSwap.Html</a>
 extends <a href="../../../../org/apache/juneau/transforms/ReaderSwap.html" title="class in org.apache.juneau.transforms">ReaderSwap</a></pre>
 <div class="block">Reader transform for reading HTML text.</div>
 </li>
@@ -192,7 +192,7 @@ extends <a href="../../../../org/apache/juneau/transforms/ReaderSwap.html" title
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">unswap</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -221,7 +221,7 @@ extends <a href="../../../../org/apache/juneau/transforms/ReaderSwap.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>Html</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.Html.html#line.72">Html</a>()</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.Html.html#line.71">Html</a>()</pre>
 <div class="block">Constructor</div>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.Json.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.Json.html b/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.Json.html
index 07d8147..c620403 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.Json.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.Json.html
@@ -116,7 +116,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.html#line.54">ReaderSwap.Json</a>
+<pre>public static class <a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.html#line.53">ReaderSwap.Json</a>
 extends <a href="../../../../org/apache/juneau/transforms/ReaderSwap.html" title="class in org.apache.juneau.transforms">ReaderSwap</a></pre>
 <div class="block">Reader transform for reading JSON text.</div>
 </li>
@@ -192,7 +192,7 @@ extends <a href="../../../../org/apache/juneau/transforms/ReaderSwap.html" title
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">unswap</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -221,7 +221,7 @@ extends <a href="../../../../org/apache/juneau/transforms/ReaderSwap.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>Json</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.Json.html#line.56">Json</a>()</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.Json.html#line.55">Json</a>()</pre>
 <div class="block">Constructor</div>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.PlainText.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.PlainText.html b/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.PlainText.html
index 50ea3e3..b3234c4 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.PlainText.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.PlainText.html
@@ -116,7 +116,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.html#line.78">ReaderSwap.PlainText</a>
+<pre>public static class <a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.html#line.77">ReaderSwap.PlainText</a>
 extends <a href="../../../../org/apache/juneau/transforms/ReaderSwap.html" title="class in org.apache.juneau.transforms">ReaderSwap</a></pre>
 <div class="block">Reader transform for reading plain text.</div>
 </li>
@@ -192,7 +192,7 @@ extends <a href="../../../../org/apache/juneau/transforms/ReaderSwap.html" title
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">unswap</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -221,7 +221,7 @@ extends <a href="../../../../org/apache/juneau/transforms/ReaderSwap.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>PlainText</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.PlainText.html#line.80">PlainText</a>()</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.PlainText.html#line.79">PlainText</a>()</pre>
 <div class="block">Constructor</div>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.Xml.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.Xml.html b/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.Xml.html
index 041a20b..f33bacf 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.Xml.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.Xml.html
@@ -116,7 +116,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.html#line.62">ReaderSwap.Xml</a>
+<pre>public static class <a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.html#line.61">ReaderSwap.Xml</a>
 extends <a href="../../../../org/apache/juneau/transforms/ReaderSwap.html" title="class in org.apache.juneau.transforms">ReaderSwap</a></pre>
 <div class="block">Reader transform for reading XML text.</div>
 </li>
@@ -192,7 +192,7 @@ extends <a href="../../../../org/apache/juneau/transforms/ReaderSwap.html" title
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">unswap</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -221,7 +221,7 @@ extends <a href="../../../../org/apache/juneau/transforms/ReaderSwap.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>Xml</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.Xml.html#line.64">Xml</a>()</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.Xml.html#line.63">Xml</a>()</pre>
 <div class="block">Constructor</div>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.html b/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.html
index 55e5e98..faffb86 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/ReaderSwap.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.html#line.51">ReaderSwap</a>
+<pre>public class <a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.html#line.50">ReaderSwap</a>
 extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;</pre>
 <div class="block">Transforms the contents of a <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a> into an <code>Object</code>.
 
@@ -243,7 +243,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">unswap</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -272,7 +272,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ReaderSwap</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.html#line.91">ReaderSwap</a>(<a href="../../../../org/apache/juneau/parser/ReaderParser.html" title="class in org.apache.juneau.parser">ReaderParser</a>&nbsp;parser)</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.html#line.90">ReaderSwap</a>(<a href="../../../../org/apache/juneau/parser/ReaderParser.html" title="class in org.apache.juneau.parser">ReaderParser</a>&nbsp;parser)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>parser</code> - The parser to use to convert the contents of the reader to Java objects.</dd>
@@ -293,9 +293,9 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <ul class="blockListLast">
 <li class="blockList">
 <h4>swap</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.html#line.99">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ReaderSwap.html#line.98">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
                    <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a>&nbsp;o)
-            throws <a href="../../../../org/apache/juneau/serializer/SerializeException.html" title="class in org.apache.juneau.serializer">SerializeException</a></pre>
+            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Converts the specified <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a> to an <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><code>Object</code></a> whose type is determined by the contents of the reader.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -307,7 +307,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The transformed object.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../org/apache/juneau/serializer/SerializeException.html" title="class in org.apache.juneau.serializer">SerializeException</a></code></dd>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - If a problem occurred trying to convert the output.</dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/StringFormatSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/StringFormatSwap.html b/content/site/apidocs/org/apache/juneau/transforms/StringFormatSwap.html
index 8a24e14..d5832b8 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/StringFormatSwap.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/StringFormatSwap.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../src-html/org/apache/juneau/transforms/StringFormatSwap.html#line.24">StringFormatSwap</a>
+<pre>public class <a href="../../../../src-html/org/apache/juneau/transforms/StringFormatSwap.html#line.22">StringFormatSwap</a>
 extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title="class in org.apache.juneau.transform">StringSwap</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;</pre>
 <div class="block">Built-in POJO swap implementation class for the <a href="../../../../org/apache/juneau/annotation/BeanProperty.html#format--"><code>BeanProperty.format()</code></a> annotation.</div>
 </li>
@@ -194,7 +194,7 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <ul class="blockListLast">
 <li class="blockList">
 <h4>StringFormatSwap</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/StringFormatSwap.html#line.33">StringFormatSwap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/StringFormatSwap.html#line.31">StringFormatSwap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
 <div class="block">Constructor.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -245,9 +245,9 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <ul class="blockList">
 <li class="blockList">
 <h4>swap</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/StringFormatSwap.html#line.38">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/StringFormatSwap.html#line.36">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
                    <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)
-            throws <a href="../../../../org/apache/juneau/serializer/SerializeException.html" title="class in org.apache.juneau.serializer">SerializeException</a></pre>
+            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.juneau.BeanSession-T-">PojoSwap</a></code></span></div>
 <div class="block">If this transform is to be used to serialize non-serializable POJOs, it must implement this method.
 
@@ -279,7 +279,7 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The transformed object.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../org/apache/juneau/serializer/SerializeException.html" title="class in org.apache.juneau.serializer">SerializeException</a></code></dd>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - If a problem occurred trying to convert the output.</dd>
 </dl>
 </li>
 </ul>
@@ -289,10 +289,10 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <ul class="blockListLast">
 <li class="blockList">
 <h4>unswap</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/StringFormatSwap.html#line.43">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/StringFormatSwap.html#line.41">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
                      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;f,
                      <a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;hint)
-              throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
+              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">PojoSwap</a></code></span></div>
 <div class="block">If this transform is to be used to reconstitute POJOs that aren't true Java beans, it must implement this method.</div>
 <dl>
@@ -309,7 +309,7 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The narrowed object.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></code></dd>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - If this method is not implemented.</dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html b/content/site/apidocs/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html
index f0c15ce..0b815f7 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../src-html/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html#line.33">XMLGregorianCalendarSwap</a>
+<pre>public class <a href="../../../../src-html/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html#line.31">XMLGregorianCalendarSwap</a>
 extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title="class in org.apache.juneau.transform">StringSwap</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/javax/xml/datatype/XMLGregorianCalendar.html?is-external=true" title="class or interface in javax.xml.datatype">XMLGregorianCalendar</a>&gt;</pre>
 <div class="block">Transforms <a href="http://docs.oracle.com/javase/7/docs/api/javax/xml/datatype/XMLGregorianCalendar.html?is-external=true" title="class or interface in javax.xml.datatype"><code>XMLGregorianCalendars</code></a> to ISO8601 date-time <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>Strings</code></a>.
 
@@ -200,7 +200,7 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -229,7 +229,7 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <ul class="blockListLast">
 <li class="blockList">
 <h4>XMLGregorianCalendarSwap</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html#line.40">XMLGregorianCalendarSwap</a>()</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html#line.38">XMLGregorianCalendarSwap</a>()</pre>
 <div class="block">Constructor.</div>
 </li>
 </ul>
@@ -247,9 +247,9 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <ul class="blockList">
 <li class="blockList">
 <h4>swap</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html#line.52">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html#line.50">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
                    <a href="http://docs.oracle.com/javase/7/docs/api/javax/xml/datatype/XMLGregorianCalendar.html?is-external=true" title="class or interface in javax.xml.datatype">XMLGregorianCalendar</a>&nbsp;b)
-            throws <a href="../../../../org/apache/juneau/serializer/SerializeException.html" title="class in org.apache.juneau.serializer">SerializeException</a></pre>
+            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Converts the specified <code>XMLGregorianCalendar</code> to a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a>.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -261,7 +261,7 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The transformed object.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../org/apache/juneau/serializer/SerializeException.html" title="class in org.apache.juneau.serializer">SerializeException</a></code></dd>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - If a problem occurred trying to convert the output.</dd>
 </dl>
 </li>
 </ul>
@@ -271,10 +271,10 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <ul class="blockListLast">
 <li class="blockList">
 <h4>unswap</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/javax/xml/datatype/XMLGregorianCalendar.html?is-external=true" title="class or interface in javax.xml.datatype">XMLGregorianCalendar</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html#line.60">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/javax/xml/datatype/XMLGregorianCalendar.html?is-external=true" title="class or interface in javax.xml.datatype">XMLGregorianCalendar</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html#line.58">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
                                    <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;s,
                                    <a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;hint)
-                            throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
+                            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Converts the specified <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> to an <code>XMLGregorianCalendar</code>.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -290,7 +290,7 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The narrowed object.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></code></dd>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - If this method is not implemented.</dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/uon/UonParserBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/uon/UonParserBuilder.html b/content/site/apidocs/org/apache/juneau/uon/UonParserBuilder.html
index 376ff2f..da5a38a 100644
--- a/content/site/apidocs/org/apache/juneau/uon/UonParserBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/uon/UonParserBuilder.html
@@ -2236,7 +2236,7 @@ extends <a href="../../../../org/apache/juneau/parser/ParserBuilder.html" title=
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/uon/UonSerializerBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/uon/UonSerializerBuilder.html b/content/site/apidocs/org/apache/juneau/uon/UonSerializerBuilder.html
index c31c9c0..c698871 100644
--- a/content/site/apidocs/org/apache/juneau/uon/UonSerializerBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/uon/UonSerializerBuilder.html
@@ -2925,7 +2925,7 @@ extends <a href="../../../../org/apache/juneau/serializer/SerializerBuilder.html
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.html b/content/site/apidocs/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.html
index 38078fa..4ca4b4e 100644
--- a/content/site/apidocs/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.html
@@ -2291,7 +2291,7 @@ extends <a href="../../../../org/apache/juneau/uon/UonParserBuilder.html" title=
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.html b/content/site/apidocs/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.html
index af22bf1..6474f01 100644
--- a/content/site/apidocs/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.html
@@ -3033,7 +3033,7 @@ extends <a href="../../../../org/apache/juneau/uon/UonSerializerBuilder.html" ti
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/xml/XmlParserBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/xml/XmlParserBuilder.html b/content/site/apidocs/org/apache/juneau/xml/XmlParserBuilder.html
index 1a5500c..b6044a4 100644
--- a/content/site/apidocs/org/apache/juneau/xml/XmlParserBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/xml/XmlParserBuilder.html
@@ -2408,7 +2408,7 @@ extends <a href="../../../../org/apache/juneau/parser/ParserBuilder.html" title=
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/xml/XmlSchemaSerializerBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/xml/XmlSchemaSerializerBuilder.html b/content/site/apidocs/org/apache/juneau/xml/XmlSchemaSerializerBuilder.html
index 8334e0b..fadc78e 100644
--- a/content/site/apidocs/org/apache/juneau/xml/XmlSchemaSerializerBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/xml/XmlSchemaSerializerBuilder.html
@@ -3129,7 +3129,7 @@ extends <a href="../../../../org/apache/juneau/xml/XmlSerializerBuilder.html" ti
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/xml/XmlSerializerBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/xml/XmlSerializerBuilder.html b/content/site/apidocs/org/apache/juneau/xml/XmlSerializerBuilder.html
index e90e0a1..7bc4f1f 100644
--- a/content/site/apidocs/org/apache/juneau/xml/XmlSerializerBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/xml/XmlSerializerBuilder.html
@@ -3142,7 +3142,7 @@ extends <a href="../../../../org/apache/juneau/serializer/SerializerBuilder.html
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>


[20/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.html b/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.html
index e15a096..6012d78 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.html
@@ -137,915 +137,938 @@
 <span class="sourceLineNo">129</span>            rawTypeMeta = f.resolveClassMeta(p, field.getGenericType(), typeVarImpls);<a name="line.129"></a>
 <span class="sourceLineNo">130</span>            isUri |= (rawTypeMeta.isUri() || field.isAnnotationPresent(org.apache.juneau.annotation.URI.class));<a name="line.130"></a>
 <span class="sourceLineNo">131</span>            if (p != null) {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>               swap = getPropertyPojoSwap(p);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>               if (! p.properties().isEmpty())<a name="line.133"></a>
-<span class="sourceLineNo">134</span>                  properties = split(p.properties());<a name="line.134"></a>
-<span class="sourceLineNo">135</span>               bdClasses.addAll(Arrays.asList(p.beanDictionary()));<a name="line.135"></a>
-<span class="sourceLineNo">136</span>            }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>         }<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>         if (getter != null) {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>            BeanProperty p = getMethodAnnotation(BeanProperty.class, getter);<a name="line.140"></a>
-<span class="sourceLineNo">141</span>            if (rawTypeMeta == null)<a name="line.141"></a>
-<span class="sourceLineNo">142</span>               rawTypeMeta = f.resolveClassMeta(p, getter.getGenericReturnType(), typeVarImpls);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>            isUri |= (rawTypeMeta.isUri() || getter.isAnnotationPresent(org.apache.juneau.annotation.URI.class));<a name="line.143"></a>
-<span class="sourceLineNo">144</span>            if (p != null) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>               if (swap == null)<a name="line.145"></a>
-<span class="sourceLineNo">146</span>                  swap = getPropertyPojoSwap(p);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>               if (properties != null &amp;&amp; ! p.properties().isEmpty())<a name="line.147"></a>
-<span class="sourceLineNo">148</span>                  properties = split(p.properties());<a name="line.148"></a>
-<span class="sourceLineNo">149</span>               bdClasses.addAll(Arrays.asList(p.beanDictionary()));<a name="line.149"></a>
-<span class="sourceLineNo">150</span>            }<a name="line.150"></a>
-<span class="sourceLineNo">151</span>         }<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>         if (setter != null) {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>            BeanProperty p = getMethodAnnotation(BeanProperty.class, setter);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>            if (rawTypeMeta == null)<a name="line.155"></a>
-<span class="sourceLineNo">156</span>               rawTypeMeta = f.resolveClassMeta(p, setter.getGenericParameterTypes()[0], typeVarImpls);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>            isUri |= (rawTypeMeta.isUri() || setter.isAnnotationPresent(org.apache.juneau.annotation.URI.class));<a name="line.157"></a>
-<span class="sourceLineNo">158</span>            if (p != null) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>               if (swap == null)<a name="line.159"></a>
-<span class="sourceLineNo">160</span>                  swap = getPropertyPojoSwap(p);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>               if (properties != null &amp;&amp; ! p.properties().isEmpty())<a name="line.161"></a>
-<span class="sourceLineNo">162</span>                  properties = split(p.properties());<a name="line.162"></a>
-<span class="sourceLineNo">163</span>               bdClasses.addAll(Arrays.asList(p.beanDictionary()));<a name="line.163"></a>
-<span class="sourceLineNo">164</span>            }<a name="line.164"></a>
-<span class="sourceLineNo">165</span>         }<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>         if (rawTypeMeta == null)<a name="line.167"></a>
-<span class="sourceLineNo">168</span>            return false;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>         this.beanRegistry = new BeanRegistry(beanContext, parentBeanRegistry, bdClasses.toArray(new Class&lt;?&gt;[0]));<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>         isDyna = "*".equals(name);<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>         // Do some annotation validation.<a name="line.174"></a>
-<span class="sourceLineNo">175</span>         Class&lt;?&gt; c = rawTypeMeta.getInnerClass();<a name="line.175"></a>
-<span class="sourceLineNo">176</span>         if (getter != null) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>            if (isDyna) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>               if (! isParentClass(Map.class, c))<a name="line.178"></a>
-<span class="sourceLineNo">179</span>                  return false;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>            } else {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>               if (! isParentClass(getter.getReturnType(), c))<a name="line.181"></a>
-<span class="sourceLineNo">182</span>                  return false;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>            }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>         }<a name="line.184"></a>
-<span class="sourceLineNo">185</span>         if (setter != null) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>            Class&lt;?&gt;[] pt = setter.getParameterTypes();<a name="line.186"></a>
-<span class="sourceLineNo">187</span>            if (pt.length != (isDyna ? 2 : 1))<a name="line.187"></a>
-<span class="sourceLineNo">188</span>               return false;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>            if (isDyna) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>               if (! pt[0].equals(String.class))<a name="line.190"></a>
+<span class="sourceLineNo">132</span>               if (! p.properties().isEmpty())<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                  properties = split(p.properties());<a name="line.133"></a>
+<span class="sourceLineNo">134</span>               bdClasses.addAll(Arrays.asList(p.beanDictionary()));<a name="line.134"></a>
+<span class="sourceLineNo">135</span>            }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>            Swap s = field.getAnnotation(Swap.class);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>            if (s != null) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>               swap = getPropertyPojoSwap(s);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>            }<a name="line.139"></a>
+<span class="sourceLineNo">140</span>         }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>         if (getter != null) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>            BeanProperty p = getMethodAnnotation(BeanProperty.class, getter);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>            if (rawTypeMeta == null)<a name="line.144"></a>
+<span class="sourceLineNo">145</span>               rawTypeMeta = f.resolveClassMeta(p, getter.getGenericReturnType(), typeVarImpls);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>            isUri |= (rawTypeMeta.isUri() || getter.isAnnotationPresent(org.apache.juneau.annotation.URI.class));<a name="line.146"></a>
+<span class="sourceLineNo">147</span>            if (p != null) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>               if (properties != null &amp;&amp; ! p.properties().isEmpty())<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                  properties = split(p.properties());<a name="line.149"></a>
+<span class="sourceLineNo">150</span>               bdClasses.addAll(Arrays.asList(p.beanDictionary()));<a name="line.150"></a>
+<span class="sourceLineNo">151</span>            }<a name="line.151"></a>
+<span class="sourceLineNo">152</span>            Swap s = getter.getAnnotation(Swap.class);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>            if (s != null &amp;&amp; swap == null) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>               swap = getPropertyPojoSwap(s);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>            }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         }<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>         if (setter != null) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>            BeanProperty p = getMethodAnnotation(BeanProperty.class, setter);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>            if (rawTypeMeta == null)<a name="line.160"></a>
+<span class="sourceLineNo">161</span>               rawTypeMeta = f.resolveClassMeta(p, setter.getGenericParameterTypes()[0], typeVarImpls);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>            isUri |= (rawTypeMeta.isUri() || setter.isAnnotationPresent(org.apache.juneau.annotation.URI.class));<a name="line.162"></a>
+<span class="sourceLineNo">163</span>            if (p != null) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>               if (swap == null)<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                  swap = getPropertyPojoSwap(p);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>               if (properties != null &amp;&amp; ! p.properties().isEmpty())<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                  properties = split(p.properties());<a name="line.167"></a>
+<span class="sourceLineNo">168</span>               bdClasses.addAll(Arrays.asList(p.beanDictionary()));<a name="line.168"></a>
+<span class="sourceLineNo">169</span>            }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>            Swap s = setter.getAnnotation(Swap.class);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>            if (s != null &amp;&amp; swap == null) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>               swap = getPropertyPojoSwap(s);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>            }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         }<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>         if (rawTypeMeta == null)<a name="line.176"></a>
+<span class="sourceLineNo">177</span>            return false;<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>         this.beanRegistry = new BeanRegistry(beanContext, parentBeanRegistry, bdClasses.toArray(new Class&lt;?&gt;[0]));<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>         isDyna = "*".equals(name);<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>         // Do some annotation validation.<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         Class&lt;?&gt; c = rawTypeMeta.getInnerClass();<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         if (getter != null) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>            if (isDyna) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>               if (! isParentClass(Map.class, c))<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                  return false;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>            } else {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>               if (! isParentClass(getter.getReturnType(), c))<a name="line.190"></a>
 <span class="sourceLineNo">191</span>                  return false;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>            } else {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>               if (! isParentClass(pt[0], c))<a name="line.193"></a>
-<span class="sourceLineNo">194</span>                  return false;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>            }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>         }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>         if (field != null) {<a name="line.197"></a>
+<span class="sourceLineNo">192</span>            }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         if (setter != null) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>            Class&lt;?&gt;[] pt = setter.getParameterTypes();<a name="line.195"></a>
+<span class="sourceLineNo">196</span>            if (pt.length != (isDyna ? 2 : 1))<a name="line.196"></a>
+<span class="sourceLineNo">197</span>               return false;<a name="line.197"></a>
 <span class="sourceLineNo">198</span>            if (isDyna) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>               if (! isParentClass(Map.class, field.getType()))<a name="line.199"></a>
+<span class="sourceLineNo">199</span>               if (! pt[0].equals(String.class))<a name="line.199"></a>
 <span class="sourceLineNo">200</span>                  return false;<a name="line.200"></a>
 <span class="sourceLineNo">201</span>            } else {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>               if (! isParentClass(field.getType(), c))<a name="line.202"></a>
+<span class="sourceLineNo">202</span>               if (! isParentClass(pt[0], c))<a name="line.202"></a>
 <span class="sourceLineNo">203</span>                  return false;<a name="line.203"></a>
 <span class="sourceLineNo">204</span>            }<a name="line.204"></a>
 <span class="sourceLineNo">205</span>         }<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>         if (isDyna)<a name="line.207"></a>
-<span class="sourceLineNo">208</span>            rawTypeMeta = rawTypeMeta.getValueType();<a name="line.208"></a>
-<span class="sourceLineNo">209</span>         if (rawTypeMeta == null)<a name="line.209"></a>
-<span class="sourceLineNo">210</span>            return false;<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>         if (typeMeta == null)<a name="line.212"></a>
-<span class="sourceLineNo">213</span>            typeMeta = (swap != null ? swap.getSwapClassMeta(beanContext) : rawTypeMeta == null ? beanContext.object() : rawTypeMeta.getSerializedClassMeta());<a name="line.213"></a>
-<span class="sourceLineNo">214</span>         if (typeMeta == null)<a name="line.214"></a>
-<span class="sourceLineNo">215</span>            typeMeta = rawTypeMeta;<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>         return true;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      }<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>      /**<a name="line.220"></a>
-<span class="sourceLineNo">221</span>       * @return A new BeanPropertyMeta object using this builder.<a name="line.221"></a>
-<span class="sourceLineNo">222</span>       */<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      public BeanPropertyMeta build() {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>         return new BeanPropertyMeta(this);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      }<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>      private static PojoSwap getPropertyPojoSwap(BeanProperty p) throws Exception {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>         if (! p.format().isEmpty())<a name="line.228"></a>
-<span class="sourceLineNo">229</span>            return newInstance(PojoSwap.class, StringFormatSwap.class, p.format());<a name="line.229"></a>
-<span class="sourceLineNo">230</span>         Class&lt;?&gt; c = p.swap();<a name="line.230"></a>
-<span class="sourceLineNo">231</span>         if (c == Null.class)<a name="line.231"></a>
-<span class="sourceLineNo">232</span>            return null;<a name="line.232"></a>
-<span class="sourceLineNo">233</span>         if (isParentClass(PojoSwap.class, c))<a name="line.233"></a>
-<span class="sourceLineNo">234</span>            return newInstance(PojoSwap.class, c);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>         throw new RuntimeException("TODO - Surrogate swaps not yet supported.");<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>      BeanPropertyMeta.Builder setGetter(Method getter) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>         setAccessible(getter);<a name="line.239"></a>
-<span class="sourceLineNo">240</span>         this.getter = getter;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>         return this;<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>      BeanPropertyMeta.Builder setSetter(Method setter) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>         setAccessible(setter);<a name="line.245"></a>
-<span class="sourceLineNo">246</span>         this.setter = setter;<a name="line.246"></a>
-<span class="sourceLineNo">247</span>         return this;<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>      BeanPropertyMeta.Builder setField(Field field) {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>         setAccessible(field);<a name="line.251"></a>
-<span class="sourceLineNo">252</span>         this.field = field;<a name="line.252"></a>
-<span class="sourceLineNo">253</span>         return this;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      }<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>      BeanPropertyMeta.Builder setAsConstructorArg() {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>         this.isConstructorArg = true;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>         return this;<a name="line.258"></a>
+<span class="sourceLineNo">206</span>         if (field != null) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>            if (isDyna) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>               if (! isParentClass(Map.class, field.getType()))<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                  return false;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>            } else {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>               if (! isParentClass(field.getType(), c))<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                  return false;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>            }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         }<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>         if (isDyna)<a name="line.216"></a>
+<span class="sourceLineNo">217</span>            rawTypeMeta = rawTypeMeta.getValueType();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         if (rawTypeMeta == null)<a name="line.218"></a>
+<span class="sourceLineNo">219</span>            return false;<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>         if (typeMeta == null)<a name="line.221"></a>
+<span class="sourceLineNo">222</span>            typeMeta = (swap != null ? beanContext.getClassMeta(swap.getSwapClass()) : rawTypeMeta == null ? beanContext.object() : rawTypeMeta);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         if (typeMeta == null)<a name="line.223"></a>
+<span class="sourceLineNo">224</span>            typeMeta = rawTypeMeta;<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>         return true;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      }<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>      /**<a name="line.229"></a>
+<span class="sourceLineNo">230</span>       * @return A new BeanPropertyMeta object using this builder.<a name="line.230"></a>
+<span class="sourceLineNo">231</span>       */<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      public BeanPropertyMeta build() {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>         return new BeanPropertyMeta(this);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>      private static PojoSwap getPropertyPojoSwap(BeanProperty p) throws Exception {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         if (! p.format().isEmpty())<a name="line.237"></a>
+<span class="sourceLineNo">238</span>            return newInstance(PojoSwap.class, StringFormatSwap.class, p.format());<a name="line.238"></a>
+<span class="sourceLineNo">239</span>         return null;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>      private static PojoSwap getPropertyPojoSwap(Swap s) throws Exception {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         Class&lt;?&gt; c = s.value();<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         if (c == Null.class)<a name="line.244"></a>
+<span class="sourceLineNo">245</span>            c = s.impl();<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         if (c == Null.class)<a name="line.246"></a>
+<span class="sourceLineNo">247</span>            return null;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>         if (isParentClass(PojoSwap.class, c)) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>            PojoSwap ps = newInstance(PojoSwap.class, c);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>            if (ps.forMediaTypes() != null)<a name="line.250"></a>
+<span class="sourceLineNo">251</span>               throw new RuntimeException("TODO - Media types on swaps not yet supported on bean properties.");<a name="line.251"></a>
+<span class="sourceLineNo">252</span>            if (ps.withTemplate() != null)<a name="line.252"></a>
+<span class="sourceLineNo">253</span>               throw new RuntimeException("TODO - Templates on swaps not yet supported on bean properties.");<a name="line.253"></a>
+<span class="sourceLineNo">254</span>            return ps;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>         }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>         if (isParentClass(Surrogate.class, c))<a name="line.256"></a>
+<span class="sourceLineNo">257</span>            throw new RuntimeException("TODO - Surrogate swaps not yet supported on bean properties.");<a name="line.257"></a>
+<span class="sourceLineNo">258</span>         throw new FormattedRuntimeException("Invalid class used in @Swap annotation.  Must be a subclass of PojoSwap or Surrogate.", c);<a name="line.258"></a>
 <span class="sourceLineNo">259</span>      }<a name="line.259"></a>
 <span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>   }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>   /**<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    * Creates a new BeanPropertyMeta using the contents of the specified builder.<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    *<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    * @param b The builder to copy fields from.<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    */<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   protected BeanPropertyMeta(BeanPropertyMeta.Builder b) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      this.field = b.field;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      this.getter = b.getter;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      this.setter = b.setter;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      this.isUri = b.isUri;<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      this.beanMeta = b.beanMeta;<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      this.beanContext = b.beanContext;<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      this.name = b.name;<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      this.rawTypeMeta = b.rawTypeMeta;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      this.typeMeta = b.typeMeta;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      this.properties = b.properties;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      this.swap = b.swap;<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      this.beanRegistry = b.beanRegistry;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      this.overrideValue = b.overrideValue;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      this.delegateFor = b.delegateFor;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      this.extMeta = b.extMeta;<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      this.isDyna = b.isDyna;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>   /**<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    * Returns the name of this bean property.<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    *<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    * @return The name of the bean property.<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    */<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   public String getName() {<a name="line.292"></a>
-<span class="sourceLineNo">293</span>      return name;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>   }<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span>   /**<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    * Returns the bean meta that this property belongs to.<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    *<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    * @return The bean meta that this property belongs to.<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    */<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   @BeanIgnore<a name="line.301"></a>
-<span class="sourceLineNo">302</span>   public BeanMeta&lt;?&gt; getBeanMeta() {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      return beanMeta;<a name="line.303"></a>
-<span class="sourceLineNo">304</span>   }<a name="line.304"></a>
-<span class="sourceLineNo">305</span><a name="line.305"></a>
-<span class="sourceLineNo">306</span>   /**<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    * Returns the getter method for this property.<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    *<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    * @return The getter method for this bean property, or &lt;jk&gt;null&lt;/jk&gt; if there is no getter method.<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    */<a name="line.310"></a>
-<span class="sourceLineNo">311</span>   public Method getGetter() {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      return getter;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>   }<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span>   /**<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    * Returns the setter method for this property.<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    *<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    * @return The setter method for this bean property, or &lt;jk&gt;null&lt;/jk&gt; if there is no setter method.<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    */<a name="line.319"></a>
-<span class="sourceLineNo">320</span>   public Method getSetter() {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      return setter;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>   }<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>   /**<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    * Returns the field for this property.<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    *<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    * @return The field for this bean property, or &lt;jk&gt;null&lt;/jk&gt; if there is no field associated with this bean property.<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    */<a name="line.328"></a>
-<span class="sourceLineNo">329</span>   public Field getField() {<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      return field;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>   }<a name="line.331"></a>
-<span class="sourceLineNo">332</span><a name="line.332"></a>
-<span class="sourceLineNo">333</span>   /**<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    * Returns the {@link ClassMeta} of the class of this property.<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    *<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    * &lt;p&gt;<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    * If this property or the property type class has a {@link PojoSwap} associated with it, this method returns the<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    * transformed class meta.<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    * This matches the class type that is used by the {@link #get(BeanMap,String)} and<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    * {@link #set(BeanMap,String,Object)} methods.<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    *<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    * @return The {@link ClassMeta} of the class of this property.<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    */<a name="line.343"></a>
-<span class="sourceLineNo">344</span>   public ClassMeta&lt;?&gt; getClassMeta() {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      return typeMeta;<a name="line.345"></a>
-<span class="sourceLineNo">346</span>   }<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>   /**<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    * Returns the bean dictionary in use for this bean property.<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    *<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    * &lt;p&gt;<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    * The order of lookup for the dictionary is as follows:<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    * &lt;ol&gt;<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    *    &lt;li&gt;Dictionary defined via {@link BeanProperty#beanDictionary()}.<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    *    &lt;li&gt;Dictionary defined via {@link BeanContext#BEAN_beanDictionary} context property.<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    * &lt;/ol&gt;<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    *<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    * @return The bean dictionary in use for this bean property.  Never &lt;jk&gt;null&lt;/jk&gt;.<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    */<a name="line.359"></a>
-<span class="sourceLineNo">360</span>   public BeanRegistry getBeanRegistry() {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      return beanRegistry;<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>   /**<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    * Returns &lt;jk&gt;true&lt;/jk&gt; if this bean property is a URI.<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    *<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    * &lt;p&gt;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    * A bean property can be considered a URI if any of the following are true:<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    * &lt;ul&gt;<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    *    &lt;li&gt;Property class type is {@link URL} or {@link URI}.<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    *    &lt;li&gt;Property class type is annotated with {@link org.apache.juneau.annotation.URI}.<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    *    &lt;li&gt;Property getter, setter, or field is annotated with {@link org.apache.juneau.annotation.URI}.<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    * &lt;/ul&gt;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    *<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if this bean property is a URI.<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    */<a name="line.376"></a>
-<span class="sourceLineNo">377</span>   public boolean isUri() {<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      return isUri;<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   }<a name="line.379"></a>
-<span class="sourceLineNo">380</span><a name="line.380"></a>
-<span class="sourceLineNo">381</span>   /**<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    * Returns &lt;jk&gt;true&lt;/jk&gt; if this bean property is named &lt;js&gt;"*"&lt;/js&gt;.<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    *<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if this bean property is named &lt;js&gt;"*"&lt;/js&gt;.<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    */<a name="line.385"></a>
-<span class="sourceLineNo">386</span>   public boolean isDyna() {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      return isDyna;<a name="line.387"></a>
-<span class="sourceLineNo">388</span>   }<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>   /**<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    * Returns the override list of properties defined through a {@link BeanProperty#properties()} annotation<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    * on this property.<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    *<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    * @return The list of override properties, or &lt;jk&gt;null&lt;/jk&gt; if annotation not specified.<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    */<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   public String[] getProperties() {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      return properties;<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   }<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>   /**<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    * Returns the language-specified extended metadata on this bean property.<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    *<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    * @param c The name of the metadata class to create.<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    * @return Extended metadata on this bean property.  Never &lt;jk&gt;null&lt;/jk&gt;.<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    */<a name="line.405"></a>
-<span class="sourceLineNo">406</span>   public &lt;M extends BeanPropertyMetaExtended&gt; M getExtendedMeta(Class&lt;M&gt; c) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      if (delegateFor != null)<a name="line.407"></a>
-<span class="sourceLineNo">408</span>         return delegateFor.getExtendedMeta(c);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      return extMeta.get(c, this);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   }<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>   /**<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    * Equivalent to calling {@link BeanMap#get(Object)}, but is faster since it avoids looking up the property meta.<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    *<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    * @param m The bean map to get the transformed value from.<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    * @param pName The property name.<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    * @return The property value.<a name="line.417"></a>
+<span class="sourceLineNo">261</span>      BeanPropertyMeta.Builder setGetter(Method getter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         setAccessible(getter);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         this.getter = getter;<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         return this;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      }<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>      BeanPropertyMeta.Builder setSetter(Method setter) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>         setAccessible(setter);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>         this.setter = setter;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>         return this;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      }<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>      BeanPropertyMeta.Builder setField(Field field) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>         setAccessible(field);<a name="line.274"></a>
+<span class="sourceLineNo">275</span>         this.field = field;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>         return this;<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      }<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>      BeanPropertyMeta.Builder setAsConstructorArg() {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         this.isConstructorArg = true;<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         return this;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      }<a name="line.282"></a>
+<span class="sourceLineNo">283</span><a name="line.283"></a>
+<span class="sourceLineNo">284</span>   }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>   /**<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    * Creates a new BeanPropertyMeta using the contents of the specified builder.<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    *<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    * @param b The builder to copy fields from.<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    */<a name="line.290"></a>
+<span class="sourceLineNo">291</span>   protected BeanPropertyMeta(BeanPropertyMeta.Builder b) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      this.field = b.field;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      this.getter = b.getter;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      this.setter = b.setter;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      this.isUri = b.isUri;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      this.beanMeta = b.beanMeta;<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      this.beanContext = b.beanContext;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      this.name = b.name;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      this.rawTypeMeta = b.rawTypeMeta;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      this.typeMeta = b.typeMeta;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      this.properties = b.properties;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      this.swap = b.swap;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      this.beanRegistry = b.beanRegistry;<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      this.overrideValue = b.overrideValue;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      this.delegateFor = b.delegateFor;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      this.extMeta = b.extMeta;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      this.isDyna = b.isDyna;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>   }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span>   /**<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    * Returns the name of this bean property.<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    *<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    * @return The name of the bean property.<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    */<a name="line.314"></a>
+<span class="sourceLineNo">315</span>   public String getName() {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      return name;<a name="line.316"></a>
+<span class="sourceLineNo">317</span>   }<a name="line.317"></a>
+<span class="sourceLineNo">318</span><a name="line.318"></a>
+<span class="sourceLineNo">319</span>   /**<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    * Returns the bean meta that this property belongs to.<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    *<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    * @return The bean meta that this property belongs to.<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    */<a name="line.323"></a>
+<span class="sourceLineNo">324</span>   @BeanIgnore<a name="line.324"></a>
+<span class="sourceLineNo">325</span>   public BeanMeta&lt;?&gt; getBeanMeta() {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      return beanMeta;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>   }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>   /**<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    * Returns the getter method for this property.<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    *<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    * @return The getter method for this bean property, or &lt;jk&gt;null&lt;/jk&gt; if there is no getter method.<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    */<a name="line.333"></a>
+<span class="sourceLineNo">334</span>   public Method getGetter() {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      return getter;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>   }<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
+<span class="sourceLineNo">338</span>   /**<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    * Returns the setter method for this property.<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    *<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    * @return The setter method for this bean property, or &lt;jk&gt;null&lt;/jk&gt; if there is no setter method.<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    */<a name="line.342"></a>
+<span class="sourceLineNo">343</span>   public Method getSetter() {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      return setter;<a name="line.344"></a>
+<span class="sourceLineNo">345</span>   }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>   /**<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    * Returns the field for this property.<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    *<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    * @return The field for this bean property, or &lt;jk&gt;null&lt;/jk&gt; if there is no field associated with this bean property.<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    */<a name="line.351"></a>
+<span class="sourceLineNo">352</span>   public Field getField() {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      return field;<a name="line.353"></a>
+<span class="sourceLineNo">354</span>   }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>   /**<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    * Returns the {@link ClassMeta} of the class of this property.<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    *<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    * &lt;p&gt;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    * If this property or the property type class has a {@link PojoSwap} associated with it, this method returns the<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    * transformed class meta.<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    * This matches the class type that is used by the {@link #get(BeanMap,String)} and<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    * {@link #set(BeanMap,String,Object)} methods.<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    *<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    * @return The {@link ClassMeta} of the class of this property.<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    */<a name="line.366"></a>
+<span class="sourceLineNo">367</span>   public ClassMeta&lt;?&gt; getClassMeta() {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      return typeMeta;<a name="line.368"></a>
+<span class="sourceLineNo">369</span>   }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>   /**<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    * Returns the bean dictionary in use for this bean property.<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    *<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    * &lt;p&gt;<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    * The order of lookup for the dictionary is as follows:<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    * &lt;ol&gt;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    *    &lt;li&gt;Dictionary defined via {@link BeanProperty#beanDictionary()}.<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    *    &lt;li&gt;Dictionary defined via {@link BeanContext#BEAN_beanDictionary} context property.<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    * &lt;/ol&gt;<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    *<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    * @return The bean dictionary in use for this bean property.  Never &lt;jk&gt;null&lt;/jk&gt;.<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    */<a name="line.382"></a>
+<span class="sourceLineNo">383</span>   public BeanRegistry getBeanRegistry() {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      return beanRegistry;<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>   /**<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    * Returns &lt;jk&gt;true&lt;/jk&gt; if this bean property is a URI.<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    *<a name="line.389"></a>
+<span class="sourceLineNo">390</span>    * &lt;p&gt;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    * A bean property can be considered a URI if any of the following are true:<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    * &lt;ul&gt;<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    *    &lt;li&gt;Property class type is {@link URL} or {@link URI}.<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    *    &lt;li&gt;Property class type is annotated with {@link org.apache.juneau.annotation.URI}.<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    *    &lt;li&gt;Property getter, setter, or field is annotated with {@link org.apache.juneau.annotation.URI}.<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    * &lt;/ul&gt;<a name="line.396"></a>
+<span class="sourceLineNo">397</span>    *<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if this bean property is a URI.<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    */<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   public boolean isUri() {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      return isUri;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>   }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>   /**<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    * Returns &lt;jk&gt;true&lt;/jk&gt; if this bean property is named &lt;js&gt;"*"&lt;/js&gt;.<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    *<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if this bean property is named &lt;js&gt;"*"&lt;/js&gt;.<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    */<a name="line.408"></a>
+<span class="sourceLineNo">409</span>   public boolean isDyna() {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      return isDyna;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>   }<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>   /**<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    * Returns the override list of properties defined through a {@link BeanProperty#properties()} annotation<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    * on this property.<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    *<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    * @return The list of override properties, or &lt;jk&gt;null&lt;/jk&gt; if annotation not specified.<a name="line.417"></a>
 <span class="sourceLineNo">418</span>    */<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   public Object get(BeanMap&lt;?&gt; m, String pName) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      try {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>         if (overrideValue != null)<a name="line.421"></a>
-<span class="sourceLineNo">422</span>            return overrideValue;<a name="line.422"></a>
-<span class="sourceLineNo">423</span><a name="line.423"></a>
-<span class="sourceLineNo">424</span>         // Read-only beans have their properties stored in a cache until getBean() is called.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>         Object bean = m.bean;<a name="line.425"></a>
-<span class="sourceLineNo">426</span>         if (bean == null)<a name="line.426"></a>
-<span class="sourceLineNo">427</span>            return m.propertyCache.get(name);<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>         return toSerializedForm(m.getBeanSession(), getRaw(m, pName));<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span>      } catch (Throwable e) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>         if (beanContext.ignoreInvocationExceptionsOnGetters) {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>            if (rawTypeMeta.isPrimitive())<a name="line.433"></a>
-<span class="sourceLineNo">434</span>               return rawTypeMeta.getPrimitiveDefault();<a name="line.434"></a>
-<span class="sourceLineNo">435</span>            return null;<a name="line.435"></a>
-<span class="sourceLineNo">436</span>         }<a name="line.436"></a>
-<span class="sourceLineNo">437</span>         throw new BeanRuntimeException(beanMeta.c, "Exception occurred while getting property ''{0}''", name).initCause(e);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      }<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   }<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>   /**<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    * Equivalent to calling {@link BeanMap#getRaw(Object)}, but is faster since it avoids looking up the property meta.<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    *<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    * @param m The bean map to get the transformed value from.<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    * @param pName The property name.<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    * @return The raw property value.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    */<a name="line.447"></a>
-<span class="sourceLineNo">448</span>   public Object getRaw(BeanMap&lt;?&gt; m, String pName) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      try {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>         // Read-only beans have their properties stored in a cache until getBean() is called.<a name="line.450"></a>
-<span class="sourceLineNo">451</span>         Object bean = m.bean;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>         if (bean == null)<a name="line.452"></a>
-<span class="sourceLineNo">453</span>            return m.propertyCache.get(name);<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span>         return invokeGetter(bean, pName);<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>      } catch (Throwable e) {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>         if (beanContext.ignoreInvocationExceptionsOnGetters) {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>            if (rawTypeMeta.isPrimitive())<a name="line.459"></a>
-<span class="sourceLineNo">460</span>               return rawTypeMeta.getPrimitiveDefault();<a name="line.460"></a>
-<span class="sourceLineNo">461</span>            return null;<a name="line.461"></a>
-<span class="sourceLineNo">462</span>         }<a name="line.462"></a>
-<span class="sourceLineNo">463</span>         throw new BeanRuntimeException(beanMeta.c, "Exception occurred while getting property ''{0}''", name).initCause(e);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   }<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>   /**<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    * Converts a raw bean property value to serialized form.<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    * Applies transforms and child property filters.<a name="line.469"></a>
+<span class="sourceLineNo">419</span>   public String[] getProperties() {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      return properties;<a name="line.420"></a>
+<span class="sourceLineNo">421</span>   }<a name="line.421"></a>
+<span class="sourceLineNo">422</span><a name="line.422"></a>
+<span class="sourceLineNo">423</span>   /**<a name="line.423"></a>
+<span class="sourceLineNo">424</span>    * Returns the language-specified extended metadata on this bean property.<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    *<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    * @param c The name of the metadata class to create.<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    * @return Extended metadata on this bean property.  Never &lt;jk&gt;null&lt;/jk&gt;.<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    */<a name="line.428"></a>
+<span class="sourceLineNo">429</span>   public &lt;M extends BeanPropertyMetaExtended&gt; M getExtendedMeta(Class&lt;M&gt; c) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      if (delegateFor != null)<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         return delegateFor.getExtendedMeta(c);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      return extMeta.get(c, this);<a name="line.432"></a>
+<span class="sourceLineNo">433</span>   }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>   /**<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    * Equivalent to calling {@link BeanMap#get(Object)}, but is faster since it avoids looking up the property meta.<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    *<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    * @param m The bean map to get the transformed value from.<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    * @param pName The property name.<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    * @return The property value.<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    */<a name="line.441"></a>
+<span class="sourceLineNo">442</span>   public Object get(BeanMap&lt;?&gt; m, String pName) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      try {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>         if (overrideValue != null)<a name="line.444"></a>
+<span class="sourceLineNo">445</span>            return overrideValue;<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>         // Read-only beans have their properties stored in a cache until getBean() is called.<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         Object bean = m.bean;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         if (bean == null)<a name="line.449"></a>
+<span class="sourceLineNo">450</span>            return m.propertyCache.get(name);<a name="line.450"></a>
+<span class="sourceLineNo">451</span><a name="line.451"></a>
+<span class="sourceLineNo">452</span>         return toSerializedForm(m.getBeanSession(), getRaw(m, pName));<a name="line.452"></a>
+<span class="sourceLineNo">453</span><a name="line.453"></a>
+<span class="sourceLineNo">454</span>      } catch (Throwable e) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>         if (beanContext.ignoreInvocationExceptionsOnGetters) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>            if (rawTypeMeta.isPrimitive())<a name="line.456"></a>
+<span class="sourceLineNo">457</span>               return rawTypeMeta.getPrimitiveDefault();<a name="line.457"></a>
+<span class="sourceLineNo">458</span>            return null;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>         }<a name="line.459"></a>
+<span class="sourceLineNo">460</span>         throw new BeanRuntimeException(beanMeta.c, "Exception occurred while getting property ''{0}''", name).initCause(e);<a name="line.460"></a>
+<span class="sourceLineNo">461</span>      }<a name="line.461"></a>
+<span class="sourceLineNo">462</span>   }<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>   /**<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    * Equivalent to calling {@link BeanMap#getRaw(Object)}, but is faster since it avoids looking up the property meta.<a name="line.465"></a>
+<span class="sourceLineNo">466</span>    *<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    * @param m The bean map to get the transformed value from.<a name="line.467"></a>
+<span class="sourceLineNo">468</span>    * @param pName The property name.<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    * @return The raw property value.<a name="line.469"></a>
 <span class="sourceLineNo">470</span>    */<a name="line.470"></a>
-<span class="sourceLineNo">471</span>   final Object toSerializedForm(BeanSession session, Object o) {<a name="line.471"></a>
+<span class="sourceLineNo">471</span>   public Object getRaw(BeanMap&lt;?&gt; m, String pName) {<a name="line.471"></a>
 <span class="sourceLineNo">472</span>      try {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>         o = transform(session, o);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>         if (o == null)<a name="line.474"></a>
-<span class="sourceLineNo">475</span>            return null;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>         if (properties != null) {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>            if (rawTypeMeta.isArray()) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>               Object[] a = (Object[])o;<a name="line.478"></a>
-<span class="sourceLineNo">479</span>               List l = new DelegateList(rawTypeMeta);<a name="line.479"></a>
-<span class="sourceLineNo">480</span>               ClassMeta childType = rawTypeMeta.getElementType();<a name="line.480"></a>
-<span class="sourceLineNo">481</span>               for (Object c : a)<a name="line.481"></a>
-<span class="sourceLineNo">482</span>                  l.add(applyChildPropertiesFilter(session, childType, c));<a name="line.482"></a>
-<span class="sourceLineNo">483</span>               return l;<a name="line.483"></a>
-<span class="sourceLineNo">484</span>            } else if (rawTypeMeta.isCollection()) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>               Collection c = (Collection)o;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>               List l = new ArrayList(c.size());<a name="line.486"></a>
-<span class="sourceLineNo">487</span>               ClassMeta childType = rawTypeMeta.getElementType();<a name="line.487"></a>
-<span class="sourceLineNo">488</span>               for (Object cc : c)<a name="line.488"></a>
-<span class="sourceLineNo">489</span>                  l.add(applyChildPropertiesFilter(session, childType, cc));<a name="line.489"></a>
-<span class="sourceLineNo">490</span>               return l;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>            } else {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>               return applyChildPropertiesFilter(session, rawTypeMeta, o);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>            }<a name="line.493"></a>
-<span class="sourceLineNo">494</span>         }<a name="line.494"></a>
-<span class="sourceLineNo">495</span>         return o;<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      } catch (SerializeException e) {<a name="line.496"></a>
-<span class="sourceLineNo">497</span>         throw new BeanRuntimeException(e);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      }<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>   /**<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    * Equivalent to calling {@link BeanMap#put(String, Object)}, but is faster since it avoids looking up the property<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    * meta.<a name="line.503"></a>
-<span class="sourceLineNo">504</span>    *<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    * @param m The bean map to set the property value on.<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    * @param pName The property name.<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    * @param value The value to set.<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    * @return The previous property value.<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    * @throws BeanRuntimeException If property could not be set.<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    */<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   public Object set(BeanMap&lt;?&gt; m, String pName, Object value) throws BeanRuntimeException {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      try {<a name="line.512"></a>
-<span class="sourceLineNo">513</span><a name="line.513"></a>
-<span class="sourceLineNo">514</span>         BeanSession session = m.getBeanSession();<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span>         // Convert to raw form.<a name="line.516"></a>
-<span class="sourceLineNo">517</span>         value = unswap(session, value);<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>         if (m.bean == null) {<a name="line.519"></a>
-<span class="sourceLineNo">520</span><a name="line.520"></a>
-<span class="sourceLineNo">521</span>            // Read-only beans get their properties stored in a cache.<a name="line.521"></a>
-<span class="sourceLineNo">522</span>            if (m.propertyCache != null)<a name="line.522"></a>
-<span class="sourceLineNo">523</span>               return m.propertyCache.put(name, value);<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>            throw new BeanRuntimeException("Non-existent bean instance on bean.");<a name="line.525"></a>
-<span class="sourceLineNo">526</span>         }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>         boolean isMap = rawTypeMeta.isMap();<a name="line.528"></a>
-<span class="sourceLineNo">529</span>         boolean isCollection = rawTypeMeta.isCollection();<a name="line.529"></a>
-<span class="sourceLineNo">530</span><a name="line.530"></a>
-<span class="sourceLineNo">531</span>         if ((! isDyna) &amp;&amp; field == null &amp;&amp; setter == null &amp;&amp; ! (isMap || isCollection)) {<a name="line.531"></a>
-<span class="sourceLineNo">532</span>            if ((value == null &amp;&amp; beanContext.ignoreUnknownNullBeanProperties) || beanContext.ignorePropertiesWithoutSetters)<a name="line.532"></a>
-<span class="sourceLineNo">533</span>               return null;<a name="line.533"></a>
-<span class="sourceLineNo">534</span>            throw new BeanRuntimeException(beanMeta.c, "Setter or public field not defined on property ''{0}''", name);<a name="line.534"></a>
-<span class="sourceLineNo">535</span>         }<a name="line.535"></a>
+<span class="sourceLineNo">473</span>         // Read-only beans have their properties stored in a cache until getBean() is called.<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         Object bean = m.bean;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>         if (bean == null)<a name="line.475"></a>
+<span class="sourceLineNo">476</span>            return m.propertyCache.get(name);<a name="line.476"></a>
+<span class="sourceLineNo">477</span><a name="line.477"></a>
+<span class="sourceLineNo">478</span>         return invokeGetter(bean, pName);<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>      } catch (Throwable e) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         if (beanContext.ignoreInvocationExceptionsOnGetters) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>            if (rawTypeMeta.isPrimitive())<a name="line.482"></a>
+<span class="sourceLineNo">483</span>               return rawTypeMeta.getPrimitiveDefault();<a name="line.483"></a>
+<span class="sourceLineNo">484</span>            return null;<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         throw new BeanRuntimeException(beanMeta.c, "Exception occurred while getting property ''{0}''", name).initCause(e);<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      }<a name="line.487"></a>
+<span class="sourceLineNo">488</span>   }<a name="line.488"></a>
+<span class="sourceLineNo">489</span><a name="line.489"></a>
+<span class="sourceLineNo">490</span>   /**<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    * Converts a raw bean property value to serialized form.<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    * Applies transforms and child property filters.<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    */<a name="line.493"></a>
+<span class="sourceLineNo">494</span>   final Object toSerializedForm(BeanSession session, Object o) {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>      try {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>         o = transform(session, o);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>         if (o == null)<a name="line.497"></a>
+<span class="sourceLineNo">498</span>            return null;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         if (properties != null) {<a name="line.499"></a>
+<span class="sourceLineNo">500</span>            if (rawTypeMeta.isArray()) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>               Object[] a = (Object[])o;<a name="line.501"></a>
+<span class="sourceLineNo">502</span>               List l = new DelegateList(rawTypeMeta);<a name="line.502"></a>
+<span class="sourceLineNo">503</span>               ClassMeta childType = rawTypeMeta.getElementType();<a name="line.503"></a>
+<span class="sourceLineNo">504</span>               for (Object c : a)<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                  l.add(applyChildPropertiesFilter(session, childType, c));<a name="line.505"></a>
+<span class="sourceLineNo">506</span>               return l;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>            } else if (rawTypeMeta.isCollection()) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>               Collection c = (Collection)o;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>               List l = new ArrayList(c.size());<a name="line.509"></a>
+<span class="sourceLineNo">510</span>               ClassMeta childType = rawTypeMeta.getElementType();<a name="line.510"></a>
+<span class="sourceLineNo">511</span>               for (Object cc : c)<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                  l.add(applyChildPropertiesFilter(session, childType, cc));<a name="line.512"></a>
+<span class="sourceLineNo">513</span>               return l;<a name="line.513"></a>
+<span class="sourceLineNo">514</span>            } else {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>               return applyChildPropertiesFilter(session, rawTypeMeta, o);<a name="line.515"></a>
+<span class="sourceLineNo">516</span>            }<a name="line.516"></a>
+<span class="sourceLineNo">517</span>         }<a name="line.517"></a>
+<span class="sourceLineNo">518</span>         return o;<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      } catch (SerializeException e) {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>         throw new BeanRuntimeException(e);<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      }<a name="line.521"></a>
+<span class="sourceLineNo">522</span>   }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span>   /**<a name="line.524"></a>
+<span class="sourceLineNo">525</span>    * Equivalent to calling {@link BeanMap#put(String, Object)}, but is faster since it avoids looking up the property<a name="line.525"></a>
+<span class="sourceLineNo">526</span>    * meta.<a name="line.526"></a>
+<span class="sourceLineNo">527</span>    *<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    * @param m The bean map to set the property value on.<a name="line.528"></a>
+<span class="sourceLineNo">529</span>    * @param pName The property name.<a name="line.529"></a>
+<span class="sourceLineNo">530</span>    * @param value The value to set.<a name="line.530"></a>
+<span class="sourceLineNo">531</span>    * @return The previous property value.<a name="line.531"></a>
+<span class="sourceLineNo">532</span>    * @throws BeanRuntimeException If property could not be set.<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    */<a name="line.533"></a>
+<span class="sourceLineNo">534</span>   public Object set(BeanMap&lt;?&gt; m, String pName, Object value) throws BeanRuntimeException {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>      try {<a name="line.535"></a>
 <span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>         Object bean = m.getBean(true);  // Don't use getBean() because it triggers array creation!<a name="line.537"></a>
+<span class="sourceLineNo">537</span>         BeanSession session = m.getBeanSession();<a name="line.537"></a>
 <span class="sourceLineNo">538</span><a name="line.538"></a>
-<span class="sourceLineNo">539</span>         try {<a name="line.539"></a>
-<span class="sourceLineNo">540</span><a name="line.540"></a>
-<span class="sourceLineNo">541</span>            Object r = beanContext.beanMapPutReturnsOldValue || isMap || isCollection ? get(m, pName) : null;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>            Class&lt;?&gt; propertyClass = rawTypeMeta.getInnerClass();<a name="line.542"></a>
+<span class="sourceLineNo">539</span>         // Convert to raw form.<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         value = unswap(session, value);<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>         if (m.bean == null) {<a name="line.542"></a>
 <span class="sourceLineNo">543</span><a name="line.543"></a>
-<span class="sourceLineNo">544</span>            if (value == null &amp;&amp; (isMap || isCollection)) {<a name="line.544"></a>
-<span class="sourceLineNo">545</span>               invokeSetter(bean, pName, null);<a name="line.545"></a>
-<span class="sourceLineNo">546</span>               return r;<a name="line.546"></a>
-<span class="sourceLineNo">547</span>            }<a name="line.547"></a>
-<span class="sourceLineNo">548</span><a name="line.548"></a>
-<span class="sourceLineNo">549</span>            if (isMap) {<a name="line.549"></a>
+<span class="sourceLineNo">544</span>            // Read-only beans get their properties stored in a cache.<a name="line.544"></a>
+<span class="sourceLineNo">545</span>            if (m.propertyCache != null)<a name="line.545"></a>
+<span class="sourceLineNo">546</span>               return m.propertyCache.put(name, value);<a name="line.546"></a>
+<span class="sourceLineNo">547</span><a name="line.547"></a>
+<span class="sourceLineNo">548</span>            throw new BeanRuntimeException("Non-existent bean instance on bean.");<a name="line.548"></a>
+<span class="sourceLineNo">549</span>         }<a name="line.549"></a>
 <span class="sourceLineNo">550</span><a name="line.550"></a>
-<span class="sourceLineNo">551</span>               if (! (value instanceof Map)) {<a name="line.551"></a>
-<span class="sourceLineNo">552</span>                  if (value instanceof CharSequence)<a name="line.552"></a>
-<span class="sourceLineNo">553</span>                     value = new ObjectMap((CharSequence)value).setBeanSession(session);<a name="line.553"></a>
-<span class="sourceLineNo">554</span>                  else<a name="line.554"></a>
-<span class="sourceLineNo">555</span>                     throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}''", name, propertyClass.getName(), findClassName(value));<a name="line.555"></a>
-<span class="sourceLineNo">556</span>               }<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>               Map valueMap = (Map)value;<a name="line.558"></a>
-<span class="sourceLineNo">559</span>               Map propMap = (Map)r;<a name="line.559"></a>
-<span class="sourceLineNo">560</span>               ClassMeta&lt;?&gt; valueType = rawTypeMeta.getValueType();<a name="line.560"></a>
+<span class="sourceLineNo">551</span>         boolean isMap = rawTypeMeta.isMap();<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         boolean isCollection = rawTypeMeta.isCollection();<a name="line.552"></a>
+<span class="sourceLineNo">553</span><a name="line.553"></a>
+<span class="sourceLineNo">554</span>         if ((! isDyna) &amp;&amp; field == null &amp;&amp; setter == null &amp;&amp; ! (isMap || isCollection)) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>            if ((value == null &amp;&amp; beanContext.ignoreUnknownNullBeanProperties) || beanContext.ignorePropertiesWithoutSetters)<a name="line.555"></a>
+<span class="sourceLineNo">556</span>               return null;<a name="line.556"></a>
+<span class="sourceLineNo">557</span>            throw new BeanRuntimeException(beanMeta.c, "Setter or public field not defined on property ''{0}''", name);<a name="line.557"></a>
+<span class="sourceLineNo">558</span>         }<a name="line.558"></a>
+<span class="sourceLineNo">559</span><a name="line.559"></a>
+<span class="sourceLineNo">560</span>         Object bean = m.getBean(true);  // Don't use getBean() because it triggers array creation!<a name="line.560"></a>
 <span class="sourceLineNo">561</span><a name="line.561"></a>
-<span class="sourceLineNo">562</span>               // If the property type is abstract, then we either need to reuse the existing<a name="line.562"></a>
-<span class="sourceLineNo">563</span>               // map (if it's not null), or try to assign the value directly.<a name="line.563"></a>
-<span class="sourceLineNo">564</span>               if (! rawTypeMeta.canCreateNewInstance()) {<a name="line.564"></a>
-<span class="sourceLineNo">565</span>                  if (propMap == null) {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>                     if (setter == null &amp;&amp; field == null)<a name="line.566"></a>
-<span class="sourceLineNo">567</span>                        throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter or public field is defined, and the current value is null", name, propertyClass.getName(), findClassName(value));<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>                     if (propertyClass.isInstance(valueMap)) {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>                        if (! valueType.isObject()) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>                           for (Map.Entry e : (Set&lt;Map.Entry&gt;)valueMap.entrySet()) {<a name="line.571"></a>
-<span class="sourceLineNo">572</span>                              Object v = e.getValue();<a name="line.572"></a>
-<span class="sourceLineNo">573</span>                              if (v != null &amp;&amp; ! valueType.getInnerClass().isInstance(v))<a name="line.573"></a>
-<span class="sourceLineNo">574</span>                                 throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because the value types in the assigned map do not match the specified ''elementClass'' attribute on the property, and the property value is currently null", name, propertyClass.getName(), findClassName(value));<a name="line.574"></a>
-<span class="sourceLineNo">575</span>                           }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>                        }<a name="line.576"></a>
-<span class="sourceLineNo">577</span>                        invokeSetter(bean, pName, valueMap);<a name="line.577"></a>
-<span class="sourceLineNo">578</span>                        return r;<a name="line.578"></a>
-<span class="sourceLineNo">579</span>                     }<a name="line.579"></a>
-<span class="sourceLineNo">580</span>                     throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{2}'' to object of type ''{2}'' because the assigned map cannot be converted to the specified type because the property type is abstract, and the property value is currently null", name, propertyClass.getName(), findClassName(value));<a name="line.580"></a>
-<span class="sourceLineNo">581</span>                  }<a name="line.581"></a>
-<span class="sourceLineNo">582</span>               } else {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>                  if (propMap == null) {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>                     propMap = newInstance(Map.class, propertyClass);<a name="line.584"></a>
-<span class="sourceLineNo">585</span>                  } else {<a name="line.585"></a>
-<span class="sourceLineNo">586</span>                     propMap.clear();<a name="line.586"></a>
-<span class="sourceLineNo">587</span>                  }<a name="line.587"></a>
-<span class="sourceLineNo">588</span>               }<a name="line.588"></a>
-<span class="sourceLineNo">589</span><a name="line.589"></a>
-<span class="sourceLineNo">590</span>               // Set the values.<a name="line.590"></a>
-<span class="sourceLineNo">591</span>               for (Map.Entry e : (Set&lt;Map.Entry&gt;)valueMap.entrySet()) {<a name="line.591"></a>
-<span class="sourceLineNo">592</span>                  Object k = e.getKey();<a name="line.592"></a>
-<span class="sourceLineNo">593</span>                  Object v = e.getValue();<a name="line.593"></a>
-<span class="sourceLineNo">594</span>                  if (! valueType.isObject())<a name="line.594"></a>
-<span class="sourceLineNo">595</span>                     v = session.convertToType(v, valueType);<a name="line.595"></a>
-<span class="sourceLineNo">596</span>                  propMap.put(k, v);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>               }<a name="line.597"></a>
-<span class="sourceLineNo">598</span>               if (setter != null || field != null)<a name="line.598"></a>
-<span class="sourceLineNo">599</span>                  invokeSetter(bean, pName, propMap);<a name="line.599"></a>
-<span class="sourceLineNo">600</span><a name="line.600"></a>
-<span class="sourceLineNo">601</span>            } else if (isCollection) {<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
-<span class="sourceLineNo">603</span>               if (! (value instanceof Collection)) {<a name="line.603"></a>
-<span class="sourceLineNo">604</span>                  if (value instanceof CharSequence)<a name="line.604"></a>
-<span class="sourceLineNo">605</span>                     value = new ObjectList((CharSequence)value).setBeanSession(session);<a name="line.605"></a>
-<span class="sourceLineNo">606</span>                  else<a name="line.606"></a>
-<span class="sourceLineNo">607</span>                     throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}''", name, propertyClass.getName(), findClassName(value));<a name="line.607"></a>
-<span class="sourceLineNo">608</span>               }<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>               Collection valueList = (Collection)value;<a name="line.610"></a>
-<span class="sourceLineNo">611</span>               Collection propList = (Collection)r;<a name="line.611"></a>
-<span class="sourceLineNo">612</span>                  ClassMeta elementType = rawTypeMeta.getElementType();<a name="line.612"></a>
-<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span>               // If the property type is abstract, then we either need to reuse the existing<a name="line.614"></a>
-<span class="sourceLineNo">615</span>               // collection (if it's not null), or try to assign the value directly.<a name="line.615"></a>
-<span class="sourceLineNo">616</span>               if (! rawTypeMeta.canCreateNewInstance()) {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>                  if (propList == null) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>                     if (setter == null &amp;&amp; field == null)<a name="line.618"></a>
-<span class="sourceLineNo">619</span>                   

<TRUNCATED>


[23/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/BeanContext.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/BeanContext.html b/content/site/apidocs/src-html/org/apache/juneau/BeanContext.html
index 5d2e3c8..4000c8c 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/BeanContext.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/BeanContext.html
@@ -652,1136 +652,1146 @@
 <span class="sourceLineNo">644</span>    *    &lt;li&gt;Subclasses of {@link PojoSwap}.<a name="line.644"></a>
 <span class="sourceLineNo">645</span>    *    &lt;li&gt;Surrogate classes.  A shortcut for defining a {@link SurrogateSwap}.<a name="line.645"></a>
 <span class="sourceLineNo">646</span>    * &lt;/ul&gt;<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    */<a name="line.647"></a>
-<span class="sourceLineNo">648</span>   public static final String BEAN_pojoSwaps = "BeanContext.pojoSwaps.list";<a name="line.648"></a>
-<span class="sourceLineNo">649</span><a name="line.649"></a>
-<span class="sourceLineNo">650</span>   /**<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Add to POJO swap classes.<a name="line.651"></a>
+<span class="sourceLineNo">647</span>    *<a name="line.647"></a>
+<span class="sourceLineNo">648</span>    * &lt;p&gt;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>    * Multiple POJO swaps can be associated with a single class.<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    * When multiple swaps are applicable to the same class, the media type pattern defined by<a name="line.650"></a>
+<span class="sourceLineNo">651</span>    * {@link PojoSwap#forMediaTypes()} or {@link Swap#mediaTypes()} are used to come up with the best match.<a name="line.651"></a>
 <span class="sourceLineNo">652</span>    */<a name="line.652"></a>
-<span class="sourceLineNo">653</span>   public static final String BEAN_pojoSwaps_add = "BeanContext.pojoSwaps.list.add";<a name="line.653"></a>
+<span class="sourceLineNo">653</span>   public static final String BEAN_pojoSwaps = "BeanContext.pojoSwaps.list";<a name="line.653"></a>
 <span class="sourceLineNo">654</span><a name="line.654"></a>
 <span class="sourceLineNo">655</span>   /**<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Remove from POJO swap classes.<a name="line.656"></a>
+<span class="sourceLineNo">656</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Add to POJO swap classes.<a name="line.656"></a>
 <span class="sourceLineNo">657</span>    */<a name="line.657"></a>
-<span class="sourceLineNo">658</span>   public static final String BEAN_pojoSwaps_remove = "BeanContext.pojoSwaps.list.remove";<a name="line.658"></a>
+<span class="sourceLineNo">658</span>   public static final String BEAN_pojoSwaps_add = "BeanContext.pojoSwaps.list.add";<a name="line.658"></a>
 <span class="sourceLineNo">659</span><a name="line.659"></a>
 <span class="sourceLineNo">660</span>   /**<a name="line.660"></a>
-<span class="sourceLineNo">661</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Implementation classes for interfaces and abstract classes.<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    *<a name="line.662"></a>
-<span class="sourceLineNo">663</span>    * &lt;ul&gt;<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.implClasses.map"&lt;/js&gt;<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;Map&amp;lt;Class,Class&amp;gt;&lt;/code&gt;<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; empty map<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;false&lt;/jk&gt;<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    * &lt;/ul&gt;<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    *<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    * &lt;p&gt;<a name="line.670"></a>
-<span class="sourceLineNo">671</span>    * For interfaces and abstract classes this method can be used to specify an implementation class for the<a name="line.671"></a>
-<span class="sourceLineNo">672</span>    * interface/abstract class so that instances of the implementation class are used when instantiated (e.g. during a<a name="line.672"></a>
-<span class="sourceLineNo">673</span>    * parse).<a name="line.673"></a>
-<span class="sourceLineNo">674</span>    */<a name="line.674"></a>
-<span class="sourceLineNo">675</span>   public static final String BEAN_implClasses = "BeanContext.implClasses.map";<a name="line.675"></a>
-<span class="sourceLineNo">676</span><a name="line.676"></a>
-<span class="sourceLineNo">677</span>   /**<a name="line.677"></a>
-<span class="sourceLineNo">678</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Add an implementation class.<a name="line.678"></a>
+<span class="sourceLineNo">661</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Remove from POJO swap classes.<a name="line.661"></a>
+<span class="sourceLineNo">662</span>    */<a name="line.662"></a>
+<span class="sourceLineNo">663</span>   public static final String BEAN_pojoSwaps_remove = "BeanContext.pojoSwaps.list.remove";<a name="line.663"></a>
+<span class="sourceLineNo">664</span><a name="line.664"></a>
+<span class="sourceLineNo">665</span>   /**<a name="line.665"></a>
+<span class="sourceLineNo">666</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Implementation classes for interfaces and abstract classes.<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    *<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    * &lt;ul&gt;<a name="line.668"></a>
+<span class="sourceLineNo">669</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.implClasses.map"&lt;/js&gt;<a name="line.669"></a>
+<span class="sourceLineNo">670</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;Map&amp;lt;Class,Class&amp;gt;&lt;/code&gt;<a name="line.670"></a>
+<span class="sourceLineNo">671</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; empty map<a name="line.671"></a>
+<span class="sourceLineNo">672</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;false&lt;/jk&gt;<a name="line.672"></a>
+<span class="sourceLineNo">673</span>    * &lt;/ul&gt;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    *<a name="line.674"></a>
+<span class="sourceLineNo">675</span>    * &lt;p&gt;<a name="line.675"></a>
+<span class="sourceLineNo">676</span>    * For interfaces and abstract classes this method can be used to specify an implementation class for the<a name="line.676"></a>
+<span class="sourceLineNo">677</span>    * interface/abstract class so that instances of the implementation class are used when instantiated (e.g. during a<a name="line.677"></a>
+<span class="sourceLineNo">678</span>    * parse).<a name="line.678"></a>
 <span class="sourceLineNo">679</span>    */<a name="line.679"></a>
-<span class="sourceLineNo">680</span>   public static final String BEAN_implClasses_put = "BeanContext.implClasses.map.put";<a name="line.680"></a>
+<span class="sourceLineNo">680</span>   public static final String BEAN_implClasses = "BeanContext.implClasses.map";<a name="line.680"></a>
 <span class="sourceLineNo">681</span><a name="line.681"></a>
 <span class="sourceLineNo">682</span>   /**<a name="line.682"></a>
-<span class="sourceLineNo">683</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Explicitly specify visible bean properties.<a name="line.683"></a>
-<span class="sourceLineNo">684</span>    *<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    * &lt;ul&gt;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.includeProperties"&lt;/js&gt;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;Map&amp;lt;String,String&amp;gt;&lt;/code&gt;<a name="line.687"></a>
-<span class="sourceLineNo">688</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; &lt;code&gt;{}&lt;/code&gt;<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;false&lt;/jk&gt;<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    * &lt;/ul&gt;<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    *<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    * &lt;p&gt;<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    * Specifies to only include the specified list of properties for the specified bean classes.<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    *<a name="line.694"></a>
-<span class="sourceLineNo">695</span>    * &lt;p&gt;<a name="line.695"></a>
-<span class="sourceLineNo">696</span>    * The keys are either fully-qualified or simple class names, and the values are comma-delimited lists of property<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    * names.<a name="line.697"></a>
-<span class="sourceLineNo">698</span>    * The key &lt;js&gt;"*"&lt;/js&gt; means all bean classes.<a name="line.698"></a>
+<span class="sourceLineNo">683</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Add an implementation class.<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    */<a name="line.684"></a>
+<span class="sourceLineNo">685</span>   public static final String BEAN_implClasses_put = "BeanContext.implClasses.map.put";<a name="line.685"></a>
+<span class="sourceLineNo">686</span><a name="line.686"></a>
+<span class="sourceLineNo">687</span>   /**<a name="line.687"></a>
+<span class="sourceLineNo">688</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Explicitly specify visible bean properties.<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    *<a name="line.689"></a>
+<span class="sourceLineNo">690</span>    * &lt;ul&gt;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.includeProperties"&lt;/js&gt;<a name="line.691"></a>
+<span class="sourceLineNo">692</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;Map&amp;lt;String,String&amp;gt;&lt;/code&gt;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; &lt;code&gt;{}&lt;/code&gt;<a name="line.693"></a>
+<span class="sourceLineNo">694</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;false&lt;/jk&gt;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>    * &lt;/ul&gt;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    *<a name="line.696"></a>
+<span class="sourceLineNo">697</span>    * &lt;p&gt;<a name="line.697"></a>
+<span class="sourceLineNo">698</span>    * Specifies to only include the specified list of properties for the specified bean classes.<a name="line.698"></a>
 <span class="sourceLineNo">699</span>    *<a name="line.699"></a>
 <span class="sourceLineNo">700</span>    * &lt;p&gt;<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    * For example, &lt;code&gt;{Bean1:&lt;js&gt;'foo,bar'&lt;/js&gt;}&lt;/code&gt; means only serialize the &lt;code&gt;foo&lt;/code&gt; and<a name="line.701"></a>
-<span class="sourceLineNo">702</span>    * &lt;code&gt;bar&lt;/code&gt; properties on the specified bean.<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    *<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    * &lt;p&gt;<a name="line.704"></a>
-<span class="sourceLineNo">705</span>    * Setting applies to specified class and all subclasses.<a name="line.705"></a>
-<span class="sourceLineNo">706</span>    */<a name="line.706"></a>
-<span class="sourceLineNo">707</span>   public static final String BEAN_includeProperties = "BeanContext.includeProperties.map";<a name="line.707"></a>
-<span class="sourceLineNo">708</span><a name="line.708"></a>
-<span class="sourceLineNo">709</span>   /**<a name="line.709"></a>
-<span class="sourceLineNo">710</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Explicitly specify visible bean properties.<a name="line.710"></a>
+<span class="sourceLineNo">701</span>    * The keys are either fully-qualified or simple class names, and the values are comma-delimited lists of property<a name="line.701"></a>
+<span class="sourceLineNo">702</span>    * names.<a name="line.702"></a>
+<span class="sourceLineNo">703</span>    * The key &lt;js&gt;"*"&lt;/js&gt; means all bean classes.<a name="line.703"></a>
+<span class="sourceLineNo">704</span>    *<a name="line.704"></a>
+<span class="sourceLineNo">705</span>    * &lt;p&gt;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>    * For example, &lt;code&gt;{Bean1:&lt;js&gt;'foo,bar'&lt;/js&gt;}&lt;/code&gt; means only serialize the &lt;code&gt;foo&lt;/code&gt; and<a name="line.706"></a>
+<span class="sourceLineNo">707</span>    * &lt;code&gt;bar&lt;/code&gt; properties on the specified bean.<a name="line.707"></a>
+<span class="sourceLineNo">708</span>    *<a name="line.708"></a>
+<span class="sourceLineNo">709</span>    * &lt;p&gt;<a name="line.709"></a>
+<span class="sourceLineNo">710</span>    * Setting applies to specified class and all subclasses.<a name="line.710"></a>
 <span class="sourceLineNo">711</span>    */<a name="line.711"></a>
-<span class="sourceLineNo">712</span>   public static final String BEAN_includeProperties_put = "BeanContext.includeProperties.map.put";<a name="line.712"></a>
+<span class="sourceLineNo">712</span>   public static final String BEAN_includeProperties = "BeanContext.includeProperties.map";<a name="line.712"></a>
 <span class="sourceLineNo">713</span><a name="line.713"></a>
 <span class="sourceLineNo">714</span>   /**<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Exclude specified properties from beans.<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    *<a name="line.716"></a>
-<span class="sourceLineNo">717</span>    * &lt;ul&gt;<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.excludeProperties"&lt;/js&gt;<a name="line.718"></a>
-<span class="sourceLineNo">719</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;Map&amp;lt;String,String&amp;gt;&lt;/code&gt;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; &lt;code&gt;{}&lt;/code&gt;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;false&lt;/jk&gt;<a name="line.721"></a>
-<span class="sourceLineNo">722</span>    * &lt;/ul&gt;<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    *<a name="line.723"></a>
-<span class="sourceLineNo">724</span>    * &lt;p&gt;<a name="line.724"></a>
-<span class="sourceLineNo">725</span>    * Specifies to exclude the specified list of properties for the specified bean class.<a name="line.725"></a>
-<span class="sourceLineNo">726</span>    *<a name="line.726"></a>
-<span class="sourceLineNo">727</span>    * &lt;p&gt;<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    * The keys are either fully-qualified or simple class names, and the values are comma-delimited lists of property<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    * names.<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    * The key &lt;js&gt;"*"&lt;/js&gt; means all bean classes.<a name="line.730"></a>
+<span class="sourceLineNo">715</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Explicitly specify visible bean properties.<a name="line.715"></a>
+<span class="sourceLineNo">716</span>    */<a name="line.716"></a>
+<span class="sourceLineNo">717</span>   public static final String BEAN_includeProperties_put = "BeanContext.includeProperties.map.put";<a name="line.717"></a>
+<span class="sourceLineNo">718</span><a name="line.718"></a>
+<span class="sourceLineNo">719</span>   /**<a name="line.719"></a>
+<span class="sourceLineNo">720</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Exclude specified properties from beans.<a name="line.720"></a>
+<span class="sourceLineNo">721</span>    *<a name="line.721"></a>
+<span class="sourceLineNo">722</span>    * &lt;ul&gt;<a name="line.722"></a>
+<span class="sourceLineNo">723</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.excludeProperties"&lt;/js&gt;<a name="line.723"></a>
+<span class="sourceLineNo">724</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;Map&amp;lt;String,String&amp;gt;&lt;/code&gt;<a name="line.724"></a>
+<span class="sourceLineNo">725</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; &lt;code&gt;{}&lt;/code&gt;<a name="line.725"></a>
+<span class="sourceLineNo">726</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;false&lt;/jk&gt;<a name="line.726"></a>
+<span class="sourceLineNo">727</span>    * &lt;/ul&gt;<a name="line.727"></a>
+<span class="sourceLineNo">728</span>    *<a name="line.728"></a>
+<span class="sourceLineNo">729</span>    * &lt;p&gt;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>    * Specifies to exclude the specified list of properties for the specified bean class.<a name="line.730"></a>
 <span class="sourceLineNo">731</span>    *<a name="line.731"></a>
 <span class="sourceLineNo">732</span>    * &lt;p&gt;<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    * For example, &lt;code&gt;{Bean1:&lt;js&gt;'foo,bar'&lt;/js&gt;}&lt;/code&gt; means don't serialize the &lt;code&gt;foo&lt;/code&gt; and<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    * &lt;code&gt;bar&lt;/code&gt; properties on the specified bean.<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    *<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    * &lt;p&gt;<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    * Setting applies to specified class and all subclasses.<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    */<a name="line.738"></a>
-<span class="sourceLineNo">739</span>   public static final String BEAN_excludeProperties = "BeanContext.excludeProperties.map";<a name="line.739"></a>
-<span class="sourceLineNo">740</span><a name="line.740"></a>
-<span class="sourceLineNo">741</span>   /**<a name="line.741"></a>
-<span class="sourceLineNo">742</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Exclude specified properties from beans.<a name="line.742"></a>
+<span class="sourceLineNo">733</span>    * The keys are either fully-qualified or simple class names, and the values are comma-delimited lists of property<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    * names.<a name="line.734"></a>
+<span class="sourceLineNo">735</span>    * The key &lt;js&gt;"*"&lt;/js&gt; means all bean classes.<a name="line.735"></a>
+<span class="sourceLineNo">736</span>    *<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    * &lt;p&gt;<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    * For example, &lt;code&gt;{Bean1:&lt;js&gt;'foo,bar'&lt;/js&gt;}&lt;/code&gt; means don't serialize the &lt;code&gt;foo&lt;/code&gt; and<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    * &lt;code&gt;bar&lt;/code&gt; properties on the specified bean.<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    *<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    * &lt;p&gt;<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    * Setting applies to specified class and all subclasses.<a name="line.742"></a>
 <span class="sourceLineNo">743</span>    */<a name="line.743"></a>
-<span class="sourceLineNo">744</span>   public static final String BEAN_excludeProperties_put = "BeanContext.excludeProperties.map.put";<a name="line.744"></a>
+<span class="sourceLineNo">744</span>   public static final String BEAN_excludeProperties = "BeanContext.excludeProperties.map";<a name="line.744"></a>
 <span class="sourceLineNo">745</span><a name="line.745"></a>
 <span class="sourceLineNo">746</span>   /**<a name="line.746"></a>
-<span class="sourceLineNo">747</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Bean lookup dictionary.<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    *<a name="line.748"></a>
-<span class="sourceLineNo">749</span>    * &lt;ul&gt;<a name="line.749"></a>
-<span class="sourceLineNo">750</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.beanDictionary.list"&lt;/js&gt;<a name="line.750"></a>
-<span class="sourceLineNo">751</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;List&amp;lt;Class&amp;gt;&lt;/code&gt;<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; empty list<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;false&lt;/jk&gt;<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    * &lt;/ul&gt;<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    *<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    * &lt;p&gt;<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    * This list can consist of the following class types:<a name="line.757"></a>
-<span class="sourceLineNo">758</span>    * &lt;ul&gt;<a name="line.758"></a>
-<span class="sourceLineNo">759</span>    *    &lt;li&gt;Any bean class that specifies a value for {@link Bean#typeName() @Bean.typeName()}.<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    *    &lt;li&gt;Any subclass of {@link BeanDictionaryList} containing a collection of bean classes with type name<a name="line.760"></a>
-<span class="sourceLineNo">761</span>    *       annotations.<a name="line.761"></a>
-<span class="sourceLineNo">762</span>    *    &lt;li&gt;Any subclass of {@link BeanDictionaryMap} containing a mapping of type names to classes without type name<a name="line.762"></a>
-<span class="sourceLineNo">763</span>    *       annotations.<a name="line.763"></a>
-<span class="sourceLineNo">764</span>    * &lt;/ul&gt;<a name="line.764"></a>
-<span class="sourceLineNo">765</span>    */<a name="line.765"></a>
-<span class="sourceLineNo">766</span>   public static final String BEAN_beanDictionary = "BeanContext.beanDictionary.list";<a name="line.766"></a>
-<span class="sourceLineNo">767</span><a name="line.767"></a>
-<span class="sourceLineNo">768</span>   /**<a name="line.768"></a>
-<span class="sourceLineNo">769</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Add to bean dictionary.<a name="line.769"></a>
+<span class="sourceLineNo">747</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Exclude specified properties from beans.<a name="line.747"></a>
+<span class="sourceLineNo">748</span>    */<a name="line.748"></a>
+<span class="sourceLineNo">749</span>   public static final String BEAN_excludeProperties_put = "BeanContext.excludeProperties.map.put";<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>   /**<a name="line.751"></a>
+<span class="sourceLineNo">752</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Bean lookup dictionary.<a name="line.752"></a>
+<span class="sourceLineNo">753</span>    *<a name="line.753"></a>
+<span class="sourceLineNo">754</span>    * &lt;ul&gt;<a name="line.754"></a>
+<span class="sourceLineNo">755</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.beanDictionary.list"&lt;/js&gt;<a name="line.755"></a>
+<span class="sourceLineNo">756</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;List&amp;lt;Class&amp;gt;&lt;/code&gt;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; empty list<a name="line.757"></a>
+<span class="sourceLineNo">758</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;false&lt;/jk&gt;<a name="line.758"></a>
+<span class="sourceLineNo">759</span>    * &lt;/ul&gt;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>    *<a name="line.760"></a>
+<span class="sourceLineNo">761</span>    * &lt;p&gt;<a name="line.761"></a>
+<span class="sourceLineNo">762</span>    * This list can consist of the following class types:<a name="line.762"></a>
+<span class="sourceLineNo">763</span>    * &lt;ul&gt;<a name="line.763"></a>
+<span class="sourceLineNo">764</span>    *    &lt;li&gt;Any bean class that specifies a value for {@link Bean#typeName() @Bean.typeName()}.<a name="line.764"></a>
+<span class="sourceLineNo">765</span>    *    &lt;li&gt;Any subclass of {@link BeanDictionaryList} containing a collection of bean classes with type name<a name="line.765"></a>
+<span class="sourceLineNo">766</span>    *       annotations.<a name="line.766"></a>
+<span class="sourceLineNo">767</span>    *    &lt;li&gt;Any subclass of {@link BeanDictionaryMap} containing a mapping of type names to classes without type name<a name="line.767"></a>
+<span class="sourceLineNo">768</span>    *       annotations.<a name="line.768"></a>
+<span class="sourceLineNo">769</span>    * &lt;/ul&gt;<a name="line.769"></a>
 <span class="sourceLineNo">770</span>    */<a name="line.770"></a>
-<span class="sourceLineNo">771</span>   public static final String BEAN_beanDictionary_add = "BeanContext.beanDictionary.list.add";<a name="line.771"></a>
+<span class="sourceLineNo">771</span>   public static final String BEAN_beanDictionary = "BeanContext.beanDictionary.list";<a name="line.771"></a>
 <span class="sourceLineNo">772</span><a name="line.772"></a>
 <span class="sourceLineNo">773</span>   /**<a name="line.773"></a>
-<span class="sourceLineNo">774</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Remove from bean dictionary.<a name="line.774"></a>
+<span class="sourceLineNo">774</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Add to bean dictionary.<a name="line.774"></a>
 <span class="sourceLineNo">775</span>    */<a name="line.775"></a>
-<span class="sourceLineNo">776</span>   public static final String BEAN_beanDictionary_remove = "BeanContext.beanDictionary.list.remove";<a name="line.776"></a>
+<span class="sourceLineNo">776</span>   public static final String BEAN_beanDictionary_add = "BeanContext.beanDictionary.list.add";<a name="line.776"></a>
 <span class="sourceLineNo">777</span><a name="line.777"></a>
 <span class="sourceLineNo">778</span>   /**<a name="line.778"></a>
-<span class="sourceLineNo">779</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Name to use for the bean type properties used to represent a bean type.<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    *<a name="line.780"></a>
-<span class="sourceLineNo">781</span>    * &lt;ul&gt;<a name="line.781"></a>
-<span class="sourceLineNo">782</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.beanTypePropertyName"&lt;/js&gt;<a name="line.782"></a>
-<span class="sourceLineNo">783</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;String&lt;/code&gt;<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; &lt;js&gt;"_type"&lt;/js&gt;<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;false&lt;/jk&gt;<a name="line.785"></a>
-<span class="sourceLineNo">786</span>    * &lt;/ul&gt;<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    */<a name="line.787"></a>
-<span class="sourceLineNo">788</span>   public static final String BEAN_beanTypePropertyName = "BeanContext.beanTypePropertyName";<a name="line.788"></a>
-<span class="sourceLineNo">789</span><a name="line.789"></a>
-<span class="sourceLineNo">790</span>   /**<a name="line.790"></a>
-<span class="sourceLineNo">791</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Default parser to use when converting &lt;code&gt;Strings&lt;/code&gt; to POJOs.<a name="line.791"></a>
-<span class="sourceLineNo">792</span>    *<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    * &lt;ul&gt;<a name="line.793"></a>
-<span class="sourceLineNo">794</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.defaultParser"&lt;/js&gt;<a name="line.794"></a>
-<span class="sourceLineNo">795</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;Class&lt;/code&gt;<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; {@link JsonSerializer}<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;false&lt;/jk&gt;<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    * &lt;/ul&gt;<a name="line.798"></a>
-<span class="sourceLineNo">799</span>    *<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    * &lt;p&gt;<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    * Used in the in the {@link BeanSession#convertToType(Object, Class)} method.<a name="line.801"></a>
-<span class="sourceLineNo">802</span>    */<a name="line.802"></a>
-<span class="sourceLineNo">803</span>   public static final String BEAN_defaultParser = "BeanContext.defaultParser";<a name="line.803"></a>
-<span class="sourceLineNo">804</span><a name="line.804"></a>
-<span class="sourceLineNo">805</span>   /**<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Locale.<a name="line.806"></a>
-<span class="sourceLineNo">807</span>    *<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    * &lt;ul&gt;<a name="line.808"></a>
-<span class="sourceLineNo">809</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.locale"&lt;/js&gt;<a name="line.809"></a>
-<span class="sourceLineNo">810</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;Locale&lt;/code&gt;<a name="line.810"></a>
-<span class="sourceLineNo">811</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; &lt;code&gt;Locale.getDefault()&lt;/code&gt;<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;true&lt;/jk&gt;<a name="line.812"></a>
-<span class="sourceLineNo">813</span>    * &lt;/ul&gt;<a name="line.813"></a>
-<span class="sourceLineNo">814</span>    *<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    * &lt;p&gt;<a name="line.815"></a>
-<span class="sourceLineNo">816</span>    * Used in the in the {@link BeanSession#convertToType(Object, Class)} method.<a name="line.816"></a>
-<span class="sourceLineNo">817</span>    */<a name="line.817"></a>
-<span class="sourceLineNo">818</span>   public static final String BEAN_locale = "BeanContext.locale";<a name="line.818"></a>
-<span class="sourceLineNo">819</span><a name="line.819"></a>
-<span class="sourceLineNo">820</span>   /**<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  TimeZone.<a name="line.821"></a>
-<span class="sourceLineNo">822</span>    *<a name="line.822"></a>
-<span class="sourceLineNo">823</span>    * &lt;ul&gt;<a name="line.823"></a>
-<span class="sourceLineNo">824</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.timeZone"&lt;/js&gt;<a name="line.824"></a>
-<span class="sourceLineNo">825</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;TimeZone&lt;/code&gt;<a name="line.825"></a>
-<span class="sourceLineNo">826</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; &lt;jk&gt;null&lt;/jk&gt;<a name="line.826"></a>
-<span class="sourceLineNo">827</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;true&lt;/jk&gt;<a name="line.827"></a>
-<span class="sourceLineNo">828</span>    * &lt;/ul&gt;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>    *<a name="line.829"></a>
-<span class="sourceLineNo">830</span>    * &lt;p&gt;<a name="line.830"></a>
-<span class="sourceLineNo">831</span>    * Used in the in the {@link BeanSession#convertToType(Object, Class)} method.<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    */<a name="line.832"></a>
-<span class="sourceLineNo">833</span>   public static final String BEAN_timeZone = "BeanContext.timeZone";<a name="line.833"></a>
-<span class="sourceLineNo">834</span><a name="line.834"></a>
-<span class="sourceLineNo">835</span>   /**<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Media type.<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    *<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    * &lt;ul&gt;<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.mediaType"&lt;/js&gt;<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;MediaType&lt;/code&gt;<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; &lt;jk&gt;null&lt;/jk&gt;<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;true&lt;/jk&gt;<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    * &lt;/ul&gt;<a name="line.843"></a>
-<span class="sourceLineNo">844</span>    *<a name="line.844"></a>
-<span class="sourceLineNo">845</span>    * &lt;p&gt;<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    * Specifies a default media type value for serializer and parser sessions.<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    */<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   public static final String BEAN_mediaType = "BeanContext.mediaType";<a name="line.848"></a>
-<span class="sourceLineNo">849</span><a name="line.849"></a>
-<span class="sourceLineNo">850</span>   /**<a name="line.850"></a>
-<span class="sourceLineNo">851</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Debug mode.<a name="line.851"></a>
-<span class="sourceLineNo">852</span>    *<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    * &lt;ul&gt;<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.debug"&lt;/js&gt;<a name="line.854"></a>
-<span class="sourceLineNo">855</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;Boolean&lt;/code&gt;<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; &lt;jk&gt;false&lt;/jk&gt;<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;true&lt;/jk&gt;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    * &lt;/ul&gt;<a name="line.858"></a>
-<span class="sourceLineNo">859</span>    *<a name="line.859"></a>
-<span class="sourceLineNo">860</span>    * &lt;p&gt;<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    * Enables the following additional information during serialization:<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    * &lt;ul class='spaced-list'&gt;<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    *    &lt;li&gt;<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    *       When bean getters throws exceptions, the exception includes the object stack information<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    *       in order to determine how that method was invoked.<a name="line.865"></a>
-<span class="sourceLineNo">866</span>    *    &lt;li&gt;<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    *       Enables {@link SerializerContext#SERIALIZER_detectRecursions}.<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    * &lt;/ul&gt;<a name="line.868"></a>
-<span class="sourceLineNo">869</span>    *<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    * &lt;p&gt;<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    * Enables the following additional information during parsing:<a name="line.871"></a>
-<span class="sourceLineNo">872</span>    * &lt;ul class='spaced-list'&gt;<a name="line.872"></a>
-<span class="sourceLineNo">873</span>    *    &lt;li&gt;<a name="line.873"></a>
-<span class="sourceLineNo">874</span>    *       When bean setters throws exceptions, the exception includes the object stack information<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    *       in order to determine how that method was invoked.<a name="line.875"></a>
-<span class="sourceLineNo">876</span>    * &lt;/ul&gt;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>    */<a name="line.877"></a>
-<span class="sourceLineNo">878</span>   public static final String BEAN_debug = "BeanContext.debug";<a name="line.878"></a>
-<span class="sourceLineNo">879</span><a name="line.879"></a>
-<span class="sourceLineNo">880</span>   /*<a name="line.880"></a>
-<span class="sourceLineNo">881</span>    * The default package pattern exclusion list.<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    * Any beans in packages in this list will not be considered beans.<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    */<a name="line.883"></a>
-<span class="sourceLineNo">884</span>   private static final String[] DEFAULT_NOTBEAN_PACKAGES = {<a name="line.884"></a>
-<span class="sourceLineNo">885</span>      "java.lang",<a name="line.885"></a>
-<span class="sourceLineNo">886</span>      "java.lang.annotation",<a name="line.886"></a>
-<span class="sourceLineNo">887</span>      "java.lang.ref",<a name="line.887"></a>
-<span class="sourceLineNo">888</span>      "java.lang.reflect",<a name="line.888"></a>
-<span class="sourceLineNo">889</span>      "java.io",<a name="line.889"></a>
-<span class="sourceLineNo">890</span>      "java.net",<a name="line.890"></a>
-<span class="sourceLineNo">891</span>      "java.nio.*",<a name="line.891"></a>
-<span class="sourceLineNo">892</span>      "java.util.*"<a name="line.892"></a>
-<span class="sourceLineNo">893</span>   };<a name="line.893"></a>
-<span class="sourceLineNo">894</span><a name="line.894"></a>
-<span class="sourceLineNo">895</span>   /*<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    * The default bean class exclusion list.<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    * Anything in this list will not be considered beans.<a name="line.897"></a>
-<span class="sourceLineNo">898</span>    */<a name="line.898"></a>
-<span class="sourceLineNo">899</span>   private static final Class&lt;?&gt;[] DEFAULT_NOTBEAN_CLASSES = {<a name="line.899"></a>
-<span class="sourceLineNo">900</span>      Map.class,<a name="line.900"></a>
-<span class="sourceLineNo">901</span>      Collection.class,<a name="line.901"></a>
-<span class="sourceLineNo">902</span>      Reader.class,<a name="line.902"></a>
-<span class="sourceLineNo">903</span>      Writer.class,<a name="line.903"></a>
-<span class="sourceLineNo">904</span>      InputStream.class,<a name="line.904"></a>
-<span class="sourceLineNo">905</span>      OutputStream.class,<a name="line.905"></a>
-<span class="sourceLineNo">906</span>      Throwable.class<a name="line.906"></a>
-<span class="sourceLineNo">907</span>   };<a name="line.907"></a>
-<span class="sourceLineNo">908</span><a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>   static final void loadDefaults(PropertyStore config) {<a name="line.910"></a>
-<span class="sourceLineNo">911</span>      config.setProperty(BEAN_notBeanPackages, DEFAULT_NOTBEAN_PACKAGES);<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      config.setProperty(BEAN_notBeanClasses, DEFAULT_NOTBEAN_CLASSES);<a name="line.912"></a>
-<span class="sourceLineNo">913</span>   }<a name="line.913"></a>
+<span class="sourceLineNo">779</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Remove from bean dictionary.<a name="line.779"></a>
+<span class="sourceLineNo">780</span>    */<a name="line.780"></a>
+<span class="sourceLineNo">781</span>   public static final String BEAN_beanDictionary_remove = "BeanContext.beanDictionary.list.remove";<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>   /**<a name="line.783"></a>
+<span class="sourceLineNo">784</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Name to use for the bean type properties used to represent a bean type.<a name="line.784"></a>
+<span class="sourceLineNo">785</span>    *<a name="line.785"></a>
+<span class="sourceLineNo">786</span>    * &lt;ul&gt;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.beanTypePropertyName"&lt;/js&gt;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;String&lt;/code&gt;<a name="line.788"></a>
+<span class="sourceLineNo">789</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; &lt;js&gt;"_type"&lt;/js&gt;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;false&lt;/jk&gt;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>    * &lt;/ul&gt;<a name="line.791"></a>
+<span class="sourceLineNo">792</span>    */<a name="line.792"></a>
+<span class="sourceLineNo">793</span>   public static final String BEAN_beanTypePropertyName = "BeanContext.beanTypePropertyName";<a name="line.793"></a>
+<span class="sourceLineNo">794</span><a name="line.794"></a>
+<span class="sourceLineNo">795</span>   /**<a name="line.795"></a>
+<span class="sourceLineNo">796</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Default parser to use when converting &lt;code&gt;Strings&lt;/code&gt; to POJOs.<a name="line.796"></a>
+<span class="sourceLineNo">797</span>    *<a name="line.797"></a>
+<span class="sourceLineNo">798</span>    * &lt;ul&gt;<a name="line.798"></a>
+<span class="sourceLineNo">799</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.defaultParser"&lt;/js&gt;<a name="line.799"></a>
+<span class="sourceLineNo">800</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;Class&lt;/code&gt;<a name="line.800"></a>
+<span class="sourceLineNo">801</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; {@link JsonSerializer}<a name="line.801"></a>
+<span class="sourceLineNo">802</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;false&lt;/jk&gt;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>    * &lt;/ul&gt;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>    *<a name="line.804"></a>
+<span class="sourceLineNo">805</span>    * &lt;p&gt;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>    * Used in the in the {@link BeanSession#convertToType(Object, Class)} method.<a name="line.806"></a>
+<span class="sourceLineNo">807</span>    */<a name="line.807"></a>
+<span class="sourceLineNo">808</span>   public static final String BEAN_defaultParser = "BeanContext.defaultParser";<a name="line.808"></a>
+<span class="sourceLineNo">809</span><a name="line.809"></a>
+<span class="sourceLineNo">810</span>   /**<a name="line.810"></a>
+<span class="sourceLineNo">811</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Locale.<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    *<a name="line.812"></a>
+<span class="sourceLineNo">813</span>    * &lt;ul&gt;<a name="line.813"></a>
+<span class="sourceLineNo">814</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.locale"&lt;/js&gt;<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;Locale&lt;/code&gt;<a name="line.815"></a>
+<span class="sourceLineNo">816</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; &lt;code&gt;Locale.getDefault()&lt;/code&gt;<a name="line.816"></a>
+<span class="sourceLineNo">817</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;true&lt;/jk&gt;<a name="line.817"></a>
+<span class="sourceLineNo">818</span>    * &lt;/ul&gt;<a name="line.818"></a>
+<span class="sourceLineNo">819</span>    *<a name="line.819"></a>
+<span class="sourceLineNo">820</span>    * &lt;p&gt;<a name="line.820"></a>
+<span class="sourceLineNo">821</span>    * Used in the in the {@link BeanSession#convertToType(Object, Class)} method.<a name="line.821"></a>
+<span class="sourceLineNo">822</span>    */<a name="line.822"></a>
+<span class="sourceLineNo">823</span>   public static final String BEAN_locale = "BeanContext.locale";<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>   /**<a name="line.825"></a>
+<span class="sourceLineNo">826</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  TimeZone.<a name="line.826"></a>
+<span class="sourceLineNo">827</span>    *<a name="line.827"></a>
+<span class="sourceLineNo">828</span>    * &lt;ul&gt;<a name="line.828"></a>
+<span class="sourceLineNo">829</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.timeZone"&lt;/js&gt;<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;TimeZone&lt;/code&gt;<a name="line.830"></a>
+<span class="sourceLineNo">831</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; &lt;jk&gt;null&lt;/jk&gt;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;true&lt;/jk&gt;<a name="line.832"></a>
+<span class="sourceLineNo">833</span>    * &lt;/ul&gt;<a name="line.833"></a>
+<span class="sourceLineNo">834</span>    *<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    * &lt;p&gt;<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    * Used in the in the {@link BeanSession#convertToType(Object, Class)} method.<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    */<a name="line.837"></a>
+<span class="sourceLineNo">838</span>   public static final String BEAN_timeZone = "BeanContext.timeZone";<a name="line.838"></a>
+<span class="sourceLineNo">839</span><a name="line.839"></a>
+<span class="sourceLineNo">840</span>   /**<a name="line.840"></a>
+<span class="sourceLineNo">841</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Media type.<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    *<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    * &lt;ul&gt;<a name="line.843"></a>
+<span class="sourceLineNo">844</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.mediaType"&lt;/js&gt;<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;MediaType&lt;/code&gt;<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; &lt;jk&gt;null&lt;/jk&gt;<a name="line.846"></a>
+<span class="sourceLineNo">847</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;true&lt;/jk&gt;<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    * &lt;/ul&gt;<a name="line.848"></a>
+<span class="sourceLineNo">849</span>    *<a name="line.849"></a>
+<span class="sourceLineNo">850</span>    * &lt;p&gt;<a name="line.850"></a>
+<span class="sourceLineNo">851</span>    * Specifies a default media type value for serializer and parser sessions.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>    */<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   public static final String BEAN_mediaType = "BeanContext.mediaType";<a name="line.853"></a>
+<span class="sourceLineNo">854</span><a name="line.854"></a>
+<span class="sourceLineNo">855</span>   /**<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    * &lt;b&gt;Configuration property:&lt;/b&gt;  Debug mode.<a name="line.856"></a>
+<span class="sourceLineNo">857</span>    *<a name="line.857"></a>
+<span class="sourceLineNo">858</span>    * &lt;ul&gt;<a name="line.858"></a>
+<span class="sourceLineNo">859</span>    *    &lt;li&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;js&gt;"BeanContext.debug"&lt;/js&gt;<a name="line.859"></a>
+<span class="sourceLineNo">860</span>    *    &lt;li&gt;&lt;b&gt;Data type:&lt;/b&gt; &lt;code&gt;Boolean&lt;/code&gt;<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    *    &lt;li&gt;&lt;b&gt;Default:&lt;/b&gt; &lt;jk&gt;false&lt;/jk&gt;<a name="line.861"></a>
+<span class="sourceLineNo">862</span>    *    &lt;li&gt;&lt;b&gt;Session-overridable:&lt;/b&gt; &lt;jk&gt;true&lt;/jk&gt;<a name="line.862"></a>
+<span class="sourceLineNo">863</span>    * &lt;/ul&gt;<a name="line.863"></a>
+<span class="sourceLineNo">864</span>    *<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    * &lt;p&gt;<a name="line.865"></a>
+<span class="sourceLineNo">866</span>    * Enables the following additional information during serialization:<a name="line.866"></a>
+<span class="sourceLineNo">867</span>    * &lt;ul class='spaced-list'&gt;<a name="line.867"></a>
+<span class="sourceLineNo">868</span>    *    &lt;li&gt;<a name="line.868"></a>
+<span class="sourceLineNo">869</span>    *       When bean getters throws exceptions, the exception includes the object stack information<a name="line.869"></a>
+<span class="sourceLineNo">870</span>    *       in order to determine how that method was invoked.<a name="line.870"></a>
+<span class="sourceLineNo">871</span>    *    &lt;li&gt;<a name="line.871"></a>
+<span class="sourceLineNo">872</span>    *       Enables {@link SerializerContext#SERIALIZER_detectRecursions}.<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    * &lt;/ul&gt;<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    *<a name="line.874"></a>
+<span class="sourceLineNo">875</span>    * &lt;p&gt;<a name="line.875"></a>
+<span class="sourceLineNo">876</span>    * Enables the following additional information during parsing:<a name="line.876"></a>
+<span class="sourceLineNo">877</span>    * &lt;ul class='spaced-list'&gt;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>    *    &lt;li&gt;<a name="line.878"></a>
+<span class="sourceLineNo">879</span>    *       When bean setters throws exceptions, the exception includes the object stack information<a name="line.879"></a>
+<span class="sourceLineNo">880</span>    *       in order to determine how that method was invoked.<a name="line.880"></a>
+<span class="sourceLineNo">881</span>    * &lt;/ul&gt;<a name="line.881"></a>
+<span class="sourceLineNo">882</span>    */<a name="line.882"></a>
+<span class="sourceLineNo">883</span>   public static final String BEAN_debug = "BeanContext.debug";<a name="line.883"></a>
+<span class="sourceLineNo">884</span><a name="line.884"></a>
+<span class="sourceLineNo">885</span>   /*<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    * The default package pattern exclusion list.<a name="line.886"></a>
+<span class="sourceLineNo">887</span>    * Any beans in packages in this list will not be considered beans.<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    */<a name="line.888"></a>
+<span class="sourceLineNo">889</span>   private static final String[] DEFAULT_NOTBEAN_PACKAGES = {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>      "java.lang",<a name="line.890"></a>
+<span class="sourceLineNo">891</span>      "java.lang.annotation",<a name="line.891"></a>
+<span class="sourceLineNo">892</span>      "java.lang.ref",<a name="line.892"></a>
+<span class="sourceLineNo">893</span>      "java.lang.reflect",<a name="line.893"></a>
+<span class="sourceLineNo">894</span>      "java.io",<a name="line.894"></a>
+<span class="sourceLineNo">895</span>      "java.net",<a name="line.895"></a>
+<span class="sourceLineNo">896</span>      "java.nio.*",<a name="line.896"></a>
+<span class="sourceLineNo">897</span>      "java.util.*"<a name="line.897"></a>
+<span class="sourceLineNo">898</span>   };<a name="line.898"></a>
+<span class="sourceLineNo">899</span><a name="line.899"></a>
+<span class="sourceLineNo">900</span>   /*<a name="line.900"></a>
+<span class="sourceLineNo">901</span>    * The default bean class exclusion list.<a name="line.901"></a>
+<span class="sourceLineNo">902</span>    * Anything in this list will not be considered beans.<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    */<a name="line.903"></a>
+<span class="sourceLineNo">904</span>   private static final Class&lt;?&gt;[] DEFAULT_NOTBEAN_CLASSES = {<a name="line.904"></a>
+<span class="sourceLineNo">905</span>      Map.class,<a name="line.905"></a>
+<span class="sourceLineNo">906</span>      Collection.class,<a name="line.906"></a>
+<span class="sourceLineNo">907</span>      Reader.class,<a name="line.907"></a>
+<span class="sourceLineNo">908</span>      Writer.class,<a name="line.908"></a>
+<span class="sourceLineNo">909</span>      InputStream.class,<a name="line.909"></a>
+<span class="sourceLineNo">910</span>      OutputStream.class,<a name="line.910"></a>
+<span class="sourceLineNo">911</span>      Throwable.class<a name="line.911"></a>
+<span class="sourceLineNo">912</span>   };<a name="line.912"></a>
+<span class="sourceLineNo">913</span><a name="line.913"></a>
 <span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span><a name="line.915"></a>
-<span class="sourceLineNo">916</span>   // This map is important!<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   // We may have many ConfigFactory objects that have identical BeanContext properties.<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   // This map ensures that if the BeanContext properties in the ConfigFactory are the same,<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   // then we reuse the same Class-&gt;ClassMeta cache map.<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   // This significantly reduces the number of times we need to construct ClassMeta objects which can be expensive.<a name="line.920"></a>
-<span class="sourceLineNo">921</span>   private static final ConcurrentHashMap&lt;Integer,Map&lt;Class,ClassMeta&gt;&gt; cmCacheCache<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      = new ConcurrentHashMap&lt;Integer,Map&lt;Class,ClassMeta&gt;&gt;();<a name="line.922"></a>
-<span class="sourceLineNo">923</span><a name="line.923"></a>
-<span class="sourceLineNo">924</span>   /** Default config.  All default settings. */<a name="line.924"></a>
-<span class="sourceLineNo">925</span>   public static final BeanContext DEFAULT = PropertyStore.create().getContext(BeanContext.class);<a name="line.925"></a>
-<span class="sourceLineNo">926</span><a name="line.926"></a>
-<span class="sourceLineNo">927</span>   /** Default config.  All default settings except sort bean properties. */<a name="line.927"></a>
-<span class="sourceLineNo">928</span>   public static final BeanContext DEFAULT_SORTED = PropertyStore.create().setProperty(BEAN_sortProperties, true).getContext(BeanContext.class);<a name="line.928"></a>
-<span class="sourceLineNo">929</span><a name="line.929"></a>
-<span class="sourceLineNo">930</span>   final boolean<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      beansRequireDefaultConstructor,<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      beansRequireSerializable,<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      beansRequireSettersForGetters,<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      beansRequireSomeProperties,<a name="line.934"></a>
-<span class="sourceLineNo">935</span>      beanMapPutReturnsOldValue,<a name="line.935"></a>
-<span class="sourceLineNo">936</span>      useInterfaceProxies,<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      ignoreUnknownBeanProperties,<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      ignoreUnknownNullBeanProperties,<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      ignorePropertiesWithoutSetters,<a name="line.939"></a>
-<span class="sourceLineNo">940</span>      ignoreInvocationExceptionsOnGetters,<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      ignoreInvocationExceptionsOnSetters,<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      useJavaBeanIntrospector,<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      sortProperties,<a name="line.943"></a>
-<span class="sourceLineNo">944</span>      debug;<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>   final Visibility<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      beanConstructorVisibility,<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      beanClassVisibility,<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      beanMethodVisibility,<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      beanFieldVisibility;<a name="line.950"></a>
-<span class="sourceLineNo">951</span><a name="line.951"></a>
-<span class="sourceLineNo">952</span>   final Class&lt;?&gt;[] notBeanClasses, beanDictionaryClasses;<a name="line.952"></a>
-<span class="sourceLineNo">953</span>   final String[] notBeanPackageNames, notBeanPackagePrefixes;<a name="line.953"></a>
-<span class="sourceLineNo">954</span>   final BeanFilter[] beanFilters;<a name="line.954"></a>
-<span class="sourceLineNo">955</span>   final PojoSwap&lt;?,?&gt;[] pojoSwaps;<a name="line.955"></a>
-<span class="sourceLineNo">956</span>   final BeanRegistry beanRegistry;<a name="line.956"></a>
-<span class="sourceLineNo">957</span>   final Map&lt;Class&lt;?&gt;,Class&lt;?&gt;&gt; implClasses;<a name="line.957"></a>
-<span class="sourceLineNo">958</span>   final Class&lt;?&gt;[] implKeyClasses, implValueClasses;<a name="line.958"></a>
-<span class="sourceLineNo">959</span>   final ClassLoader classLoader;<a name="line.959"></a>
-<span class="sourceLineNo">960</span>   final Locale locale;<a name="line.960"></a>
-<span class="sourceLineNo">961</span>   final TimeZone timeZone;<a name="line.961"></a>
-<span class="sourceLineNo">962</span>   final MediaType mediaType;<a name="line.962"></a>
-<span class="sourceLineNo">963</span>   final Map&lt;String,String[]&gt; includeProperties, excludeProperties;<a name="line.963"></a>
-<span class="sourceLineNo">964</span><a name="line.964"></a>
-<span class="sourceLineNo">965</span>   final Map&lt;Class,ClassMeta&gt; cmCache;<a name="line.965"></a>
-<span class="sourceLineNo">966</span>   final ClassMeta&lt;Object&gt; cmObject;  // Reusable ClassMeta that represents general Objects.<a name="line.966"></a>
-<span class="sourceLineNo">967</span>   final ClassMeta&lt;String&gt; cmString;  // Reusable ClassMeta that represents general Strings.<a name="line.967"></a>
-<span class="sourceLineNo">968</span>   final ClassMeta&lt;Class&gt; cmClass;  // Reusable ClassMeta that represents general Classes.<a name="line.968"></a>
+<span class="sourceLineNo">915</span>   static final void loadDefaults(PropertyStore config) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>      config.setProperty(BEAN_notBeanPackages, DEFAULT_NOTBEAN_PACKAGES);<a name="line.916"></a>
+<span class="sourceLineNo">917</span>      config.setProperty(BEAN_notBeanClasses, DEFAULT_NOTBEAN_CLASSES);<a name="line.917"></a>
+<span class="sourceLineNo">918</span>   }<a name="line.918"></a>
+<span class="sourceLineNo">919</span><a name="line.919"></a>
+<span class="sourceLineNo">920</span><a name="line.920"></a>
+<span class="sourceLineNo">921</span>   // This map is important!<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   // We may have many ConfigFactory objects that have identical BeanContext properties.<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   // This map ensures that if the BeanContext properties in the ConfigFactory are the same,<a name="line.923"></a>
+<span class="sourceLineNo">924</span>   // then we reuse the same Class-&gt;ClassMeta cache map.<a name="line.924"></a>
+<span class="sourceLineNo">925</span>   // This significantly reduces the number of times we need to construct ClassMeta objects which can be expensive.<a name="line.925"></a>
+<span class="sourceLineNo">926</span>   private static final ConcurrentHashMap&lt;Integer,Map&lt;Class,ClassMeta&gt;&gt; cmCacheCache<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      = new ConcurrentHashMap&lt;Integer,Map&lt;Class,ClassMeta&gt;&gt;();<a name="line.927"></a>
+<span class="sourceLineNo">928</span><a name="line.928"></a>
+<span class="sourceLineNo">929</span>   /** Default config.  All default settings. */<a name="line.929"></a>
+<span class="sourceLineNo">930</span>   public static final BeanContext DEFAULT = PropertyStore.create().getContext(BeanContext.class);<a name="line.930"></a>
+<span class="sourceLineNo">931</span><a name="line.931"></a>
+<span class="sourceLineNo">932</span>   /** Default config.  All default settings except sort bean properties. */<a name="line.932"></a>
+<span class="sourceLineNo">933</span>   public static final BeanContext DEFAULT_SORTED = PropertyStore.create().setProperty(BEAN_sortProperties, true).getContext(BeanContext.class);<a name="line.933"></a>
+<span class="sourceLineNo">934</span><a name="line.934"></a>
+<span class="sourceLineNo">935</span>   final boolean<a name="line.935"></a>
+<span class="sourceLineNo">936</span>      beansRequireDefaultConstructor,<a name="line.936"></a>
+<span class="sourceLineNo">937</span>      beansRequireSerializable,<a name="line.937"></a>
+<span class="sourceLineNo">938</span>      beansRequireSettersForGetters,<a name="line.938"></a>
+<span class="sourceLineNo">939</span>      beansRequireSomeProperties,<a name="line.939"></a>
+<span class="sourceLineNo">940</span>      beanMapPutReturnsOldValue,<a name="line.940"></a>
+<span class="sourceLineNo">941</span>      useInterfaceProxies,<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      ignoreUnknownBeanProperties,<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      ignoreUnknownNullBeanProperties,<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      ignorePropertiesWithoutSetters,<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      ignoreInvocationExceptionsOnGetters,<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      ignoreInvocationExceptionsOnSetters,<a name="line.946"></a>
+<span class="sourceLineNo">947</span>      useJavaBeanIntrospector,<a name="line.947"></a>
+<span class="sourceLineNo">948</span>      sortProperties,<a name="line.948"></a>
+<span class="sourceLineNo">949</span>      debug;<a name="line.949"></a>
+<span class="sourceLineNo">950</span><a name="line.950"></a>
+<span class="sourceLineNo">951</span>   final Visibility<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      beanConstructorVisibility,<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      beanClassVisibility,<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      beanMethodVisibility,<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      beanFieldVisibility;<a name="line.955"></a>
+<span class="sourceLineNo">956</span><a name="line.956"></a>
+<span class="sourceLineNo">957</span>   final Class&lt;?&gt;[] notBeanClasses, beanDictionaryClasses;<a name="line.957"></a>
+<span class="sourceLineNo">958</span>   final String[] notBeanPackageNames, notBeanPackagePrefixes;<a name="line.958"></a>
+<span class="sourceLineNo">959</span>   final BeanFilter[] beanFilters;<a name="line.959"></a>
+<span class="sourceLineNo">960</span>   final PojoSwap&lt;?,?&gt;[] pojoSwaps;<a name="line.960"></a>
+<span class="sourceLineNo">961</span>   final BeanRegistry beanRegistry;<a name="line.961"></a>
+<span class="sourceLineNo">962</span>   final Map&lt;Class&lt;?&gt;,Class&lt;?&gt;&gt; implClasses;<a name="line.962"></a>
+<span class="sourceLineNo">963</span>   final Class&lt;?&gt;[] implKeyClasses, implValueClasses;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>   final ClassLoader classLoader;<a name="line.964"></a>
+<span class="sourceLineNo">965</span>   final Locale locale;<a name="line.965"></a>
+<span class="sourceLineNo">966</span>   final TimeZone timeZone;<a name="line.966"></a>
+<span class="sourceLineNo">967</span>   final MediaType mediaType;<a name="line.967"></a>
+<span class="sourceLineNo">968</span>   final Map&lt;String,String[]&gt; includeProperties, excludeProperties;<a name="line.968"></a>
 <span class="sourceLineNo">969</span><a name="line.969"></a>
-<span class="sourceLineNo">970</span>   // Optional default parser set by setDefaultParser().<a name="line.970"></a>
-<span class="sourceLineNo">971</span>   final ReaderParser defaultParser;<a name="line.971"></a>
-<span class="sourceLineNo">972</span><a name="line.972"></a>
-<span class="sourceLineNo">973</span>   final String beanTypePropertyName;<a name="line.973"></a>
+<span class="sourceLineNo">970</span>   final Map&lt;Class,ClassMeta&gt; cmCache;<a name="line.970"></a>
+<span class="sourceLineNo">971</span>   final ClassMeta&lt;Object&gt; cmObject;  // Reusable ClassMeta that represents general Objects.<a name="line.971"></a>
+<span class="sourceLineNo">972</span>   final ClassMeta&lt;String&gt; cmString;  // Reusable ClassMeta that represents general Strings.<a name="line.972"></a>
+<span class="sourceLineNo">973</span>   final ClassMeta&lt;Class&gt; cmClass;  // Reusable ClassMeta that represents general Classes.<a name="line.973"></a>
 <span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>   final int hashCode;<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>   /**<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    * Constructor.<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    *<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    * &lt;p&gt;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>    * Typically only called from {@link PropertyStore#getContext(Class)} or {@link PropertyStore#getBeanContext()}.<a name="line.981"></a>
-<span class="sourceLineNo">982</span>    *<a name="line.982"></a>
-<span class="sourceLineNo">983</span>    * @param ps The property store that created this context.<a name="line.983"></a>
-<span class="sourceLineNo">984</span>    */<a name="line.984"></a>
-<span class="sourceLineNo">985</span>   public BeanContext(PropertyStore ps) {<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      super(ps);<a name="line.986"></a>
-<span class="sourceLineNo">987</span><a name="line.987"></a>
-<span class="sourceLineNo">988</span>      PropertyStore.PropertyMap pm = ps.getPropertyMap("BeanContext");<a name="line.988"></a>
-<span class="sourceLineNo">989</span>      hashCode = pm.hashCode();<a name="line.989"></a>
-<span class="sourceLineNo">990</span>      classLoader = ps.classLoader;<a name="line.990"></a>
-<span class="sourceLineNo">991</span>      defaultParser = ps.defaultParser;<a name="line.991"></a>
+<span class="sourceLineNo">975</span>   // Optional default parser set by setDefaultParser().<a name="line.975"></a>
+<span class="sourceLineNo">976</span>   final ReaderParser defaultParser;<a name="line.976"></a>
+<span class="sourceLineNo">977</span><a name="line.977"></a>
+<span class="sourceLineNo">978</span>   final String beanTypePropertyName;<a name="line.978"></a>
+<span class="sourceLineNo">979</span><a name="line.979"></a>
+<span class="sourceLineNo">980</span>   final int hashCode;<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>   /**<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    * Constructor.<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    *<a name="line.984"></a>
+<span class="sourceLineNo">985</span>    * &lt;p&gt;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>    * Typically only called from {@link PropertyStore#getContext(Class)} or {@link PropertyStore#getBeanContext()}.<a name="line.986"></a>
+<span class="sourceLineNo">987</span>    *<a name="line.987"></a>
+<span class="sourceLineNo">988</span>    * @param ps The property store that created this context.<a name="line.988"></a>
+<span class="sourceLineNo">989</span>    */<a name="line.989"></a>
+<span class="sourceLineNo">990</span>   public BeanContext(PropertyStore ps) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>      super(ps);<a name="line.991"></a>
 <span class="sourceLineNo">992</span><a name="line.992"></a>
-<span class="sourceLineNo">993</span>      beansRequireDefaultConstructor = pm.get(BEAN_beansRequireDefaultConstructor, boolean.class, false);<a name="line.993"></a>
-<span class="sourceLineNo">994</span>      beansRequireSerializable = pm.get(BEAN_beansRequireSerializable, boolean.class, false);<a name="line.994"></a>
-<span class="sourceLineNo">995</span>      beansRequireSettersForGetters = pm.get(BEAN_beansRequireSettersForGetters, boolean.class, false);<a name="line.995"></a>
-<span class="sourceLineNo">996</span>      beansRequireSomeProperties = pm.get(BEAN_beansRequireSomeProperties, boolean.class, true);<a name="line.996"></a>
-<span class="sourceLineNo">997</span>      beanMapPutReturnsOldValue = pm.get(BEAN_beanMapPutReturnsOldValue, boolean.class, false);<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      useInterfaceProxies = pm.get(BEAN_useInterfaceProxies, boolean.class, true);<a name="line.998"></a>
-<span class="sourceLineNo">999</span>      ignoreUnknownBeanProperties = pm.get(BEAN_ignoreUnknownBeanProperties, boolean.class, false);<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>      ignoreUnknownNullBeanProperties = pm.get(BEAN_ignoreUnknownNullBeanProperties, boolean.class, true);<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>      ignorePropertiesWithoutSetters = pm.get(BEAN_ignorePropertiesWithoutSetters, boolean.class, true);<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>      ignoreInvocationExceptionsOnGetters = pm.get(BEAN_ignoreInvocationExceptionsOnGetters, boolean.class, false);<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>      ignoreInvocationExceptionsOnSetters = pm.get(BEAN_ignoreInvocationExceptionsOnSetters, boolean.class, false);<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>      useJavaBeanIntrospector = pm.get(BEAN_useJavaBeanIntrospector, boolean.class, false);<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      sortProperties = pm.get(BEAN_sortProperties, boolean.class, false);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      beanTypePropertyName = pm.get(BEAN_beanTypePropertyName, String.class, "_type");<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>      debug = ps.getProperty(BEAN_debug, boolean.class, false);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span><a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      beanConstructorVisibility = pm.get(BEAN_beanConstructorVisibility, Visibility.class, PUBLIC);<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      beanClassVisibility = pm.get(BEAN_beanClassVisibility, Visibility.class, PUBLIC);<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      beanMethodVisibility = pm.get(BEAN_methodVisibility, Visibility.class, PUBLIC);<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>      beanFieldVisibility = pm.get(BEAN_beanFieldVisibility, Visibility.class, PUBLIC);<a name="line.1012"></a>
+<span class="sourceLineNo">993</span>      PropertyStore.PropertyMap pm = ps.getPropertyMap("BeanContext");<a name="line.993"></a>
+<span class="sourceLineNo">994</span>      hashCode = pm.hashCode();<a name="line.994"></a>
+<span class="sourceLineNo">995</span>      classLoader = ps.classLoader;<a name="line.995"></a>
+<span class="sourceLineNo">996</span>      defaultParser = ps.defaultParser;<a name="line.996"></a>
+<span class="sourceLineNo">997</span><a name="line.997"></a>
+<span class="sourceLineNo">998</span>      beansRequireDefaultConstructor = pm.get(BEAN_beansRequireDefaultConstructor, boolean.class, false);<a name="line.998"></a>
+<span class="sourceLineNo">999</span>      beansRequireSerializable = pm.get(BEAN_beansRequireSerializable, boolean.class, false);<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>      beansRequireSettersForGetters = pm.get(BEAN_beansRequireSettersForGetters, boolean.class, false);<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>      beansRequireSomeProperties = pm.get(BEAN_beansRequireSomeProperties, boolean.class, true);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>      beanMapPutReturnsOldValue = pm.get(BEAN_beanMapPutReturnsOldValue, boolean.class, false);<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>      useInterfaceProxies = pm.get(BEAN_useInterfaceProxies, boolean.class, true);<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      ignoreUnknownBeanProperties = pm.get(BEAN_ignoreUnknownBeanProperties, boolean.class, false);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>      ignoreUnknownNullBeanProperties = pm.get(BEAN_ignoreUnknownNullBeanProperties, boolean.class, true);<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      ignorePropertiesWithoutSetters = pm.get(BEAN_ignorePropertiesWithoutSetters, boolean.class, true);<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>      ignoreInvocationExceptionsOnGetters = pm.get(BEAN_ignoreInvocationExceptionsOnGetters, boolean.class, false);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>      ignoreInvocationExceptionsOnSetters = pm.get(BEAN_ignoreInvocationExceptionsOnSetters, boolean.class, false);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      useJavaBeanIntrospector = pm.get(BEAN_useJavaBeanIntrospector, boolean.class, false);<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>      sortProperties = pm.get(BEAN_sortProperties, boolean.class, false);<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      beanTypePropertyName = pm.get(BEAN_beanTypePropertyName, String.class, "_type");<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      debug = ps.getProperty(BEAN_debug, boolean.class, false);<a name="line.1012"></a>
 <span class="sourceLineNo">1013</span><a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>      notBeanClasses = pm.get(BEAN_notBeanClasses, Class[].class, new Class[0]);<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span><a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>      List&lt;String&gt; l1 = new LinkedList&lt;String&gt;();<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      List&lt;String&gt; l2 = new LinkedList&lt;String&gt;();<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      for (String s : pm.get(BEAN_notBeanPackages, String[].class, new String[0])) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>         if (s.endsWith(".*"))<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>            l2.add(s.substring(0, s.length()-2));<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>         else<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>            l1.add(s);<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      }<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>      notBeanPackageNames = l1.toArray(new String[l1.size()]);<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>      notBeanPackagePrefixes = l2.toArray(new String[l2.size()]);<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span><a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      LinkedList&lt;BeanFilter&gt; lbf = new LinkedList&lt;BeanFilter&gt;();<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>      for (Class&lt;?&gt; c : pm.get(BEAN_beanFilters, Class[].class, new Class[0])) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>         if (isParentClass(BeanFilter.class, c))<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>            lbf.add(newInstance(BeanFilter.class, c));<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>         else if (isParentClass(BeanFilterBuilder.class, c))<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>            lbf.add(newInstance(BeanFilterBuilder.class, c).build());<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>         else<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>            lbf.add(new InterfaceBeanFilterBuilder(c).build());<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>      beanFilters = lbf.toArray(new BeanFilter[0]);<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span><a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>      LinkedList&lt;PojoSwap&lt;?,?&gt;&gt; lpf = new LinkedList&lt;PojoSwap&lt;?,?&gt;&gt;();<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>      for (Class&lt;?&gt; c : pm.get(BEAN_pojoSwaps, Class[].class, new Class[0])) {<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>         if (isParentClass(PojoSwap.class, c))<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>            lpf.add(newInstance(PojoSwap.class, c));<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>         else<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>            lpf.addAll(SurrogateSwap.findPojoSwaps(c));<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>      }<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>      pojoSwaps = lpf.toArray(new PojoSwap[0]);<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span><a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>      implClasses = new TreeMap&lt;Class&lt;?&gt;,Class&lt;?&gt;&gt;(new ClassComparator());<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>      Map&lt;Class,Class&gt; m = pm.getMap(BEAN_implClasses, Class.class, Class.class, null);<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      if (m != null)<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>         for (Map.Entry&lt;Class,Class&gt; e : m.entrySet())<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>            implClasses.put(e.getKey(), e.getValue());<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>      implKeyClasses = implClasses.keySet().toArray(new Class[0]);<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      implValueClasses = implClasses.values().toArray(new Class[0]);<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span><a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>      Map&lt;String,String[]&gt; m2 = pm.getMap(BEAN_includeProperties, String.class, String[].class, null);<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>      includeProperties = m2 == null ? Collections.EMPTY_MAP : Collections.unmodifiableMap(m2);<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>      m2 = pm.getMap(BEAN_excludeProperties, String.class, String[].class, null);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>      excludeProperties = m2 == null ? Collections.EMPTY_MAP : Collections.unmodifiableMap(m2);<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span><a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>      locale = pm.get(BEAN_locale, Locale.class, null);<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>      timeZone = pm.get(BEAN_timeZone, TimeZone.class, null);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>      mediaType = pm.get(BEAN_mediaType, MediaType.class, null);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span><a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>      if (! cmCacheCache.containsKey(hashCode)) {<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>         ConcurrentHashMap&lt;Class,ClassMeta&gt; cm = new ConcurrentHashMap&lt;Class,ClassMeta&gt;();<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>         cm.putIfAbsent(String.class, new ClassMeta(String.class, this, null, null, findPojoSwap(String.class), findChildPojoSwaps(String.class)));<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>         cm.putIfAbsent(Object.class, new ClassMeta(Object.class, this, null, null, findPojoSwap(Object.class), findChildPojoSwaps(Object.class)));<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>         cmCacheCache.putIfAbsent(hashCode, cm);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>      }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      this.cmCache = cmCacheCache.get(hashCode);<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      this.cmString = cmCache.get(String.class);<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      this.cmObject = cmCache.get(Object.class);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      this.cmClass = cmCache.get(Class.class);<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span><a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>      this.beanDictionaryClasses = pm.get(BEAN_beanDictionary, Class[].class, new Class[0]);<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      this.beanRegistry = new BeanRegistry(this, null);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>   }<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span><a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>   /**<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>    * Create a new bean session based on the properties defined on this context.<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    *<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    * @param args<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    *    The session arguments.<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    * @return A new session object.<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>    */<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>   public BeanSession createSession(BeanSessionArgs args) {<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>      return new BeanSession(this, args);<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>   }<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span><a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>   /**<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>    * Create a new bean session based on the properties defined on this context.<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>    *<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>    * &lt;p&gt;<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    * Use this method for creating sessions if you don't need to override any<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    * properties or locale/timezone currently set on this context.<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>    *<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    * @return A new session object.<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    */<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>   public BeanSession createSession() {<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>      return new BeanSession(this, new BeanSessionArgs(null, this.locale, this.timeZone, this.mediaType));<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>   }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span><a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>   /**<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    * Returns &lt;jk&gt;true&lt;/jk&gt; if the specified bean context shares the same cache as this bean context.<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    *<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>    * &lt;p&gt;<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    * Useful for testing purposes.<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>    *<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    * @param bc The bean context to compare to.<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if the bean contexts have equivalent settings and thus share caches.<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>    */<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>   public final boolean hasSameCache(BeanContext bc) {<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      return bc.cmCache == this.cmCache;<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>   }<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span><a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>   /**<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>    * Determines whether the specified class is ignored as a bean class based on the various exclusion parameters<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>    * specified on this context class.<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    *<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    * @param c The class type being tested.<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if the specified class matches any of the exclusion parameters.<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    */<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>   protected final boolean isNotABean(Class&lt;?&gt; c) {<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>      if (c.isArray() || c.isPrimitive() || c.isEnum() || c.isAnnotation())<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>         return true;<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>      Package p = c.getPackage();<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>      if (p != null) {<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>         for (String p2 : notBeanPackageNames)<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>            if (p.getName().equals(p2))<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>               return true;<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>         for (String p2 : notBeanPackagePrefixes)<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>            if (p.getName().startsWith(p2))<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>               return true;<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>      }<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>      for (Class exclude : notBeanClasses)<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>         if (isParentClass(exclude, c))<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>            return true;<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>      return false;<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>   }<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span><a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>   /**<a name="line.1141"></a>
-<span 

<TRUNCATED>


[09/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializerSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializerSession.html b/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializerSession.html
index d6f6d8a..f780d6c 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializerSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/json/JsonSerializerSession.html
@@ -102,172 +102,173 @@
 <span class="sourceLineNo">094</span>         aType = object();<a name="line.94"></a>
 <span class="sourceLineNo">095</span>      }<a name="line.95"></a>
 <span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>      sType = aType.getSerializedClassMeta();<a name="line.97"></a>
+<span class="sourceLineNo">097</span>      sType = aType;<a name="line.97"></a>
 <span class="sourceLineNo">098</span>      String typeName = getBeanTypeName(eType, aType, pMeta);<a name="line.98"></a>
 <span class="sourceLineNo">099</span><a name="line.99"></a>
 <span class="sourceLineNo">100</span>      // Swap if necessary<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      PojoSwap swap = aType.getPojoSwap();<a name="line.101"></a>
+<span class="sourceLineNo">101</span>      PojoSwap swap = aType.getPojoSwap(this);<a name="line.101"></a>
 <span class="sourceLineNo">102</span>      if (swap != null) {<a name="line.102"></a>
 <span class="sourceLineNo">103</span>         o = swap.swap(this, o);<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>         // If the getSwapClass() method returns Object, we need to figure out<a name="line.105"></a>
-<span class="sourceLineNo">106</span>         // the actual type now.<a name="line.106"></a>
-<span class="sourceLineNo">107</span>         if (sType.isObject())<a name="line.107"></a>
-<span class="sourceLineNo">108</span>            sType = getClassMetaForObject(o);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      }<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>      String wrapperAttr = sType.getExtendedMeta(JsonClassMeta.class).getWrapperAttr();<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      if (wrapperAttr != null) {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>         out.append('{').cr(indent).attr(wrapperAttr).append(':').s(indent);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>         indent++;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>      // '\0' characters are considered null.<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      if (o == null || (sType.isChar() &amp;&amp; ((Character)o).charValue() == 0))<a name="line.118"></a>
-<span class="sourceLineNo">119</span>         out.append("null");<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      else if (sType.isNumber() || sType.isBoolean())<a name="line.120"></a>
-<span class="sourceLineNo">121</span>         out.append(o);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      else if (sType.isBean())<a name="line.122"></a>
-<span class="sourceLineNo">123</span>         serializeBeanMap(out, toBeanMap(o), typeName);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      else if (sType.isUri() || (pMeta != null &amp;&amp; pMeta.isUri()))<a name="line.124"></a>
-<span class="sourceLineNo">125</span>         out.uriValue(o);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      else if (sType.isMap()) {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>         if (o instanceof BeanMap)<a name="line.127"></a>
-<span class="sourceLineNo">128</span>            serializeBeanMap(out, (BeanMap)o, typeName);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>         else<a name="line.129"></a>
-<span class="sourceLineNo">130</span>            serializeMap(out, (Map)o, eType);<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      }<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      else if (sType.isCollection()) {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>         serializeCollection(out, (Collection) o, eType);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      }<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      else if (sType.isArray()) {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>         serializeCollection(out, toList(sType.getInnerClass(), o), eType);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      }<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      else if (sType.isReader() || sType.isInputStream()) {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>         IOUtils.pipe(o, out);<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      else<a name="line.141"></a>
-<span class="sourceLineNo">142</span>         out.stringValue(toString(o));<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>      if (wrapperAttr != null) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>         indent--;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>         out.cre(indent-1).append('}');<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      }<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>      if (! isRecursion)<a name="line.149"></a>
-<span class="sourceLineNo">150</span>         pop();<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      return out;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   }<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>   @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.154"></a>
-<span class="sourceLineNo">155</span>   private SerializerWriter serializeMap(JsonWriter out, Map m, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>      ClassMeta&lt;?&gt; keyType = type.getKeyType(), valueType = type.getValueType();<a name="line.157"></a>
-<span class="sourceLineNo">158</span><a name="line.158"></a>
-<span class="sourceLineNo">159</span>      m = sort(m);<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>      int i = indent;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      out.append('{');<a name="line.162"></a>
-<span class="sourceLineNo">163</span><a name="line.163"></a>
-<span class="sourceLineNo">164</span>      Iterator mapEntries = m.entrySet().iterator();<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span>      while (mapEntries.hasNext()) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>         Map.Entry e = (Map.Entry) mapEntries.next();<a name="line.167"></a>
-<span class="sourceLineNo">168</span>         Object value = e.getValue();<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>         Object key = generalize(e.getKey(), keyType);<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>         out.cr(i).attr(toString(key)).append(':').s(i);<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>         serializeAnything(out, value, valueType, (key == null ? null : toString(key)), null);<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>         if (mapEntries.hasNext())<a name="line.176"></a>
-<span class="sourceLineNo">177</span>            out.append(',').smi(i);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>      out.cre(i-1).append('}');<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>      return out;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   }<a name="line.183"></a>
-<span class="sourceLineNo">184</span><a name="line.184"></a>
-<span class="sourceLineNo">185</span>   private SerializerWriter serializeBeanMap(JsonWriter out, BeanMap&lt;?&gt; m, String typeName) throws Exception {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      int i = indent;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      out.append('{');<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>      boolean addComma = false;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      for (BeanPropertyValue p : m.getValues(isTrimNulls(), typeName != null ? createBeanTypeNameProperty(m, typeName) : null)) {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>         BeanPropertyMeta pMeta = p.getMeta();<a name="line.191"></a>
-<span class="sourceLineNo">192</span>         ClassMeta&lt;?&gt; cMeta = p.getClassMeta();<a name="line.192"></a>
-<span class="sourceLineNo">193</span>         String key = p.getName();<a name="line.193"></a>
-<span class="sourceLineNo">194</span>         Object value = p.getValue();<a name="line.194"></a>
-<span class="sourceLineNo">195</span>         Throwable t = p.getThrown();<a name="line.195"></a>
-<span class="sourceLineNo">196</span>         if (t != null)<a name="line.196"></a>
-<span class="sourceLineNo">197</span>            onBeanGetterException(pMeta, t);<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>         if (canIgnoreValue(cMeta, key, value))<a name="line.199"></a>
-<span class="sourceLineNo">200</span>            continue;<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>         if (addComma)<a name="line.202"></a>
-<span class="sourceLineNo">203</span>            out.append(',').smi(i);<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>         out.cr(i).attr(key).append(':').s(i);<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>         serializeAnything(out, value, cMeta, key, pMeta);<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>         addComma = true;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      }<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      out.cre(i-1).append('}');<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      return out;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>   }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>   @SuppressWarnings({"rawtypes", "unchecked"})<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   private SerializerWriter serializeCollection(JsonWriter out, Collection c, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>      ClassMeta&lt;?&gt; elementType = type.getElementType();<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>      c = sort(c);<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span>      out.append('[');<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>      for (Iterator i = c.iterator(); i.hasNext();) {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>         Object value = i.next();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>         out.cr(indent);<a name="line.226"></a>
-<span class="sourceLineNo">227</span>         serializeAnything(out, value, elementType, "&lt;iterator&gt;", null);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>         if (i.hasNext())<a name="line.228"></a>
-<span class="sourceLineNo">229</span>            out.append(',').smi(indent);<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      out.cre(indent-1).append(']');<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      return out;<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">104</span>         sType = swap.getSwapClassMeta(this);<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>         // If the getSwapClass() method returns Object, we need to figure out<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         // the actual type now.<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         if (sType.isObject())<a name="line.108"></a>
+<span class="sourceLineNo">109</span>            sType = getClassMetaForObject(o);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>      String wrapperAttr = sType.getExtendedMeta(JsonClassMeta.class).getWrapperAttr();<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      if (wrapperAttr != null) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         out.append('{').cr(indent).attr(wrapperAttr).append(':').s(indent);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         indent++;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      }<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>      // '\0' characters are considered null.<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      if (o == null || (sType.isChar() &amp;&amp; ((Character)o).charValue() == 0))<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         out.append("null");<a name="line.120"></a>
+<span class="sourceLineNo">121</span>      else if (sType.isNumber() || sType.isBoolean())<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         out.append(o);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      else if (sType.isBean())<a name="line.123"></a>
+<span class="sourceLineNo">124</span>         serializeBeanMap(out, toBeanMap(o), typeName);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      else if (sType.isUri() || (pMeta != null &amp;&amp; pMeta.isUri()))<a name="line.125"></a>
+<span class="sourceLineNo">126</span>         out.uriValue(o);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      else if (sType.isMap()) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         if (o instanceof BeanMap)<a name="line.128"></a>
+<span class="sourceLineNo">129</span>            serializeBeanMap(out, (BeanMap)o, typeName);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         else<a name="line.130"></a>
+<span class="sourceLineNo">131</span>            serializeMap(out, (Map)o, eType);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      else if (sType.isCollection()) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         serializeCollection(out, (Collection) o, eType);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      else if (sType.isArray()) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         serializeCollection(out, toList(sType.getInnerClass(), o), eType);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      else if (sType.isReader() || sType.isInputStream()) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>         IOUtils.pipe(o, out);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      else<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         out.stringValue(toString(o));<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>      if (wrapperAttr != null) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         indent--;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         out.cre(indent-1).append('}');<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      }<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>      if (! isRecursion)<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         pop();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      return out;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>   }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>   @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.155"></a>
+<span class="sourceLineNo">156</span>   private SerializerWriter serializeMap(JsonWriter out, Map m, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>      ClassMeta&lt;?&gt; keyType = type.getKeyType(), valueType = type.getValueType();<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span>      m = sort(m);<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>      int i = indent;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      out.append('{');<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>      Iterator mapEntries = m.entrySet().iterator();<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>      while (mapEntries.hasNext()) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         Map.Entry e = (Map.Entry) mapEntries.next();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         Object value = e.getValue();<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>         Object key = generalize(e.getKey(), keyType);<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>         out.cr(i).attr(toString(key)).append(':').s(i);<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>         serializeAnything(out, value, valueType, (key == null ? null : toString(key)), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>         if (mapEntries.hasNext())<a name="line.177"></a>
+<span class="sourceLineNo">178</span>            out.append(',').smi(i);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>      out.cre(i-1).append('}');<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>      return out;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>   private SerializerWriter serializeBeanMap(JsonWriter out, BeanMap&lt;?&gt; m, String typeName) throws Exception {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      int i = indent;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      out.append('{');<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>      boolean addComma = false;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      for (BeanPropertyValue p : m.getValues(isTrimNulls(), typeName != null ? createBeanTypeNameProperty(m, typeName) : null)) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         BeanPropertyMeta pMeta = p.getMeta();<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         ClassMeta&lt;?&gt; cMeta = p.getClassMeta();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         String key = p.getName();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         Object value = p.getValue();<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         Throwable t = p.getThrown();<a name="line.196"></a>
+<span class="sourceLineNo">197</span>         if (t != null)<a name="line.197"></a>
+<span class="sourceLineNo">198</span>            onBeanGetterException(pMeta, t);<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>         if (canIgnoreValue(cMeta, key, value))<a name="line.200"></a>
+<span class="sourceLineNo">201</span>            continue;<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>         if (addComma)<a name="line.203"></a>
+<span class="sourceLineNo">204</span>            out.append(',').smi(i);<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>         out.cr(i).attr(key).append(':').s(i);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>         serializeAnything(out, value, cMeta, key, pMeta);<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>         addComma = true;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      out.cre(i-1).append('}');<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      return out;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>   }<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>   @SuppressWarnings({"rawtypes", "unchecked"})<a name="line.216"></a>
+<span class="sourceLineNo">217</span>   private SerializerWriter serializeCollection(JsonWriter out, Collection c, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>      ClassMeta&lt;?&gt; elementType = type.getElementType();<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>      c = sort(c);<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>      out.append('[');<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>      for (Iterator i = c.iterator(); i.hasNext();) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         Object value = i.next();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         out.cr(indent);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         serializeAnything(out, value, elementType, "&lt;iterator&gt;", null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         if (i.hasNext())<a name="line.229"></a>
+<span class="sourceLineNo">230</span>            out.append(',').smi(indent);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      }<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      out.cre(indent-1).append(']');<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      return out;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   }<a name="line.234"></a>
 <span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>   /**<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    * Returns the {@link JsonSerializerContext#JSON_addBeanTypeProperties} setting value for this session.<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    *<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    * @return The {@link JsonSerializerContext#JSON_addBeanTypeProperties} setting value for this session.<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    */<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   @Override /* SerializerSession */<a name="line.241"></a>
-<span class="sourceLineNo">242</span>   protected final boolean isAddBeanTypeProperties() {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      return addBeanTypeProperties;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>   }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>   /**<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    * Converts the specified output target object to an {@link JsonWriter}.<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    *<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    * @param out The output target object.<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    * @return The output target object wrapped in an {@link JsonWriter}.<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    * @throws Exception<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    */<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   protected final JsonWriter getJsonWriter(SerializerPipe out) throws Exception {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      Object output = out.getRawOutput();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      if (output instanceof JsonWriter)<a name="line.255"></a>
-<span class="sourceLineNo">256</span>         return (JsonWriter)output;<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      JsonWriter w = new JsonWriter(out.getWriter(), isUseWhitespace(), getMaxIndent(), escapeSolidus, getQuoteChar(),<a name="line.257"></a>
-<span class="sourceLineNo">258</span>         simpleMode, isTrimStrings(), getUriResolver());<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      out.setWriter(w);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      return w;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>   }<a name="line.261"></a>
-<span class="sourceLineNo">262</span>}<a name="line.262"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>   /**<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    * Returns the {@link JsonSerializerContext#JSON_addBeanTypeProperties} setting value for this session.<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    *<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    * @return The {@link JsonSerializerContext#JSON_addBeanTypeProperties} setting value for this session.<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    */<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   @Override /* SerializerSession */<a name="line.242"></a>
+<span class="sourceLineNo">243</span>   protected final boolean isAddBeanTypeProperties() {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      return addBeanTypeProperties;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>   }<a name="line.245"></a>
+<span class="sourceLineNo">246</span><a name="line.246"></a>
+<span class="sourceLineNo">247</span>   /**<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    * Converts the specified output target object to an {@link JsonWriter}.<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    *<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    * @param out The output target object.<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    * @return The output target object wrapped in an {@link JsonWriter}.<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    * @throws Exception<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    */<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   protected final JsonWriter getJsonWriter(SerializerPipe out) throws Exception {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      Object output = out.getRawOutput();<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      if (output instanceof JsonWriter)<a name="line.256"></a>
+<span class="sourceLineNo">257</span>         return (JsonWriter)output;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      JsonWriter w = new JsonWriter(out.getWriter(), isUseWhitespace(), getMaxIndent(), escapeSolidus, getQuoteChar(),<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         simpleMode, isTrimStrings(), getUriResolver());<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      out.setWriter(w);<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      return w;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>   }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>}<a name="line.263"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/DirectoryResource.FileResource.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/DirectoryResource.FileResource.html b/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/DirectoryResource.FileResource.html
index c4dd4db..26a50e7 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/DirectoryResource.FileResource.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/DirectoryResource.FileResource.html
@@ -329,7 +329,7 @@
 <span class="sourceLineNo">321</span>      /**<a name="line.321"></a>
 <span class="sourceLineNo">322</span>       * @return The file last modified timestamp.<a name="line.322"></a>
 <span class="sourceLineNo">323</span>       */<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      @BeanProperty(swap=DateSwap.ISO8601DTP.class)<a name="line.324"></a>
+<span class="sourceLineNo">324</span>      @Swap(DateSwap.ISO8601DTP.class)<a name="line.324"></a>
 <span class="sourceLineNo">325</span>      public Date getLastModified() {<a name="line.325"></a>
 <span class="sourceLineNo">326</span>         return new Date(f.lastModified());<a name="line.326"></a>
 <span class="sourceLineNo">327</span>      }<a name="line.327"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/DirectoryResource.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/DirectoryResource.html b/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/DirectoryResource.html
index c4dd4db..26a50e7 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/DirectoryResource.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/DirectoryResource.html
@@ -329,7 +329,7 @@
 <span class="sourceLineNo">321</span>      /**<a name="line.321"></a>
 <span class="sourceLineNo">322</span>       * @return The file last modified timestamp.<a name="line.322"></a>
 <span class="sourceLineNo">323</span>       */<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      @BeanProperty(swap=DateSwap.ISO8601DTP.class)<a name="line.324"></a>
+<span class="sourceLineNo">324</span>      @Swap(DateSwap.ISO8601DTP.class)<a name="line.324"></a>
 <span class="sourceLineNo">325</span>      public Date getLastModified() {<a name="line.325"></a>
 <span class="sourceLineNo">326</span>         return new Date(f.lastModified());<a name="line.326"></a>
 <span class="sourceLineNo">327</span>      }<a name="line.327"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/LogsResource.FileResource.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/LogsResource.FileResource.html b/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/LogsResource.FileResource.html
index 3b7caa2..d0471f6 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/LogsResource.FileResource.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/LogsResource.FileResource.html
@@ -316,7 +316,7 @@
 <span class="sourceLineNo">308</span>      public String type;<a name="line.308"></a>
 <span class="sourceLineNo">309</span>      public Object name;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>      public Long size;<a name="line.310"></a>
-<span class="sourceLineNo">311</span>      @BeanProperty(swap=DateSwap.DateTimeMedium.class) public Date lastModified;<a name="line.311"></a>
+<span class="sourceLineNo">311</span>      @Swap(DateSwap.DateTimeMedium.class) public Date lastModified;<a name="line.311"></a>
 <span class="sourceLineNo">312</span>      public URI view, highlighted, parsed, download, delete;<a name="line.312"></a>
 <span class="sourceLineNo">313</span><a name="line.313"></a>
 <span class="sourceLineNo">314</span>      public FileResource(File f, URI uri) throws Exception {<a name="line.314"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/LogsResource.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/LogsResource.html b/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/LogsResource.html
index 3b7caa2..d0471f6 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/LogsResource.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/microservice/resources/LogsResource.html
@@ -316,7 +316,7 @@
 <span class="sourceLineNo">308</span>      public String type;<a name="line.308"></a>
 <span class="sourceLineNo">309</span>      public Object name;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>      public Long size;<a name="line.310"></a>
-<span class="sourceLineNo">311</span>      @BeanProperty(swap=DateSwap.DateTimeMedium.class) public Date lastModified;<a name="line.311"></a>
+<span class="sourceLineNo">311</span>      @Swap(DateSwap.DateTimeMedium.class) public Date lastModified;<a name="line.311"></a>
 <span class="sourceLineNo">312</span>      public URI view, highlighted, parsed, download, delete;<a name="line.312"></a>
 <span class="sourceLineNo">313</span><a name="line.313"></a>
 <span class="sourceLineNo">314</span>      public FileResource(File f, URI uri) throws Exception {<a name="line.314"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/msgpack/MsgPackParserSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/msgpack/MsgPackParserSession.html b/content/site/apidocs/src-html/org/apache/juneau/msgpack/MsgPackParserSession.html
index 25a094e..d34d11a 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/msgpack/MsgPackParserSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/msgpack/MsgPackParserSession.html
@@ -65,8 +65,8 @@
 <span class="sourceLineNo">057</span><a name="line.57"></a>
 <span class="sourceLineNo">058</span>      if (eType == null)<a name="line.58"></a>
 <span class="sourceLineNo">059</span>         eType = (ClassMeta&lt;T&gt;)object();<a name="line.59"></a>
-<span class="sourceLineNo">060</span>      PojoSwap&lt;T,Object&gt; transform = (PojoSwap&lt;T,Object&gt;)eType.getPojoSwap();<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      ClassMeta&lt;?&gt; sType = eType.getSerializedClassMeta();<a name="line.61"></a>
+<span class="sourceLineNo">060</span>      PojoSwap&lt;T,Object&gt; swap = (PojoSwap&lt;T,Object&gt;)eType.getPojoSwap(this);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      ClassMeta&lt;?&gt; sType = swap == null ? eType : swap.getSwapClassMeta(this);<a name="line.61"></a>
 <span class="sourceLineNo">062</span>      setCurrentClass(sType);<a name="line.62"></a>
 <span class="sourceLineNo">063</span><a name="line.63"></a>
 <span class="sourceLineNo">064</span>      Object o = null;<a name="line.64"></a>
@@ -194,8 +194,8 @@
 <span class="sourceLineNo">186</span>         }<a name="line.186"></a>
 <span class="sourceLineNo">187</span>      }<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>      if (transform != null &amp;&amp; o != null)<a name="line.189"></a>
-<span class="sourceLineNo">190</span>         o = transform.unswap(this, o, eType);<a name="line.190"></a>
+<span class="sourceLineNo">189</span>      if (swap != null &amp;&amp; o != null)<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         o = swap.unswap(this, o, eType);<a name="line.190"></a>
 <span class="sourceLineNo">191</span><a name="line.191"></a>
 <span class="sourceLineNo">192</span>      if (outer != null)<a name="line.192"></a>
 <span class="sourceLineNo">193</span>         setParent(eType, o, outer);<a name="line.193"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/msgpack/MsgPackSerializerSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/msgpack/MsgPackSerializerSession.html b/content/site/apidocs/src-html/org/apache/juneau/msgpack/MsgPackSerializerSession.html
index 4460297..19ae259 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/msgpack/MsgPackSerializerSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/msgpack/MsgPackSerializerSession.html
@@ -115,128 +115,129 @@
 <span class="sourceLineNo">107</span>         aType = object();<a name="line.107"></a>
 <span class="sourceLineNo">108</span>      }<a name="line.108"></a>
 <span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span>      sType = aType.getSerializedClassMeta();<a name="line.110"></a>
+<span class="sourceLineNo">110</span>      sType = aType;<a name="line.110"></a>
 <span class="sourceLineNo">111</span>      String typeName = getBeanTypeName(eType, aType, pMeta);<a name="line.111"></a>
 <span class="sourceLineNo">112</span><a name="line.112"></a>
 <span class="sourceLineNo">113</span>      // Swap if necessary<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      PojoSwap swap = aType.getPojoSwap();<a name="line.114"></a>
+<span class="sourceLineNo">114</span>      PojoSwap swap = aType.getPojoSwap(this);<a name="line.114"></a>
 <span class="sourceLineNo">115</span>      if (swap != null) {<a name="line.115"></a>
 <span class="sourceLineNo">116</span>         o = swap.swap(this, o);<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>         // If the getSwapClass() method returns Object, we need to figure out<a name="line.118"></a>
-<span class="sourceLineNo">119</span>         // the actual type now.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>         if (sType.isObject())<a name="line.120"></a>
-<span class="sourceLineNo">121</span>            sType = getClassMetaForObject(o);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      }<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>      // '\0' characters are considered null.<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      if (o == null || (sType.isChar() &amp;&amp; ((Character)o).charValue() == 0))<a name="line.125"></a>
-<span class="sourceLineNo">126</span>         out.appendNull();<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      else if (sType.isBoolean())<a name="line.127"></a>
-<span class="sourceLineNo">128</span>         out.appendBoolean((Boolean)o);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      else if (sType.isNumber())<a name="line.129"></a>
-<span class="sourceLineNo">130</span>         out.appendNumber((Number)o);<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      else if (sType.isBean())<a name="line.131"></a>
-<span class="sourceLineNo">132</span>         serializeBeanMap(out, toBeanMap(o), typeName);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      else if (sType.isUri() || (pMeta != null &amp;&amp; pMeta.isUri()))<a name="line.133"></a>
-<span class="sourceLineNo">134</span>         out.appendString(resolveUri(o.toString()));<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      else if (sType.isMap()) {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>         if (o instanceof BeanMap)<a name="line.136"></a>
-<span class="sourceLineNo">137</span>            serializeBeanMap(out, (BeanMap)o, typeName);<a name="line.137"></a>
-<span class="sourceLineNo">138</span>         else<a name="line.138"></a>
-<span class="sourceLineNo">139</span>            serializeMap(out, (Map)o, eType);<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      else if (sType.isCollection()) {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>         serializeCollection(out, (Collection) o, eType);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      }<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      else if (sType.isArray()) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>         serializeCollection(out, toList(sType.getInnerClass(), o), eType);<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      }<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      else if (sType.isReader() || sType.isInputStream()) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>         IOUtils.pipe(o, out);<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      }<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      else<a name="line.150"></a>
-<span class="sourceLineNo">151</span>         out.appendString(toString(o));<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>      if (! isRecursion)<a name="line.153"></a>
-<span class="sourceLineNo">154</span>         pop();<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      return out;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>   }<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>   @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   private void serializeMap(MsgPackOutputStream out, Map m, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>      ClassMeta&lt;?&gt; keyType = type.getKeyType(), valueType = type.getValueType();<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>      m = sort(m);<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>      // The map size may change as we're iterating over it, so<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      // grab a snapshot of the entries in a separate list.<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      List&lt;SimpleMapEntry&gt; entries = new ArrayList&lt;SimpleMapEntry&gt;(m.size());<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      for (Map.Entry e : (Set&lt;Map.Entry&gt;)m.entrySet())<a name="line.168"></a>
-<span class="sourceLineNo">169</span>         entries.add(new SimpleMapEntry(e.getKey(), e.getValue()));<a name="line.169"></a>
-<span class="sourceLineNo">170</span><a name="line.170"></a>
-<span class="sourceLineNo">171</span>      out.startMap(entries.size());<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>      for (SimpleMapEntry e : entries) {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>         Object value = e.value;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>         Object key = generalize(e.key, keyType);<a name="line.175"></a>
-<span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>         serializeAnything(out, key, keyType, null, null);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>         serializeAnything(out, value, valueType, null, null);<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>   private void serializeBeanMap(MsgPackOutputStream out, final BeanMap&lt;?&gt; m, String typeName) throws Exception {<a name="line.182"></a>
-<span class="sourceLineNo">183</span><a name="line.183"></a>
-<span class="sourceLineNo">184</span>      List&lt;BeanPropertyValue&gt; values = m.getValues(isTrimNulls(), typeName != null ? createBeanTypeNameProperty(m, typeName) : null);<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>      int size = values.size();<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      for (BeanPropertyValue p : values)<a name="line.187"></a>
-<span class="sourceLineNo">188</span>         if (p.getThrown() != null)<a name="line.188"></a>
-<span class="sourceLineNo">189</span>            size--;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      out.startMap(size);<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>      for (BeanPropertyValue p : values) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>         BeanPropertyMeta pMeta = p.getMeta();<a name="line.193"></a>
-<span class="sourceLineNo">194</span>         ClassMeta&lt;?&gt; cMeta = p.getClassMeta();<a name="line.194"></a>
-<span class="sourceLineNo">195</span>         String key = p.getName();<a name="line.195"></a>
-<span class="sourceLineNo">196</span>         Object value = p.getValue();<a name="line.196"></a>
-<span class="sourceLineNo">197</span>         Throwable t = p.getThrown();<a name="line.197"></a>
-<span class="sourceLineNo">198</span>         if (t != null)<a name="line.198"></a>
-<span class="sourceLineNo">199</span>            onBeanGetterException(pMeta, t);<a name="line.199"></a>
-<span class="sourceLineNo">200</span>         else {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>            serializeAnything(out, key, null, null, null);<a name="line.201"></a>
-<span class="sourceLineNo">202</span>            serializeAnything(out, value, cMeta, key, pMeta);<a name="line.202"></a>
-<span class="sourceLineNo">203</span>         }<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>   }<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>   private static class SimpleMapEntry {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      final Object key;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      final Object value;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>      private SimpleMapEntry(Object key, Object value) {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>         this.key = key;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>         this.value = value;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      }<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   }<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>   @SuppressWarnings({"rawtypes", "unchecked"})<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   private void serializeCollection(MsgPackOutputStream out, Collection c, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>      ClassMeta&lt;?&gt; elementType = type.getElementType();<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      List&lt;Object&gt; l = new ArrayList&lt;Object&gt;(c.size());<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>      c = sort(c);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      l.addAll(c);<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>      out.startArray(l.size());<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>      for (Object o : l)<a name="line.228"></a>
-<span class="sourceLineNo">229</span>         serializeAnything(out, o, elementType, "&lt;iterator&gt;", null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span>   }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>}<a name="line.231"></a>
+<span class="sourceLineNo">117</span>         sType = swap.getSwapClassMeta(this);<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>         // If the getSwapClass() method returns Object, we need to figure out<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         // the actual type now.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         if (sType.isObject())<a name="line.121"></a>
+<span class="sourceLineNo">122</span>            sType = getClassMetaForObject(o);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      }<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>      // '\0' characters are considered null.<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      if (o == null || (sType.isChar() &amp;&amp; ((Character)o).charValue() == 0))<a name="line.126"></a>
+<span class="sourceLineNo">127</span>         out.appendNull();<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      else if (sType.isBoolean())<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         out.appendBoolean((Boolean)o);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      else if (sType.isNumber())<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         out.appendNumber((Number)o);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      else if (sType.isBean())<a name="line.132"></a>
+<span class="sourceLineNo">133</span>         serializeBeanMap(out, toBeanMap(o), typeName);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      else if (sType.isUri() || (pMeta != null &amp;&amp; pMeta.isUri()))<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         out.appendString(resolveUri(o.toString()));<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      else if (sType.isMap()) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         if (o instanceof BeanMap)<a name="line.137"></a>
+<span class="sourceLineNo">138</span>            serializeBeanMap(out, (BeanMap)o, typeName);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         else<a name="line.139"></a>
+<span class="sourceLineNo">140</span>            serializeMap(out, (Map)o, eType);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      else if (sType.isCollection()) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         serializeCollection(out, (Collection) o, eType);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      else if (sType.isArray()) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         serializeCollection(out, toList(sType.getInnerClass(), o), eType);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      else if (sType.isReader() || sType.isInputStream()) {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         IOUtils.pipe(o, out);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      else<a name="line.151"></a>
+<span class="sourceLineNo">152</span>         out.appendString(toString(o));<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>      if (! isRecursion)<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         pop();<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      return out;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>   }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>   @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.159"></a>
+<span class="sourceLineNo">160</span>   private void serializeMap(MsgPackOutputStream out, Map m, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>      ClassMeta&lt;?&gt; keyType = type.getKeyType(), valueType = type.getValueType();<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>      m = sort(m);<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>      // The map size may change as we're iterating over it, so<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      // grab a snapshot of the entries in a separate list.<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      List&lt;SimpleMapEntry&gt; entries = new ArrayList&lt;SimpleMapEntry&gt;(m.size());<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      for (Map.Entry e : (Set&lt;Map.Entry&gt;)m.entrySet())<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         entries.add(new SimpleMapEntry(e.getKey(), e.getValue()));<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>      out.startMap(entries.size());<a name="line.172"></a>
+<span class="sourceLineNo">173</span><a name="line.173"></a>
+<span class="sourceLineNo">174</span>      for (SimpleMapEntry e : entries) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>         Object value = e.value;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>         Object key = generalize(e.key, keyType);<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>         serializeAnything(out, key, keyType, null, null);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>         serializeAnything(out, value, valueType, null, null);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>   private void serializeBeanMap(MsgPackOutputStream out, final BeanMap&lt;?&gt; m, String typeName) throws Exception {<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>      List&lt;BeanPropertyValue&gt; values = m.getValues(isTrimNulls(), typeName != null ? createBeanTypeNameProperty(m, typeName) : null);<a name="line.185"></a>
+<span class="sourceLineNo">186</span><a name="line.186"></a>
+<span class="sourceLineNo">187</span>      int size = values.size();<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      for (BeanPropertyValue p : values)<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         if (p.getThrown() != null)<a name="line.189"></a>
+<span class="sourceLineNo">190</span>            size--;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      out.startMap(size);<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>      for (BeanPropertyValue p : values) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         BeanPropertyMeta pMeta = p.getMeta();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         ClassMeta&lt;?&gt; cMeta = p.getClassMeta();<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         String key = p.getName();<a name="line.196"></a>
+<span class="sourceLineNo">197</span>         Object value = p.getValue();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>         Throwable t = p.getThrown();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>         if (t != null)<a name="line.199"></a>
+<span class="sourceLineNo">200</span>            onBeanGetterException(pMeta, t);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>         else {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>            serializeAnything(out, key, null, null, null);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>            serializeAnything(out, value, cMeta, key, pMeta);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         }<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      }<a name="line.205"></a>
+<span class="sourceLineNo">206</span>   }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>   private static class SimpleMapEntry {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      final Object key;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      final Object value;<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>      private SimpleMapEntry(Object key, Object value) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         this.key = key;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         this.value = value;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      }<a name="line.215"></a>
+<span class="sourceLineNo">216</span>   }<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>   @SuppressWarnings({"rawtypes", "unchecked"})<a name="line.218"></a>
+<span class="sourceLineNo">219</span>   private void serializeCollection(MsgPackOutputStream out, Collection c, ClassMeta&lt;?&gt; type) throws Exception {<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>      ClassMeta&lt;?&gt; elementType = type.getElementType();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      List&lt;Object&gt; l = new ArrayList&lt;Object&gt;(c.size());<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>      c = sort(c);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      l.addAll(c);<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>      out.startArray(l.size());<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>      for (Object o : l)<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         serializeAnything(out, o, elementType, "&lt;iterator&gt;", null);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>   }<a name="line.231"></a>
+<span class="sourceLineNo">232</span>}<a name="line.232"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/parser/ParserSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/parser/ParserSession.html b/content/site/apidocs/src-html/org/apache/juneau/parser/ParserSession.html
index b724b67..ce09c9d 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/parser/ParserSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/parser/ParserSession.html
@@ -700,8 +700,8 @@
 <span class="sourceLineNo">692</span><a name="line.692"></a>
 <span class="sourceLineNo">693</span>      if (type == null)<a name="line.693"></a>
 <span class="sourceLineNo">694</span>         type = (ClassMeta&lt;T&gt;)object();<a name="line.694"></a>
-<span class="sourceLineNo">695</span>      PojoSwap transform = type.getPojoSwap();<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      ClassMeta&lt;?&gt; sType = type.getSerializedClassMeta();<a name="line.696"></a>
+<span class="sourceLineNo">695</span>      PojoSwap swap = type.getPojoSwap(this);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>      ClassMeta&lt;?&gt; sType = swap == null ? type : swap.getSwapClassMeta(this);<a name="line.696"></a>
 <span class="sourceLineNo">697</span><a name="line.697"></a>
 <span class="sourceLineNo">698</span>      Object o = s;<a name="line.698"></a>
 <span class="sourceLineNo">699</span>      if (sType.isChar())<a name="line.699"></a>
@@ -720,8 +720,8 @@
 <span class="sourceLineNo">712</span>            throw new ParseException(getLastLocation(), "Invalid conversion from string to class ''{0}''", type);<a name="line.712"></a>
 <span class="sourceLineNo">713</span>      }<a name="line.713"></a>
 <span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>      if (transform != null)<a name="line.715"></a>
-<span class="sourceLineNo">716</span>         o = transform.unswap(this, o, type);<a name="line.716"></a>
+<span class="sourceLineNo">715</span>      if (swap != null)<a name="line.715"></a>
+<span class="sourceLineNo">716</span>         o = swap.unswap(this, o, type);<a name="line.716"></a>
 <span class="sourceLineNo">717</span><a name="line.717"></a>
 <span class="sourceLineNo">718</span>      return (T)o;<a name="line.718"></a>
 <span class="sourceLineNo">719</span>   }<a name="line.719"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Introspectable.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Introspectable.html b/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Introspectable.html
index f68ce0d..f6747a6 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Introspectable.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Introspectable.html
@@ -25,55 +25,58 @@
 <span class="sourceLineNo">017</span>import org.apache.juneau.*;<a name="line.17"></a>
 <span class="sourceLineNo">018</span>import org.apache.juneau.json.*;<a name="line.18"></a>
 <span class="sourceLineNo">019</span>import org.apache.juneau.rest.*;<a name="line.19"></a>
-<span class="sourceLineNo">020</span>import org.apache.juneau.utils.*;<a name="line.20"></a>
-<span class="sourceLineNo">021</span><a name="line.21"></a>
-<span class="sourceLineNo">022</span>/**<a name="line.22"></a>
-<span class="sourceLineNo">023</span> * Converter for enablement of {@link PojoIntrospector} support on response objects returned by a<a name="line.23"></a>
-<span class="sourceLineNo">024</span> * &lt;code&gt;@RestMethod&lt;/code&gt; method.<a name="line.24"></a>
-<span class="sourceLineNo">025</span> *<a name="line.25"></a>
-<span class="sourceLineNo">026</span> * &lt;p&gt;<a name="line.26"></a>
-<span class="sourceLineNo">027</span> * When enabled, public methods can be called on objects returned through the {@link RestResponse#setOutput(Object)}<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * method.<a name="line.28"></a>
-<span class="sourceLineNo">029</span> *<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * &lt;p&gt;<a name="line.30"></a>
-<span class="sourceLineNo">031</span> * Note that opening up public methods for calling through a REST interface can be dangerous, and should be done with<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * caution.<a name="line.32"></a>
-<span class="sourceLineNo">033</span> *<a name="line.33"></a>
-<span class="sourceLineNo">034</span> * &lt;p&gt;<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * Java methods are invoked by passing in the following URL parameters:<a name="line.35"></a>
-<span class="sourceLineNo">036</span> * &lt;ul class='spaced-list'&gt;<a name="line.36"></a>
-<span class="sourceLineNo">037</span> *    &lt;li&gt;<a name="line.37"></a>
-<span class="sourceLineNo">038</span> *       &lt;code&gt;&amp;amp;invokeMethod&lt;/code&gt; - The Java method name, optionally with arguments if necessary to<a name="line.38"></a>
-<span class="sourceLineNo">039</span> *       differentiate between methods.<a name="line.39"></a>
-<span class="sourceLineNo">040</span> *    &lt;li&gt;<a name="line.40"></a>
-<span class="sourceLineNo">041</span> *       &lt;code&gt;&amp;amp;invokeArgs&lt;/code&gt; - The arguments as a JSON array.<a name="line.41"></a>
-<span class="sourceLineNo">042</span> * &lt;/ul&gt;<a name="line.42"></a>
-<span class="sourceLineNo">043</span> *<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * &lt;p&gt;<a name="line.44"></a>
-<span class="sourceLineNo">045</span> * See {@link PojoIntrospector} for additional information on introspection of POJO methods.<a name="line.45"></a>
-<span class="sourceLineNo">046</span> */<a name="line.46"></a>
-<span class="sourceLineNo">047</span>public final class Introspectable implements RestConverter {<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>   @Override /* RestConverter */<a name="line.49"></a>
-<span class="sourceLineNo">050</span>   @SuppressWarnings({"unchecked", "rawtypes"})<a name="line.50"></a>
-<span class="sourceLineNo">051</span>   public Object convert(RestRequest req, Object o, ClassMeta cm) throws RestException {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>      String method = req.getQuery().getString("invokeMethod");<a name="line.52"></a>
-<span class="sourceLineNo">053</span>      String args = req.getQuery().getString("invokeArgs");<a name="line.53"></a>
-<span class="sourceLineNo">054</span>      if (method == null)<a name="line.54"></a>
-<span class="sourceLineNo">055</span>         return o;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>      try {<a name="line.56"></a>
-<span class="sourceLineNo">057</span>         if (cm.getPojoSwap() != null)<a name="line.57"></a>
-<span class="sourceLineNo">058</span>            o = cm.getPojoSwap().swap(req.getBeanSession(), o);<a name="line.58"></a>
-<span class="sourceLineNo">059</span>         return new PojoIntrospector(o, JsonParser.DEFAULT).invokeMethod(method, args);<a name="line.59"></a>
-<span class="sourceLineNo">060</span>      } catch (Exception e) {<a name="line.60"></a>
-<span class="sourceLineNo">061</span>         e.printStackTrace();<a name="line.61"></a>
-<span class="sourceLineNo">062</span>         return new RestException(SC_INTERNAL_SERVER_ERROR,<a name="line.62"></a>
-<span class="sourceLineNo">063</span>            "Error occurred trying to invoke method: {0}",<a name="line.63"></a>
-<span class="sourceLineNo">064</span>            e.getLocalizedMessage()<a name="line.64"></a>
-<span class="sourceLineNo">065</span>         ).initCause(e);<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      }<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   }<a name="line.67"></a>
-<span class="sourceLineNo">068</span>}<a name="line.68"></a>
+<span class="sourceLineNo">020</span>import org.apache.juneau.transform.*;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.juneau.utils.*;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * Converter for enablement of {@link PojoIntrospector} support on response objects returned by a<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * &lt;code&gt;@RestMethod&lt;/code&gt; method.<a name="line.25"></a>
+<span class="sourceLineNo">026</span> *<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * &lt;p&gt;<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * When enabled, public methods can be called on objects returned through the {@link RestResponse#setOutput(Object)}<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * method.<a name="line.29"></a>
+<span class="sourceLineNo">030</span> *<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * &lt;p&gt;<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * Note that opening up public methods for calling through a REST interface can be dangerous, and should be done with<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * caution.<a name="line.33"></a>
+<span class="sourceLineNo">034</span> *<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * &lt;p&gt;<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * Java methods are invoked by passing in the following URL parameters:<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * &lt;ul class='spaced-list'&gt;<a name="line.37"></a>
+<span class="sourceLineNo">038</span> *    &lt;li&gt;<a name="line.38"></a>
+<span class="sourceLineNo">039</span> *       &lt;code&gt;&amp;amp;invokeMethod&lt;/code&gt; - The Java method name, optionally with arguments if necessary to<a name="line.39"></a>
+<span class="sourceLineNo">040</span> *       differentiate between methods.<a name="line.40"></a>
+<span class="sourceLineNo">041</span> *    &lt;li&gt;<a name="line.41"></a>
+<span class="sourceLineNo">042</span> *       &lt;code&gt;&amp;amp;invokeArgs&lt;/code&gt; - The arguments as a JSON array.<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * &lt;/ul&gt;<a name="line.43"></a>
+<span class="sourceLineNo">044</span> *<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * &lt;p&gt;<a name="line.45"></a>
+<span class="sourceLineNo">046</span> * See {@link PojoIntrospector} for additional information on introspection of POJO methods.<a name="line.46"></a>
+<span class="sourceLineNo">047</span> */<a name="line.47"></a>
+<span class="sourceLineNo">048</span>public final class Introspectable implements RestConverter {<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>   @Override /* RestConverter */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>   @SuppressWarnings({"unchecked", "rawtypes"})<a name="line.51"></a>
+<span class="sourceLineNo">052</span>   public Object convert(RestRequest req, Object o, ClassMeta cm) throws RestException {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>      String method = req.getQuery().getString("invokeMethod");<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      String args = req.getQuery().getString("invokeArgs");<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      if (method == null)<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         return o;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      try {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         BeanSession bs = req.getBeanSession();<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         PojoSwap swap = cm.getPojoSwap(bs);<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         if (swap != null)<a name="line.60"></a>
+<span class="sourceLineNo">061</span>            o = swap.swap(bs, o);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         return new PojoIntrospector(o, JsonParser.DEFAULT).invokeMethod(method, args);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      } catch (Exception e) {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         e.printStackTrace();<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         return new RestException(SC_INTERNAL_SERVER_ERROR,<a name="line.65"></a>
+<span class="sourceLineNo">066</span>            "Error occurred trying to invoke method: {0}",<a name="line.66"></a>
+<span class="sourceLineNo">067</span>            e.getLocalizedMessage()<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         ).initCause(e);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>   }<a name="line.70"></a>
+<span class="sourceLineNo">071</span>}<a name="line.71"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Traversable.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Traversable.html b/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Traversable.html
index 8f7710c..bd41e71 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Traversable.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Traversable.html
@@ -24,57 +24,60 @@
 <span class="sourceLineNo">016</span><a name="line.16"></a>
 <span class="sourceLineNo">017</span>import org.apache.juneau.*;<a name="line.17"></a>
 <span class="sourceLineNo">018</span>import org.apache.juneau.rest.*;<a name="line.18"></a>
-<span class="sourceLineNo">019</span>import org.apache.juneau.utils.*;<a name="line.19"></a>
-<span class="sourceLineNo">020</span><a name="line.20"></a>
-<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
-<span class="sourceLineNo">022</span> * Converter for enabling of {@link PojoRest} support on response objects returned by a &lt;code&gt;@RestMethod&lt;/code&gt; method.<a name="line.22"></a>
-<span class="sourceLineNo">023</span> *<a name="line.23"></a>
-<span class="sourceLineNo">024</span> * &lt;p&gt;<a name="line.24"></a>
-<span class="sourceLineNo">025</span> * When enabled, objects in a POJO tree returned by the REST method can be addressed through additional URL path<a name="line.25"></a>
-<span class="sourceLineNo">026</span> * information.<a name="line.26"></a>
-<span class="sourceLineNo">027</span> *<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * &lt;p class='bcode'&gt;<a name="line.28"></a>
-<span class="sourceLineNo">029</span> *    &lt;jc&gt;// Resource method on resource "http://localhost:8080/sample/addressBook"&lt;/jc&gt;<a name="line.29"></a>
-<span class="sourceLineNo">030</span> *    &lt;ja&gt;@RestMethod&lt;/ja&gt;(name=&lt;js&gt;"GET"&lt;/js&gt;, converters=Traversable.&lt;jk&gt;class&lt;/jk&gt;)<a name="line.30"></a>
-<span class="sourceLineNo">031</span> *    &lt;jk&gt;public void&lt;/jk&gt; doGet(RestRequest req, RestResponse res) {<a name="line.31"></a>
-<span class="sourceLineNo">032</span> *       &lt;jk&gt;return new&lt;/jk&gt; AddressBook();<a name="line.32"></a>
-<span class="sourceLineNo">033</span> *    }<a name="line.33"></a>
-<span class="sourceLineNo">034</span> *<a name="line.34"></a>
-<span class="sourceLineNo">035</span> *    &lt;jc&gt;// Sample usage&lt;/jc&gt;<a name="line.35"></a>
-<span class="sourceLineNo">036</span> *    &lt;jk&gt;public static void&lt;/jk&gt; main(String[] args) {<a name="line.36"></a>
-<span class="sourceLineNo">037</span> *       &lt;jc&gt;// Get the zip code of the 2nd address of the first person in the address book.&lt;/jc&gt;<a name="line.37"></a>
-<span class="sourceLineNo">038</span> *       RestCall r = &lt;jk&gt;new&lt;/jk&gt; RestClient().doGet(&lt;js&gt;"http://localhost:8080/sample/addressBook/0/addresses/1/zip"&lt;/js&gt;);<a name="line.38"></a>
-<span class="sourceLineNo">039</span> *       &lt;jk&gt;int&lt;/jk&gt; zip = r.getResponse(Integer.&lt;jk&gt;class&lt;/jk&gt;);<a name="line.39"></a>
-<span class="sourceLineNo">040</span> *    }<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * &lt;/p&gt;<a name="line.41"></a>
-<span class="sourceLineNo">042</span> *<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * &lt;p&gt;<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * See {@link PojoRest} for additional information on addressing elements in a POJO tree using URL notation.<a name="line.44"></a>
-<span class="sourceLineNo">045</span> */<a name="line.45"></a>
-<span class="sourceLineNo">046</span>public final class Traversable implements RestConverter {<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>   @Override /* RestConverter */<a name="line.48"></a>
-<span class="sourceLineNo">049</span>   @SuppressWarnings({"rawtypes", "unchecked"})<a name="line.49"></a>
-<span class="sourceLineNo">050</span>   public Object convert(RestRequest req, Object o, ClassMeta cm) throws RestException {<a name="line.50"></a>
-<span class="sourceLineNo">051</span>      if (o == null)<a name="line.51"></a>
-<span class="sourceLineNo">052</span>         return null;<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>      if (req.getPathMatch().getRemainder() != null) {<a name="line.54"></a>
-<span class="sourceLineNo">055</span>         try {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>            if (cm.getPojoSwap() != null)<a name="line.56"></a>
-<span class="sourceLineNo">057</span>               o = cm.getPojoSwap().swap(req.getBeanSession(), o);<a name="line.57"></a>
-<span class="sourceLineNo">058</span>            PojoRest p = new PojoRest(o, req.getBody().getReaderParser());<a name="line.58"></a>
-<span class="sourceLineNo">059</span>            o = p.get(req.getPathMatch().getRemainder());<a name="line.59"></a>
-<span class="sourceLineNo">060</span>         } catch (PojoRestException e) {<a name="line.60"></a>
-<span class="sourceLineNo">061</span>            throw new RestException(e.getStatus(), e);<a name="line.61"></a>
-<span class="sourceLineNo">062</span>         } catch (Exception e) {<a name="line.62"></a>
-<span class="sourceLineNo">063</span>            throw new RestException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e);<a name="line.63"></a>
-<span class="sourceLineNo">064</span>         }<a name="line.64"></a>
-<span class="sourceLineNo">065</span>      }<a name="line.65"></a>
-<span class="sourceLineNo">066</span><a name="line.66"></a>
-<span class="sourceLineNo">067</span>      return o;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   }<a name="line.68"></a>
-<span class="sourceLineNo">069</span>}<a name="line.69"></a>
+<span class="sourceLineNo">019</span>import org.apache.juneau.transform.*;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.juneau.utils.*;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>/**<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * Converter for enabling of {@link PojoRest} support on response objects returned by a &lt;code&gt;@RestMethod&lt;/code&gt; method.<a name="line.23"></a>
+<span class="sourceLineNo">024</span> *<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * &lt;p&gt;<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * When enabled, objects in a POJO tree returned by the REST method can be addressed through additional URL path<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * information.<a name="line.27"></a>
+<span class="sourceLineNo">028</span> *<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * &lt;p class='bcode'&gt;<a name="line.29"></a>
+<span class="sourceLineNo">030</span> *    &lt;jc&gt;// Resource method on resource "http://localhost:8080/sample/addressBook"&lt;/jc&gt;<a name="line.30"></a>
+<span class="sourceLineNo">031</span> *    &lt;ja&gt;@RestMethod&lt;/ja&gt;(name=&lt;js&gt;"GET"&lt;/js&gt;, converters=Traversable.&lt;jk&gt;class&lt;/jk&gt;)<a name="line.31"></a>
+<span class="sourceLineNo">032</span> *    &lt;jk&gt;public void&lt;/jk&gt; doGet(RestRequest req, RestResponse res) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span> *       &lt;jk&gt;return new&lt;/jk&gt; AddressBook();<a name="line.33"></a>
+<span class="sourceLineNo">034</span> *    }<a name="line.34"></a>
+<span class="sourceLineNo">035</span> *<a name="line.35"></a>
+<span class="sourceLineNo">036</span> *    &lt;jc&gt;// Sample usage&lt;/jc&gt;<a name="line.36"></a>
+<span class="sourceLineNo">037</span> *    &lt;jk&gt;public static void&lt;/jk&gt; main(String[] args) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span> *       &lt;jc&gt;// Get the zip code of the 2nd address of the first person in the address book.&lt;/jc&gt;<a name="line.38"></a>
+<span class="sourceLineNo">039</span> *       RestCall r = &lt;jk&gt;new&lt;/jk&gt; RestClient().doGet(&lt;js&gt;"http://localhost:8080/sample/addressBook/0/addresses/1/zip"&lt;/js&gt;);<a name="line.39"></a>
+<span class="sourceLineNo">040</span> *       &lt;jk&gt;int&lt;/jk&gt; zip = r.getResponse(Integer.&lt;jk&gt;class&lt;/jk&gt;);<a name="line.40"></a>
+<span class="sourceLineNo">041</span> *    }<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * &lt;/p&gt;<a name="line.42"></a>
+<span class="sourceLineNo">043</span> *<a name="line.43"></a>
+<span class="sourceLineNo">044</span> * &lt;p&gt;<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * See {@link PojoRest} for additional information on addressing elements in a POJO tree using URL notation.<a name="line.45"></a>
+<span class="sourceLineNo">046</span> */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>public final class Traversable implements RestConverter {<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>   @Override /* RestConverter */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>   @SuppressWarnings({"rawtypes", "unchecked"})<a name="line.50"></a>
+<span class="sourceLineNo">051</span>   public Object convert(RestRequest req, Object o, ClassMeta cm) throws RestException {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      if (o == null)<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         return null;<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>      if (req.getPathMatch().getRemainder() != null) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         try {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>            BeanSession bs = req.getBeanSession();<a name="line.57"></a>
+<span class="sourceLineNo">058</span>            PojoSwap swap = cm.getPojoSwap(bs);<a name="line.58"></a>
+<span class="sourceLineNo">059</span>            if (swap != null)<a name="line.59"></a>
+<span class="sourceLineNo">060</span>               o = swap.swap(bs, o);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>            PojoRest p = new PojoRest(o, req.getBody().getReaderParser());<a name="line.61"></a>
+<span class="sourceLineNo">062</span>            o = p.get(req.getPathMatch().getRemainder());<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         } catch (PojoRestException e) {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>            throw new RestException(e.getStatus(), e);<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         } catch (Exception e) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>            throw new RestException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e);<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         }<a name="line.67"></a>
+<span class="sourceLineNo">068</span>      }<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>      return o;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>   }<a name="line.71"></a>
+<span class="sourceLineNo">072</span>}<a name="line.72"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/rest/labels/BeanDescription.BeanPropertyDescription.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/labels/BeanDescription.BeanPropertyDescription.html b/content/site/apidocs/src-html/org/apache/juneau/rest/labels/BeanDescription.BeanPropertyDescription.html
index 1d21b2c..f02d666 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/rest/labels/BeanDescription.BeanPropertyDescription.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/rest/labels/BeanDescription.BeanPropertyDescription.html
@@ -75,7 +75,7 @@
 <span class="sourceLineNo">067</span>       */<a name="line.67"></a>
 <span class="sourceLineNo">068</span>      public BeanPropertyDescription(String name, ClassMeta&lt;?&gt; type) {<a name="line.68"></a>
 <span class="sourceLineNo">069</span>         this.name = name;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>         this.type = type.getSerializedClassMeta().toString();<a name="line.70"></a>
+<span class="sourceLineNo">070</span>         this.type = type.getSerializedClassMeta(null).toString();<a name="line.70"></a>
 <span class="sourceLineNo">071</span>      }<a name="line.71"></a>
 <span class="sourceLineNo">072</span>   }<a name="line.72"></a>
 <span class="sourceLineNo">073</span>}<a name="line.73"></a>



[22/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/BeanMap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/BeanMap.html b/content/site/apidocs/src-html/org/apache/juneau/BeanMap.html
index e1de77e..48220e8 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/BeanMap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/BeanMap.html
@@ -190,7 +190,7 @@
 <span class="sourceLineNo">182</span>    * in a transformed value.<a name="line.182"></a>
 <span class="sourceLineNo">183</span>    * For example, if the bean property type class is a {@link Date} and the bean property has the<a name="line.183"></a>
 <span class="sourceLineNo">184</span>    * {@link org.apache.juneau.transforms.DateSwap.ISO8601DT} swap associated with it through the<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    * {@link BeanProperty#swap() @BeanProperty.swap()} annotation, the value being passed in must be<a name="line.185"></a>
+<span class="sourceLineNo">185</span>    * {@link Swap#value() @Swap.value()} annotation, the value being passed in must be<a name="line.185"></a>
 <span class="sourceLineNo">186</span>    * a String containing an ISO8601 date-time string value.<a name="line.186"></a>
 <span class="sourceLineNo">187</span>    *<a name="line.187"></a>
 <span class="sourceLineNo">188</span>    * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.188"></a>
@@ -269,7 +269,7 @@
 <span class="sourceLineNo">261</span>    * will return the transformed value.<a name="line.261"></a>
 <span class="sourceLineNo">262</span>    * For example, if the bean property type class is a {@link Date} and the bean property has the<a name="line.262"></a>
 <span class="sourceLineNo">263</span>    * {@link org.apache.juneau.transforms.DateSwap.ISO8601DT} swap associated with it through the<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    * {@link BeanProperty#swap() @BeanProperty.swap()} annotation, this method will return a String containing an<a name="line.264"></a>
+<span class="sourceLineNo">264</span>    * {@link Swap#value() @Swap.value()} annotation, this method will return a String containing an<a name="line.264"></a>
 <span class="sourceLineNo">265</span>    * ISO8601 date-time string value.<a name="line.265"></a>
 <span class="sourceLineNo">266</span>    *<a name="line.266"></a>
 <span class="sourceLineNo">267</span>    * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.267"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/BeanMapEntry.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/BeanMapEntry.html b/content/site/apidocs/src-html/org/apache/juneau/BeanMapEntry.html
index 1bc4bb1..6c538cd 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/BeanMapEntry.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/BeanMapEntry.html
@@ -80,7 +80,7 @@
 <span class="sourceLineNo">072</span>    * will return the transformed value.<a name="line.72"></a>
 <span class="sourceLineNo">073</span>    * For example, if the bean property type class is a {@link Date} and the bean property has the<a name="line.73"></a>
 <span class="sourceLineNo">074</span>    * {@link org.apache.juneau.transforms.DateSwap.ISO8601DT} swap associated with it through the<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    * {@link BeanProperty#swap() @BeanProperty.swap()} annotation, this method will return a String containing an<a name="line.75"></a>
+<span class="sourceLineNo">075</span>    * {@link Swap#value() @Swap.value()} annotation, this method will return a String containing an<a name="line.75"></a>
 <span class="sourceLineNo">076</span>    * ISO8601 date-time string value.<a name="line.76"></a>
 <span class="sourceLineNo">077</span>    */<a name="line.77"></a>
 <span class="sourceLineNo">078</span>   @Override /* Map.Entry */<a name="line.78"></a>
@@ -103,7 +103,7 @@
 <span class="sourceLineNo">095</span>    * in a transformed value.<a name="line.95"></a>
 <span class="sourceLineNo">096</span>    * For example, if the bean property type class is a {@link Date} and the bean property has the<a name="line.96"></a>
 <span class="sourceLineNo">097</span>    * {@link org.apache.juneau.transforms.DateSwap.ISO8601DT} swap associated with it through the<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    * {@link BeanProperty#swap() @BeanProperty.swap()} annotation, the value being passed in must be a String<a name="line.98"></a>
+<span class="sourceLineNo">098</span>    * {@link Swap#value() @Swap.value()} annotation, the value being passed in must be a String<a name="line.98"></a>
 <span class="sourceLineNo">099</span>    * containing an ISO8601 date-time string value.<a name="line.99"></a>
 <span class="sourceLineNo">100</span>    *<a name="line.100"></a>
 <span class="sourceLineNo">101</span>    * @return  The set value after it's been converted.<a name="line.101"></a>


[28/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transform/PojoSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transform/PojoSwap.html b/content/site/apidocs/org/apache/juneau/transform/PojoSwap.html
index 15ace1e..ca46b45 100644
--- a/content/site/apidocs/org/apache/juneau/transform/PojoSwap.html
+++ b/content/site/apidocs/org/apache/juneau/transform/PojoSwap.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -117,15 +117,18 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public abstract class <a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.117">PojoSwap</a>&lt;T,S&gt;
+<pre>public abstract class <a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.322">PojoSwap</a>&lt;T,S&gt;
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
-<div class="block">Used to swap out non-serializable objects with serializable replacements during serialization, and vis-versa during parsing.
+<div class="block">Used to swap out non-serializable objects with serializable replacements during serialization, and vis-versa during
+ parsing.
 
- <h5 class='section'>Description:</h5>
 
+ <h6 class='section'>Description:</h6>
+
+ <p>
  <code>PojoSwaps</code> are used to extend the functionality of the serializers and parsers to be able to handle
- POJOs that aren't automatically handled by the serializers or parsers.  For example, JSON does not have a standard
- representation for rendering dates.
+ POJOs that aren't automatically handled by the serializers or parsers.
+ <br>For example, JSON does not have a standard representation for rendering dates.
  By defining a special <code>Date</code> swap and associating it with a serializer and parser, you can convert a
  <code>Date</code> object to a <code>String</code> during serialization, and convert that <code>String</code> object back into a
  <code>Date</code> object during parsing.
@@ -135,7 +138,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 
  <p>
  <code>PojoSwaps</code> are associated with instances of <a href="../../../../org/apache/juneau/BeanContext.html" title="class in org.apache.juneau"><code>BeanContexts</code></a> by passing the swap
- class to the <a href="../../../../org/apache/juneau/CoreObjectBuilder.html#pojoSwaps-java.lang.Class...-"><code>CoreObjectBuilder.pojoSwaps(Class...)</code></a> method.
+ class to the <a href="../../../../org/apache/juneau/serializer/SerializerBuilder.html#pojoSwaps-java.lang.Class...-"><code>SerializerBuilder.pojoSwaps(Class...)</code></a> and <a href="../../../../org/apache/juneau/parser/ParserBuilder.html#pojoSwaps-java.lang.Class...-"><code>ParserBuilder.pojoSwaps(Class...)</code></a> methods.
  <br>When associated with a bean context, fields of the specified type will automatically be converted when the
  <a href="../../../../org/apache/juneau/BeanMap.html#get-java.lang.Object-"><code>BeanMap.get(Object)</code></a> or <a href="../../../../org/apache/juneau/BeanMap.html#put-java.lang.String-java.lang.Object-"><code>BeanMap.put(String, Object)</code></a> methods are called.
 
@@ -150,6 +153,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
  <br><a href="../../../../org/apache/juneau/parser/Parser.html" title="class in org.apache.juneau.parser"><code>Parsers</code></a> use swaps to convert objects of type S into objects of type T, and on calls to
  <a href="../../../../org/apache/juneau/BeanMap.html#put-java.lang.String-java.lang.Object-"><code>BeanMap.put(String,Object)</code></a>.
 
+
  <h6 class='topic'>Subtypes</h6>
 
  The following abstract subclasses are provided for common swap types:
@@ -158,13 +162,6 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
    <li><a href="../../../../org/apache/juneau/transform/MapSwap.html" title="class in org.apache.juneau.transform"><code>MapSwap</code></a> - Objects swapped with <a href="../../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau"><code>ObjectMaps</code></a>.
  </ol>
 
- <h6 class='topic'>Localization</h6>
-
- Swaps have access to the session locale and timezone through the <a href="../../../../org/apache/juneau/BeanSession.html#getLocale--"><code>BeanSession.getLocale()</code></a> and
- <a href="../../../../org/apache/juneau/BeanSession.html#getTimeZone--"><code>BeanSession.getTimeZone()</code></a> methods.
- This allows you to specify localized swap values when needed.
- If using the REST server API, the locale and timezone are set based on the <code>Accept-Language</code> and
- <code>Time-Zone</code> headers on the request.
 
  <h6 class='topic'>Swap Class Type <code>&lt;S&gt;</code></h6>
 
@@ -188,10 +185,60 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
       An array of anything on this list.
  </ul>
 
+
  <h6 class='topic'>Normal Class Type <code>&lt;T&gt;</code></h6>
 
  The normal object representation of an object.
 
+
+ <h6 class='topic'>Overview</h6>
+
+ The following is an example of a swap that replaces byte arrays with BASE-64 encoded strings:
+
+ <p class='bcode'>
+   <jk>public class</jk> ByteArrayBase64Swap <jk>extends</jk> PojoSwap<<jk>byte</jk>[],String> {
+
+      <jk>public</jk> String swap(BeanSession session, <jk>byte</jk>[] b) <jk>throws</jk> SerializeException {
+         <jk>return</jk> StringUtils.<jsm>base64Encode</jsm>(b);
+      }
+
+      <jk>public byte</jk>[] unswap(BeanSession session, String s, ClassMeta&lt;?&gt; hint) <jk>throws</jk> ParseException {
+         <jk>return</jk> StringUtils.<jsm>base64Decode</jsm>(s);
+      }
+   }
+ </p>
+
+ <p class='bcode'>
+   WriterSerializer s = JsonSerializer.<jsf>DEFAULT_LAX</jsf>.builder().pojoSwaps(ByteArrayBase64Swap.<jk>class</jk>).build();
+   String json = s.serialize(<jk>new byte</jk>[] {1,2,3});  <jc>// Produces "'AQID'"</jc>
+ </p>
+
+
+ <h6 class='topic'>Swap annotation</h6>
+
+ <p>
+ Swap classes are often associated directly with POJOs using the <a href="../../../../org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><code>@Swap</code></a> annotation.
+
+ <p class='bcode'>
+   <jk>public class</jk> MyPojoSwap <jk>extends</jk> PojoSwap&lt;MyPojo,String&gt; { ... }
+
+   <ja>@Swap</ja>(MyPojoSwap.<jk>class</jk>)
+   <jk>public class</jk> MyPojo { ... }
+ </p>
+
+ <p>
+ The <ja>@Swap</ja> annotation is often simpler since you do not need to tell your serializers and parsers about them
+ leading to less code.
+
+ <p>
+ Swaps can also be associated with getters and setters as well:
+
+ <p class='bcode'>
+   <ja>@BeanProperty</ja>(swap=MyPojo.<jk>class</jk>)
+   <jk>public</jk> MyPojo getMyPojo();
+ </p>
+
+
  <h6 class='topic'>One-way vs. Two-way Serialization</h6>
 
  Note that while there is a unified interface for handling swaps during both serialization and parsing,
@@ -205,7 +252,162 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
  possible to re-parse it back into a <code>Date</code>, since there is no way for the <code>Parser</code> to know it's a
  <code>Date</code> from just the JSON or XML text.
 
- <h5 class='section'>Additional information:</h5>
+
+ <h6 class='topic'>Per media-type swaps</h6>
+ <p>
+ The <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--"><code>forMediaTypes()</code></a> method can be overridden to provide a set of media types that the swap is invoked on.
+ It's also possible to define multiple swaps against the same POJO as long as they're differentiated by media type.
+ When multiple swaps are defined, the best-match media type is used.
+
+ <p>
+ In the following example, we define 3 swaps against the same POJO.  One for JSON, one for XML, and one for all
+ other types.
+
+ <p class='bcode'>
+   <jk>public class</jk> PojoSwapTest {
+
+      <jk>public static class</jk> MyPojo {}
+
+      <jk>public static class</jk> MyJsonSwap <jk>extends</jk> PojoSwap&lt;MyPojo,String&gt; {
+
+         <jk>public</jk> MediaType[] forMediaTypes() {
+            <jk>return</jk> MediaType.<jsm>forStrings</jsm>(<js>"&#42;/json"</js>);
+         }
+
+         <jk>public</jk> String swap(BeanSession session, MyPojo o) <jk>throws</jk> Exception {
+            <jk>return</jk> <js>"It's JSON!"</js>;
+         }
+      }
+
+      <jk>public static class</jk> MyXmlSwap <jk>extends</jk> PojoSwap&lt;MyPojo,String&gt; {
+
+         <jk>public</jk> MediaType[] forMediaTypes() {
+            <jk>return</jk> MediaType.<jsm>forStrings</jsm>(<js>"&#42;/xml"</js>);
+         }
+
+         <jk>public</jk> String swap(BeanSession session, MyPojo o) <jk>throws</jk> Exception {
+            <jk>return</jk> <js>"It's XML!"</js>;
+         }
+      }
+
+      <jk>public static class</jk> MyOtherSwap <jk>extends</jk> PojoSwap&lt;MyPojo,String&gt; {
+
+         <jk>public</jk> MediaType[] forMediaTypes() {
+            <jk>return</jk> MediaType.<jsm>forStrings</jsm>(<js>"&#42;/*"</js>);
+         }
+
+         <jk>public</jk> String swap(BeanSession session, MyPojo o) <jk>throws</jk> Exception {
+            <jk>return</jk> <js>"It's something else!"</js>;
+         }
+      }
+
+      <ja>@Test</ja>
+      <jk>public void</jk> doTest() <jk>throws</jk> Exception {
+
+         SerializerGroup g = <jk>new</jk> SerializerGroupBuilder()
+            .append(JsonSerializer.<jk>class</jk>, XmlSerializer.<jk>class</jk>, HtmlSerializer.<jk>class</jk>)
+            .sq()
+            .pojoSwaps(MyJsonSwap.<jk>class</jk>, MyXmlSwap.<jk>class</jk>, MyOtherSwap.<jk>class</jk>)
+            .build();
+
+         MyPojo myPojo = <jk>new</jk> MyPojo();
+
+         String json = g.getWriterSerializer(<js>"text/json"</js>).serialize(myPojo);
+         <jsm>assertEquals</jsm>(<js>"'It\\'s JSON!'"</js>, json);
+
+         String xml = g.getWriterSerializer(<js>"text/xml"</js>).serialize(myPojo);
+         <jsm>assertEquals</jsm>(<js>"&lt;string&gt;It's XML!&lt;/string&gt;"</js>, xml);
+
+         String html = g.getWriterSerializer(<js>"text/html"</js>).serialize(myPojo);
+         <jsm>assertEquals</jsm>(<js>"&lt;string&gt;It's something else!&lt;/string&gt;"</js>, html);
+      }
+   }
+ </p>
+
+ <p>
+ Multiple swaps can be associated with a POJO by using the <a href="../../../../org/apache/juneau/annotation/Swaps.html" title="annotation in org.apache.juneau.annotation"><code>@Swaps</code></a> annotation:
+
+ <p class='bcode'>
+   <ja>@Swaps</ja>(
+      {
+         <ja>@Swap</ja>(MyJsonSwap.<jk>class</jk>),
+         <ja>@Swap</ja>(MyXmlSwap.<jk>class</jk>),
+         <ja>@Swap</ja>(MyOtherSwap.<jk>class</jk>)
+      }
+   )
+   <jk>public class</jk> MyPojo {}
+ </p>
+
+ <p>
+ Note that since <code>Readers</code> get serialized directly to the output of a serializer, it's possible to
+ implement a swap that provides fully-customized output.
+
+ <p class='bcode'>
+   <jk>public class</jk> MyJsonSwap <jk>extends</jk> PojoSwap&lt;MyPojo,Reader&gt; {
+
+      <jk>public</jk> MediaType[] forMediaTypes() {
+         <jk>return</jk> MediaType.<jsm>forStrings</jsm>(<js>"&#42;/json"</js>);
+      }
+
+      <jk>public</jk> Reader swap(BeanSession session, MyPojo o) <jk>throws</jk> Exception {
+         <jk>return new</jk> StringReader(<js>"{message:'Custom JSON!'}"</js>);
+      }
+   }
+ </p>
+
+
+ <h6 class='topic'>Templates</h6>
+
+ <p>
+ Template strings are arbitrary strings associated with swaps that help provide additional context information
+ for the swap class.
+ They're called 'templates' because their primary purpose is for providing template names, such as Apache FreeMarker
+ template names.
+
+ <p>
+ The following is an example of a templated swap class used to serialize POJOs to HTML using FreeMarker:
+
+ <p class='bcode'>
+   <jc>// Our abstracted templated swap class.</jc>
+   <jk>public abstract class</jk> FreeMarkerSwap <jk>extends</jk> PojoSwap&lt;Object,Reader&gt; {
+
+      <jk>public</jk> MediaType[] forMediaTypes() {
+         <jk>return</jk> MediaType.<jsm>forStrings</jsm>(<js>"&#42;/html"</js>);
+      }
+
+      <jk>public</jk> Reader swap(BeanSession session, Object o, String template) <jk>throws</jk> Exception {
+         <jk>return</jk> getFreeMarkerReader(template, o);  <jc>// Some method that creates raw HTML.</jc>
+      }
+   }
+
+   <jc>// An implementation of our templated swap class.</jc>
+   <jk>public class</jk> MyPojoSwap <jk>extends</jk> FreeMarkerSwap {
+      <jk>public</jk> String withTemplate() {
+         <jk>return</jk> <js>"MyPojo.div.ftl"</js>;
+      }
+   }
+ </p>
+
+ <p>
+ In practice however, the template is usually going to be defined on a <ja>@Swap</ja> annotation like the following
+ example:
+
+ <p class='bcode'>
+   <ja>@Swap</ja>(impl=FreeMarkerSwap.<jk>class</jk>, template=<js>"MyPojo.div.ftl"</js>)
+   <jk>public class</jk> MyPojo {}
+ </p>
+
+
+ <h6 class='topic'>Localization</h6>
+
+ Swaps have access to the session locale and timezone through the <a href="../../../../org/apache/juneau/BeanSession.html#getLocale--"><code>BeanSession.getLocale()</code></a> and
+ <a href="../../../../org/apache/juneau/BeanSession.html#getTimeZone--"><code>BeanSession.getTimeZone()</code></a> methods.
+ This allows you to specify localized swap values when needed.
+ If using the REST server API, the locale and timezone are set based on the <code>Accept-Language</code> and
+ <code>Time-Zone</code> headers on the request.
+
+
+ <h6 class='section'>Additional information:</h6>
 
  See <a class='doclink' href='package-summary.html#TOC'>org.apache.juneau.transform</a> for more information.</div>
 </li>
@@ -276,47 +478,73 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a></span>()</code>
+<div class="block">Returns the media types that this swap is applicable to.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a>&lt;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>,?&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a></span>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>[]&nbsp;mediaTypes)</code>
+<div class="block">Sets the media types that this swap is associated with.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a></span>()</code>
 <div class="block">Returns the T class, the normalized form of the class.</div>
 </td>
 </tr>
-<tr id="i1" class="rowColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a></span>()</code>
 <div class="block">Returns the G class, the generalized form of the class.</div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a></span>(<a href="../../../../org/apache/juneau/BeanContext.html" title="class in org.apache.juneau">BeanContext</a>&nbsp;beanContext)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a></span>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session)</code>
 <div class="block">Returns the <a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau"><code>ClassMeta</code></a> of the transformed class type.</div>
 </td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
 <div class="block">Checks if the specified object is an instance of the normal class defined on this swap.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
 <div class="block">Checks if the specified object is an instance of the swap class defined on this swap.</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a></span>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session)</code>
+<div class="block">Returns a number indicating how well this swap matches the specified session.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">S</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.juneau.BeanSession-T-">swap</a></span>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
     <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>&nbsp;o)</code>
 <div class="block">If this transform is to be used to serialize non-serializable POJOs, it must implement this method.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">S</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.juneau.BeanSession-T-java.lang.String-">swap</a></span>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+    <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>&nbsp;o,
+    <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;template)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.juneau.BeanSession-T-"><code>swap(BeanSession, Object)</code></a>, but can be used if your swap has a template associated with it.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">unswap</a></span>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
       <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">S</a>&nbsp;f,
@@ -324,6 +552,27 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <div class="block">If this transform is to be used to reconstitute POJOs that aren't true Java beans, it must implement this method.</div>
 </td>
 </tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a></span>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+      <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">S</a>&nbsp;f,
+      <a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;hint,
+      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;template)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-"><code>unswap(BeanSession, Object, ClassMeta)</code></a>, but can be used if your swap has a template associated with it.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a></span>()</code>
+<div class="block">Returns additional context information for this swap.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a>&lt;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>,?&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;template)</code>
+<div class="block">Sets the template string on this swap.</div>
+</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -352,7 +601,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>NULL</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a> <a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.123">NULL</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a> <a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.327">NULL</a></pre>
 <div class="block">Represents a non-existent pojo swap.</div>
 </li>
 </ul>
@@ -370,7 +619,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>PojoSwap</h4>
-<pre>protected&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.133">PojoSwap</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.341">PojoSwap</a>()</pre>
 <div class="block">Constructor.</div>
 </li>
 </ul>
@@ -380,7 +629,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>PojoSwap</h4>
-<pre>protected&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.144">PojoSwap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>&gt;&nbsp;normalClass,
+<pre>protected&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.354">PojoSwap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>&gt;&nbsp;normalClass,
                    <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;swapClass)</pre>
 <div class="block">Constructor for when the normal and transformed classes are already known.</div>
 <dl>
@@ -398,6 +647,113 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="forMediaTypes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>forMediaTypes</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>[]&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.372">forMediaTypes</a>()</pre>
+<div class="block">Returns the media types that this swap is applicable to.
+
+ <p>
+ This method can be overridden to programmatically specify what media types it applies to.
+
+ <p>
+ This method is the programmatic equivalent to the <a href="../../../../org/apache/juneau/annotation/Swap.html#mediaTypes--"><code>Swap.mediaTypes()</code></a> annotation.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The media types that this swap is applicable to, or <jk>null</jk> if it's applicable for all media types.</dd>
+</dl>
+</li>
+</ul>
+<a name="withTemplate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withTemplate</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.390">withTemplate</a>()</pre>
+<div class="block">Returns additional context information for this swap.
+
+ <p>
+ Typically this is going to be used to specify a template name, such as a FreeMarker template file name.
+
+ <p>
+ This method can be overridden to programmatically specify a template value.
+
+ <p>
+ This method is the programmatic equivalent to the <a href="../../../../org/apache/juneau/annotation/Swap.html#template--"><code>Swap.template()</code></a> annotation.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Additional context information, or <jk>null</jk> if not specified.</dd>
+</dl>
+</li>
+</ul>
+<a name="forMediaTypes-org.apache.juneau.http.MediaType:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>forMediaTypes</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a>&lt;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>,?&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.400">forMediaTypes</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>[]&nbsp;mediaTypes)</pre>
+<div class="block">Sets the media types that this swap is associated with.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaTypes</code> - The media types that this swap is associated with.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>This object (for method chaining).</dd>
+</dl>
+</li>
+</ul>
+<a name="withTemplate-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withTemplate</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a>&lt;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>,?&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.411">withTemplate</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;template)</pre>
+<div class="block">Sets the template string on this swap.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>template</code> - The template string on this swap.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>This object (for method chaining).</dd>
+</dl>
+</li>
+</ul>
+<a name="match-org.apache.juneau.BeanSession-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>match</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.438">match</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session)</pre>
+<div class="block">Returns a number indicating how well this swap matches the specified session.
+
+ <p>
+ Uses the <a href="../../../../org/apache/juneau/http/MediaType.html#match-org.apache.juneau.http.MediaType-boolean-"><code>MediaType.match(MediaType, boolean)</code></a> method algorithm to produce a number whereby a
+ larger value indicates a "better match".
+ The idea being that if multiple swaps are associated with a given POJO, we want to pick the best one.
+
+ <p>
+ For example, if the session media type is <js>"text/json"</js>, then the match values are shown below:
+
+ <ul>
+   <li><js>"text/json"</js> = <code>100,000</code>
+   <li><js>"&#42;/json"</js> = <code>5,100</code>
+   <li><js>"&#42;/&#42;"</js> = <code>5,000</code>
+   <li>No media types specified on swap = <code>1</code>
+   <li><js>"text/xml"</js> = <code>0</code>
+ </ul></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - The bean session.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Zero if swap doesn't match the session, or a positive number if it does.</dd>
+</dl>
+</li>
+</ul>
 <a name="swap-org.apache.juneau.BeanSession-java.lang.Object-">
 <!--   -->
 </a><a name="swap-org.apache.juneau.BeanSession-T-">
@@ -406,7 +762,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>swap</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">S</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.178">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">S</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.478">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
               <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>&nbsp;o)
        throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">If this transform is to be used to serialize non-serializable POJOs, it must implement this method.
@@ -441,6 +797,32 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 </dl>
 </li>
 </ul>
+<a name="swap-org.apache.juneau.BeanSession-java.lang.Object-java.lang.String-">
+<!--   -->
+</a><a name="swap-org.apache.juneau.BeanSession-T-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>swap</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">S</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.494">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+              <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>&nbsp;o,
+              <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;template)
+       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.juneau.BeanSession-T-"><code>swap(BeanSession, Object)</code></a>, but can be used if your swap has a template associated with it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - The bean session to use to get the class meta.
+   This is always going to be the same bean context that created this swap.</dd>
+<dd><code>o</code> - The object to be transformed.</dd>
+<dd><code>template</code> - The template string associated with this swap.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The transformed object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - If a problem occurred trying to convert the output.</dd>
+</dl>
+</li>
+</ul>
 <a name="unswap-org.apache.juneau.BeanSession-java.lang.Object-org.apache.juneau.ClassMeta-">
 <!--   -->
 </a><a name="unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-">
@@ -449,7 +831,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>unswap</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.197">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.513">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
                 <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">S</a>&nbsp;f,
                 <a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;hint)
          throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -470,13 +852,44 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 </dl>
 </li>
 </ul>
+<a name="unswap-org.apache.juneau.BeanSession-java.lang.Object-org.apache.juneau.ClassMeta-java.lang.String-">
+<!--   -->
+</a><a name="unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unswap</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.534">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+                <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">S</a>&nbsp;f,
+                <a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;hint,
+                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;template)
+         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-"><code>unswap(BeanSession, Object, ClassMeta)</code></a>, but can be used if your swap has a template associated with it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - The bean session to use to get the class meta.
+   This is always going to be the same bean context that created this swap.</dd>
+<dd><code>f</code> - The transformed object.</dd>
+<dd><code>hint</code> - If possible, the parser will try to tell you the object type being created.
+   For example, on a serialized date, this may tell you that the object being created must be of type
+   <code>GregorianCalendar</code>.
+   <br>This may be <jk>null</jk> if the parser cannot make this determination.</dd>
+<dd><code>template</code> - The template string associated with this swap.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The transformed object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - If a problem occurred trying to convert the output.</dd>
+</dl>
+</li>
+</ul>
 <a name="getNormalClass--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getNormalClass</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.206">getNormalClass</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.543">getNormalClass</a>()</pre>
 <div class="block">Returns the T class, the normalized form of the class.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -490,7 +903,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getSwapClass</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.219">getSwapClass</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.556">getSwapClass</a>()</pre>
 <div class="block">Returns the G class, the generalized form of the class.
 
  <p>
@@ -502,20 +915,20 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 </dl>
 </li>
 </ul>
-<a name="getSwapClassMeta-org.apache.juneau.BeanContext-">
+<a name="getSwapClassMeta-org.apache.juneau.BeanSession-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getSwapClassMeta</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.234">getSwapClassMeta</a>(<a href="../../../../org/apache/juneau/BeanContext.html" title="class in org.apache.juneau">BeanContext</a>&nbsp;beanContext)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.571">getSwapClassMeta</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session)</pre>
 <div class="block">Returns the <a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau"><code>ClassMeta</code></a> of the transformed class type.
 
  <p>
  This value is cached for quick lookup.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>beanContext</code> - The bean context to use to get the class meta.
+<dd><code>session</code> - The bean context to use to get the class meta.
    This is always going to be the same bean context that created this swap.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The <a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau"><code>ClassMeta</code></a> of the transformed class type.</dd>
@@ -528,7 +941,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>isNormalObject</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.248">isNormalObject</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.585">isNormalObject</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
 <div class="block">Checks if the specified object is an instance of the normal class defined on this swap.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -545,7 +958,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>isSwappedObject</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.262">isSwappedObject</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.599">isSwappedObject</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
 <div class="block">Checks if the specified object is an instance of the swap class defined on this swap.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -562,7 +975,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.274">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/PojoSwap.html#line.611">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transform/StringSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transform/StringSwap.html b/content/site/apidocs/org/apache/juneau/transform/StringSwap.html
index 1139928..f6c5c4d 100644
--- a/content/site/apidocs/org/apache/juneau/transform/StringSwap.html
+++ b/content/site/apidocs/org/apache/juneau/transform/StringSwap.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/juneau/transform/StringSwap.html" target="_top">Frames</a></li>
@@ -195,7 +195,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -339,7 +339,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/juneau/transform/StringSwap.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transform/SurrogateSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transform/SurrogateSwap.html b/content/site/apidocs/org/apache/juneau/transform/SurrogateSwap.html
index 5ae0d5b..79918fb 100644
--- a/content/site/apidocs/org/apache/juneau/transform/SurrogateSwap.html
+++ b/content/site/apidocs/org/apache/juneau/transform/SurrogateSwap.html
@@ -48,7 +48,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/juneau/transform/StringSwap.html" title="class in org.apache.juneau.transform"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li>Next&nbsp;Class</li>
 </ul>
 <ul class="navList">
@@ -118,118 +118,9 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../src-html/org/apache/juneau/transform/SurrogateSwap.html#line.138">SurrogateSwap</a>&lt;T,F&gt;
+<pre>public class <a href="../../../../src-html/org/apache/juneau/transform/SurrogateSwap.html#line.29">SurrogateSwap</a>&lt;T,F&gt;
 extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a>&lt;T,F&gt;</pre>
-<div class="block">Specialized <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> for surrogate classes.
-
- <p>
- Surrogate classes are used in place of other classes during serialization.
- For example, you may want to use a surrogate class to change the names or order of bean properties on a bean.
-
- <p>
- The following is an example of a surrogate class change changes a property name:
- <p class='bcode'>
-   <jk>public class</jk> SurrogateClass {
-      <jk>public</jk> String surrogateField;  <jc>// New bean property</jc>
-
-      <jk>public</jk> SurrogateClass(NormalClass normalClass) {
-         <jk>this</jk>.surrogateField = normalClass.normalField;
-      }
-   }
- </p>
-
- <p>
- Optionally, a public static method can be used to un-transform a class during parsing:
- <p class='bcode'>
-   <jk>public class</jk> SurrogateClass {
-      ...
-      <jk>public static</jk> NormalClass <jsm>toNormalClass</jsm>(SurrogateClass surrogateClass) {
-         <jk>return new</jk> NormalClass(surrogateClass.transformedField);
-      }
-   }
- </p>
-
- <p>
- Surrogate classes must conform to the following:
- <ul class='spaced-list'>
-   <li>
-      It must have a one or more public constructors that take in a single parameter whose type is the normal types.
-      (It is possible to define a class as a surrogate for multiple class types by using multiple constructors with
-      different parameter types).
-   <li>
-      It optionally can have a public static method that takes in a single parameter whose type is the transformed
-      type and returns an instance of the normal type.
-      This is called the un-transform method.
-      The method can be called anything.
-   <li>
-      If an un-transform method is present, the class must also contain a no-arg constructor (so that the
-      transformed class can be instantiated by the parser before being converted into the normal class by the
-      un-transform method).
- </ul>
-
- <p>
- Surrogate classes are associated with serializers and parsers using the <a href="../../../../org/apache/juneau/CoreObjectBuilder.html#pojoSwaps-java.lang.Class...-"><code>CoreObjectBuilder.pojoSwaps(Class...)</code></a>
- method.
- <p class='bcode'>
-   <ja>@Test</ja>
-   <jk>public void</jk> test() <jk>throws</jk> Exception {
-      JsonSerializer s = <jk>new</jk> JsonSerializerBuilder().simple().pojoSwaps(Surrogate.<jk>class</jk>).build();
-      JsonParser p = <jk>new</jk> JsonParserBuilder().pojoSwaps(Surrogate.<jk>class</jk>).build();
-      String r;
-      Normal n = Normal.<jsm>create</jsm>();
-
-      r = s.serialize(n);
-      assertEquals(<js>"{f2:'f1'}"</js>, r);
-
-      n = p.parse(r, Normal.<jk>class</jk>);
-      assertEquals(<js>"f1"</js>, n.f1);
-   }
-
-   <jc>// The normal class</jc>
-   <jk>public class</jk> Normal {
-      <jk>public</jk> String f1;
-
-      <jk>public static</jk> Normal <jsm>create</jsm>() {
-         Normal n = <jk>new</jk> Normal();
-         n.f1 = <js>"f1"</js>;
-         <jk>return</jk> n;
-      }
-   }
-
-   <jc>// The surrogate class</jc>
-   <jk>public static class</jk> Surrogate {
-      <jk>public</jk> String f2;
-
-      <jc>// Surrogate constructor</jc>
-      <jk>public</jk> Surrogate(Normal n) {
-         f2 = n.f1;
-      }
-
-      <jc>// Constructor used during parsing (only needed if un-transform method specified)</jc>
-      <jk>public</jk> Surrogate() {}
-
-      <jc>// Un-transform method (optional)</jc>
-      <jk>public static</jk> Normal <jsm>toNormal</jsm>(Surrogate f) {
-         Normal n = <jk>new</jk> Normal();
-         n.f1 = f.f2;
-         <jk>return</jk> n;
-      }
-   }
- </p>
-
- <p>
- It should be noted that a surrogate class is functionally equivalent to the following <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>
- implementation:
- <p class='bcode'>
-   <jk>public static class</jk> SurrogateSwap <jk>extends</jk> PojoSwap&lt;Normal,Surrogate&gt; {
-      <jk>public</jk> Surrogate swap(Normal n) <jk>throws</jk> SerializeException {
-         <jk>return new</jk> Surrogate(n);
-      }
-      <jk>public</jk> Normal unswap(Surrogate s, ClassMeta&lt;?&gt; hint) <jk>throws</jk> ParseException {
-         <jk>return</jk> Surrogate.<jsm>toNormal</jsm>(s);
-      }
-   }
- </p></div>
+<div class="block">Specialized <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> for <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a> classes.</div>
 </li>
 </ul>
 </div>
@@ -313,7 +204,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -342,7 +233,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SurrogateSwap</h4>
-<pre>protected&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/SurrogateSwap.html#line.150">SurrogateSwap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="type parameter in SurrogateSwap">T</a>&gt;&nbsp;forClass,
+<pre>protected&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/SurrogateSwap.html#line.41">SurrogateSwap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="type parameter in SurrogateSwap">T</a>&gt;&nbsp;forClass,
                         <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Constructor.html?is-external=true" title="class or interface in java.lang.reflect">Constructor</a>&lt;<a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="type parameter in SurrogateSwap">F</a>&gt;&nbsp;constructor,
                         <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;untransformMethod)</pre>
 <div class="block">Constructor.</div>
@@ -368,7 +259,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <ul class="blockList">
 <li class="blockList">
 <h4>findPojoSwaps</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform">SurrogateSwap</a>&lt;?,?&gt;&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/SurrogateSwap.html#line.167">findPojoSwaps</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c)</pre>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform">SurrogateSwap</a>&lt;?,?&gt;&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/SurrogateSwap.html#line.58">findPojoSwaps</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c)</pre>
 <div class="block">Given the specified surrogate class, return the list of POJO swaps.
 
  <p>
@@ -390,7 +281,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <ul class="blockList">
 <li class="blockList">
 <h4>swap</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="type parameter in SurrogateSwap">F</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/SurrogateSwap.html#line.201">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="type parameter in SurrogateSwap">F</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/SurrogateSwap.html#line.92">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
               <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="type parameter in SurrogateSwap">T</a>&nbsp;o)
        throws <a href="../../../../org/apache/juneau/serializer/SerializeException.html" title="class in org.apache.juneau.serializer">SerializeException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.juneau.BeanSession-T-">PojoSwap</a></code></span></div>
@@ -436,7 +327,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <ul class="blockListLast">
 <li class="blockList">
 <h4>unswap</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="type parameter in SurrogateSwap">T</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/SurrogateSwap.html#line.211">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="type parameter in SurrogateSwap">T</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transform/SurrogateSwap.html#line.102">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
                 <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="type parameter in SurrogateSwap">F</a>&nbsp;f,
                 <a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;hint)
          throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
@@ -487,7 +378,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/juneau/transform/StringSwap.html" title="class in org.apache.juneau.transform"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li>Next&nbsp;Class</li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transform/package-frame.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transform/package-frame.html b/content/site/apidocs/org/apache/juneau/transform/package-frame.html
index 13b7842..24088f2 100644
--- a/content/site/apidocs/org/apache/juneau/transform/package-frame.html
+++ b/content/site/apidocs/org/apache/juneau/transform/package-frame.html
@@ -11,6 +11,10 @@
 <body>
 <h1 class="bar"><a href="../../../../org/apache/juneau/transform/package-summary.html" target="classFrame">org.apache.juneau.transform</a></h1>
 <div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="Surrogate.html" title="interface in org.apache.juneau.transform" target="classFrame"><span class="interfaceName">Surrogate</span></a></li>
+</ul>
 <h2 title="Classes">Classes</h2>
 <ul title="Classes">
 <li><a href="AnnotationBeanFilterBuilder.html" title="class in org.apache.juneau.transform" target="classFrame">AnnotationBeanFilterBuilder</a></li>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transform/package-summary.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transform/package-summary.html b/content/site/apidocs/org/apache/juneau/transform/package-summary.html
index e188920..219e9cd 100644
--- a/content/site/apidocs/org/apache/juneau/transform/package-summary.html
+++ b/content/site/apidocs/org/apache/juneau/transform/package-summary.html
@@ -78,6 +78,23 @@
 <div class="contentContainer">
 <ul class="blockList">
 <li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform">Surrogate</a></td>
+<td class="colLast">
+<div class="block">Identifies a class as being a surrogate class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
 <table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
 <caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
@@ -118,7 +135,8 @@
 <tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a>&lt;T,S&gt;</td>
 <td class="colLast">
-<div class="block">Used to swap out non-serializable objects with serializable replacements during serialization, and vis-versa during parsing.</div>
+<div class="block">Used to swap out non-serializable objects with serializable replacements during serialization, and vis-versa during
+ parsing.</div>
 </td>
 </tr>
 <tr class="altColor">
@@ -130,7 +148,7 @@
 <tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform">SurrogateSwap</a>&lt;T,F&gt;</td>
 <td class="colLast">
-<div class="block">Specialized <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> for surrogate classes.</div>
+<div class="block">Specialized <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> for <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a> classes.</div>
 </td>
 </tr>
 </tbody>
@@ -219,7 +237,7 @@
          <a href="../../../../org/apache/juneau/rest/jaxrs/JuneauProvider.html#beanFilters--"><code>@JuneauProvider.beanFilters()</code></a> / <a href="../../../../org/apache/juneau/rest/jaxrs/JuneauProvider.html#pojoSwaps--"><code>@JuneauProvider.pojoSwaps()</code></a> - On all serializers and parsers defined on a JAX-RS provider.
    </ul>
    <p>
-      Swaps can also be associated with classes through the <a href="../../../../org/apache/juneau/annotation/Pojo.html#swap--"><code>@Pojo.swap()</code></a> annotation. 
+      Swaps can also be associated with classes through the <a href="../../../../org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><code>@Swap</code></a> annotation. 
    </p>
       
    <!-- ======================================================================================================== -->

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transform/package-tree.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transform/package-tree.html b/content/site/apidocs/org/apache/juneau/transform/package-tree.html
index 8c766ee..1cb7828 100644
--- a/content/site/apidocs/org/apache/juneau/transform/package-tree.html
+++ b/content/site/apidocs/org/apache/juneau/transform/package-tree.html
@@ -97,6 +97,10 @@
 </ul>
 </li>
 </ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><span class="typeNameLink">Surrogate</span></a></li>
+</ul>
 </div>
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
 <div class="bottomNav"><a name="navbar.bottom">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/BeanStringSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/BeanStringSwap.html b/content/site/apidocs/org/apache/juneau/transforms/BeanStringSwap.html
index 3e188fb..d722bc4 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/BeanStringSwap.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/BeanStringSwap.html
@@ -205,7 +205,7 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/ByteArrayBase64Swap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/ByteArrayBase64Swap.html b/content/site/apidocs/org/apache/juneau/transforms/ByteArrayBase64Swap.html
index caf3b20..946fba9 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/ByteArrayBase64Swap.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/ByteArrayBase64Swap.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../src-html/org/apache/juneau/transforms/ByteArrayBase64Swap.html#line.25">ByteArrayBase64Swap</a>
+<pre>public class <a href="../../../../src-html/org/apache/juneau/transforms/ByteArrayBase64Swap.html#line.23">ByteArrayBase64Swap</a>
 extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title="class in org.apache.juneau.transform">StringSwap</a>&lt;byte[]&gt;</pre>
 <div class="block">Transforms <code><jk>byte</jk>[]</code> arrays to BASE-64 encoded <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>Strings</code></a>.</div>
 </li>
@@ -192,7 +192,7 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -221,7 +221,7 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ByteArrayBase64Swap</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ByteArrayBase64Swap.html#line.25">ByteArrayBase64Swap</a>()</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ByteArrayBase64Swap.html#line.23">ByteArrayBase64Swap</a>()</pre>
 </li>
 </ul>
 </li>
@@ -238,9 +238,9 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <ul class="blockList">
 <li class="blockList">
 <h4>swap</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ByteArrayBase64Swap.html#line.31">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ByteArrayBase64Swap.html#line.29">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
                    byte[]&nbsp;b)
-            throws <a href="../../../../org/apache/juneau/serializer/SerializeException.html" title="class in org.apache.juneau.serializer">SerializeException</a></pre>
+            throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Converts the specified <code><jk>byte</jk>[]</code> to a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a>.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -252,7 +252,7 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The transformed object.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../org/apache/juneau/serializer/SerializeException.html" title="class in org.apache.juneau.serializer">SerializeException</a></code></dd>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - If a problem occurred trying to convert the output.</dd>
 </dl>
 </li>
 </ul>
@@ -262,10 +262,10 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <ul class="blockListLast">
 <li class="blockList">
 <h4>unswap</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ByteArrayBase64Swap.html#line.43">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/ByteArrayBase64Swap.html#line.37">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
                      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;s,
                      <a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;hint)
-              throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
+              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Converts the specified <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> to a <code><jk>byte</jk>[]</code>.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -281,7 +281,7 @@ extends <a href="../../../../org/apache/juneau/transform/StringSwap.html" title=
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The narrowed object.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></code></dd>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - If this method is not implemented.</dd>
 </dl>
 </li>
 </ul>


[24/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/overview-summary.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/overview-summary.html b/content/site/apidocs/overview-summary.html
index 6ff8830..92f2522 100644
--- a/content/site/apidocs/overview-summary.html
+++ b/content/site/apidocs/overview-summary.html
@@ -434,7 +434,7 @@
       <li><p><a class='doclink' href='#Core.Transforms'>Transforms</a></p>
       <ol>
          <li><p><a class='doclink' href='#Core.PojoSwaps'>PojoSwaps</a></p>
-         <li><p><a class='doclink' href='#Core.PojoAnnotation'>@Pojo annotation</a></p>
+         <li><p><a class='doclink' href='#Core.SwapAnnotation'>@Swap annotation</a></p>
          <li><p><a class='doclink' href='#Core.SwapMethods'>Swap methods</a></p>
          <li><p><a class='doclink' href='#Core.BeanFilters'>BeanFilters and @Bean annotations</a></p>
          <li><p><a class='doclink' href='#Core.SerializingReadersAndInputStreams'>Serializing Readers and InputStreams</a></p>
@@ -1123,7 +1123,7 @@
       </p>
       <ul class='doctree'>
          <li class='ja'>
-            <a href="org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation"><code>@Pojo</code></a> 
+            <a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><code>@Swap</code></a> 
             - Used to tailor how non-bean POJOs get interpreted by the framework.
          <li class='ja'>
             <a href="org/apache/juneau/annotation/Bean.html" title="annotation in org.apache.juneau.annotation"><code>@Bean</code></a> 
@@ -1250,17 +1250,17 @@
       </div>
    
       <!-- ======================================================================================================== -->
-      <a id="Core.PojoAnnotation"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.6.2 - @Pojo annotation</h4>
+      <a id="Core.SwapAnnotation"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.6.2 - @Swap annotation</h4>
       <div class='topic'>
          <p>
-            <a href="org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation"><code>@Pojo</code></a> can be used to associate a swap class using an 
+            <a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><code>@Swap</code></a> can be used to associate a swap class using an 
             annotation.
             This is often cleaner than using the builder <code>pojoSwaps()</code> method since you can keep
             your swap class near your POJO class. 
          </p>
          <p class='bcode'>
-   <ja>@Pojo</ja>(swap=MyPojoSwap.<jk>class</jk>)
+   <ja>@Swap</ja>(MyPojoSwap.<jk>class</jk>)
    <jk>public class</jk> MyPojo {
       ...
    }
@@ -1531,7 +1531,7 @@
             all other renditions as-is:
          </p>        
          <p class='bcode'>
-   <ja>@Pojo</ja>(swap=MyBeanSwap.<jk>class</jk>)
+   <ja>@Swap</ja>(MyBeanSwap.<jk>class</jk>)
    <jk>public class</jk> MyBean {...}
    
    <jk>public class</jk> MyBeanSwap <jk>extends</jk> PojoSwap&lt;MyBean,Object&gt; {
@@ -2440,8 +2440,7 @@
             </td>
             <td>
                Juneau uses swaps to convert non-serializable object to serializable forms:
-               <br><a href="org/apache/juneau/annotation/BeanProperty.html#swap--"><code>@BeanProperty(swap=...)</code></a>
-               <br><a href="org/apache/juneau/annotation/Pojo.html#swap--"><code>@Pojo(swap=...)</code></a>
+               <br><a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><code>@Swap</code></a>
             </td>
          </tr>
          <tr>
@@ -7090,7 +7089,7 @@
    
    <h5 class='toc'>What's new in each release</h5>
    <ul class='toc'>
-      <li><p><a class='doclink' href='#6.3.2'>6.3.2 (TBD)</a></p>
+      <li><p><a class='doclink' href='#6.4.0'>6.4.0 (TBD)</a></p>
       <li><p><a class='doclink' href='#6.3.1'>6.3.1 (Aug 1, 2017)</a></p>
       <li><p><a class='doclink' href='#6.3.0'>6.3.0 (Jun 30, 2017)</a></p>
       <li><p><a class='doclink' href='#6.2.0'>6.2.0 (Apr 28, 2017)</a></p>
@@ -7160,8 +7159,8 @@
    </ul>
 
    <!-- ======================================================================================================== -->
-   <a id="6.3.2"></a>
-   <h3 class='topic' onclick='toggle(this)'>6.3.2 (TBD)</h3>
+   <a id="6.4.0"></a>
+   <h3 class='topic' onclick='toggle(this)'>6.4.0 (TBD)</h3>
    <div class='topic'>
       <p>
          The major change in this release is the project structure
@@ -7174,8 +7173,8 @@
             <th>Category</th><th>Maven Artifacts</th><th>Description</th><th>Prereqs</th>
          </tr>
          <tr class='dark bb'>
-            <td rowspan="5" style='text-align:center;font-weight:bold;padding:20px;'><a class='doclink' href='#JuneauCore'>Juneau Core</a></td>
-            <td class='code'><a class='doclink' href='#juneau-marshall'>juneau-marshall</a></td>
+            <td rowspan="5" style='text-align:center;font-weight:bold;padding:20px;'>Juneau Core</td>
+            <td class='code'>juneau-marshall</td>
             <td>Serializers and parsers for:
                <ul style='margin:0px 10px;'>
                   <li>JSON
@@ -7198,7 +7197,7 @@
             </td>
          </tr>
          <tr class='dark bb'>
-            <td class='code'><a class='doclink' href='#juneau-marshall-rdf'>juneau-marshall-rdf</a></td>
+            <td class='code'>juneau-marshall-rdf</td>
             <td>
                Serializers and parsers for:
                <ul style='margin:0px 10px;'>
@@ -7217,7 +7216,7 @@
             </td>
          </tr>
          <tr class='dark bb'>
-            <td class='code'><a class='doclink' href='#juneau-dto'>juneau-dto</a></td>
+            <td class='code'>juneau-dto</td>
             <td>
                Data Transfer Objects for:
                <ul style='margin:0px 10px;'>
@@ -7231,22 +7230,22 @@
             <td><ul style='margin:0px 10px;'><li>Java 6</li></ul></td>
          </tr>
          <tr class='dark bb'>
-            <td class='code'><a class='doclink' href='#juneau-svl'>juneau-svl</a></td>
+            <td class='code'>juneau-svl</td>
             <td>
                Simple Variable Language API
             </td>
             <td><ul style='margin:0px 10px;'><li>Java 6</li></ul></td>
          </tr>
          <tr class='dark bb'>
-            <td class='code'><a class='doclink' href='#juneau-config'>juneau-config</a></td>
+            <td class='code'>juneau-config</td>
             <td>
                Configuration file API
             </td>
             <td><ul style='margin:0px 10px;'><li>Java 6</li></ul></td>
          </tr>
          <tr class='light bb'>
-            <td rowspan="5" style='text-align:center;font-weight:bold;padding:20px;'><a class='doclink' href='#JuneauRest'>Juneau REST</a></td>
-            <td class='code'><a class='doclink' href='#juneau-rest-server'>juneau-rest-server</a></td>
+            <td rowspan="3" style='text-align:center;font-weight:bold;padding:20px;'>Juneau REST</td>
+            <td class='code'>juneau-rest-server</td>
             <td>
                REST Servlet API
             </td>
@@ -7258,7 +7257,7 @@
             </td>
          </tr>
          <tr class='light bb'>
-            <td class='code'><a class='doclink' href='#juneau-rest-server-jaxrs'>juneau-rest-server-jaxrs</a></td>
+            <td class='code'>juneau-rest-server-jaxrs</td>
             <td>
                Optional JAX-RS support
             </td>
@@ -7270,7 +7269,7 @@
             </td>
          </tr>
          <tr class='light bb'>
-            <td class='code'><a class='doclink' href='#juneau-rest-client'>juneau-rest-client</a></td>
+            <td class='code'>juneau-rest-client</td>
             <td>
                REST Client API
             </td>
@@ -7281,10 +7280,11 @@
                </ul>
             </td>
          </tr>
-         <tr class='light bb'>
-            <td class='code'><a class='doclink' href='#juneau-microservice'>juneau-microservice</a></td>
+         <tr class='dark bb'>
+            <td rowspan="2" style='text-align:center;font-weight:bold;padding:20px;'>Juneau Microservice</td>
+            <td class='code'>juneau-microservice-server</td>
             <td>
-               REST Microservice API
+               REST Microservice Server API
             </td>
             <td>
                <ul style='margin:0px 10px;'>
@@ -7293,8 +7293,8 @@
                </ul>
             </td>
          </tr>
-         <tr class='light bb'>
-            <td class='code'><a class='doclink' href='#juneau-microservice-template'>juneau-microservice-template</a></td>
+         <tr class='dark bb'>
+            <td class='code'>juneau-microservice-template</td>
             <td>
                Developer template project
             </td>
@@ -7305,23 +7305,23 @@
                </ul>
             </td>
          </tr>
-         <tr class='dark bb'>
-            <td rowspan="2" style='text-align:center;font-weight:bold;padding:20px;'><a class='doclink' href='#Examples'>Examples</a></td>
+         <tr class='light bb'>
+            <td rowspan="2" style='text-align:center;font-weight:bold;padding:20px;'>Examples</td>
             <td class='code'><code>juneau-examples-core</code></td>
             <td>
                Core code examples
             </td>
             <td></td>
          </tr>
-         <tr class='dark bb'>
+         <tr class='light bb'>
             <td class='code'><code>juneau-examples-rest</code></td>
             <td>
                REST code examples
             </td>
             <td></td>
          </tr>
-         <tr class='light bb'>
-            <td rowspan="1" style='text-align:center;font-weight:bold;padding:20px;'><a class='doclink' href='#JuneauAll'>Juneau All</a></td>
+         <tr class='dark bb'>
+            <td rowspan="1" style='text-align:center;font-weight:bold;padding:20px;'>Juneau All</td>
             <td class='code'><code>juneau-all</code></td>
             <td>
                Combination of the following:
@@ -7347,6 +7347,72 @@
       <h6 class='topic'>juneau-marshall</h6>
       <ul class='spaced-list'>
          <li>
+            Improvements to swap support.
+            <ul>
+               <li>New <a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><code>@Swap</code></a> annotation.
+                  <br>Replaces the <code>@Pojo</code> and <code>@BeanProperty.swap()</code> annotations.
+               <li>Support for per-media-type swaps.
+                  <br>Programmatic example:
+                  <p class='bcode'>
+   <ja>@Swap</ja>(MyJsonOnlySwap.<jk>class</jk>)         
+   <jk>public class</jk> MyPojo {}
+
+   <jk>public class</jk> MyJsonOnlySwap <jk>extends</jk> PojoSwap&lt;MyPojo,String&gt; {
+
+         <jk>public</jk> MediaType[] forMediaTypes() {
+            <jk>return</jk> MediaType.<jsm>forStrings</jsm>(<js>"&#42;/json"</js>);
+         }
+
+         <jk>public</jk> String swap(BeanSession session, MyPojo o) <jk>throws</jk> Exception {
+            <jk>return</jk> <js>"It's JSON!"</js>;
+      }
+                  </p>
+                  <br>Annotated example:
+                  <p class='bcode'>
+   <ja>@Swap</ja>(impl=ToStringSwap.<jk>class</jk>, mediaTypes=<js>"&#42;/json"</js>)
+   <jk>public class</jk> MyBean { ... }
+
+   <jk>public class</jk> ToStringSwap <jk>extends</jk> PojoSwap&lt;Object,String&gt; {
+      <jk>public</jk> String swap(BeanSession session, Object o) <jk>throws</jk> Exception {
+         <jk>return</jk> o.toString();
+      }
+   }
+                  </p>
+               <li>Support for templated swaps which provide additional context information for a swap.
+                  <br>The following is an example of a templated swap class used to serialize POJOs to HTML using FreeMarker:
+                  <p class='bcode'>
+   <jc>// Our abstracted templated swap class.</jc>
+   <jk>public abstract class</jk> FreeMarkerSwap <jk>extends</jk> PojoSwap&lt;Object,Reader&gt; {
+
+      <jk>public</jk> MediaType[] forMediaTypes() {
+         <jk>return</jk> MediaType.<jsm>forStrings</jsm>(<js>"&#42;/html"</js>);
+      }
+
+      <jk>public</jk> Reader swap(BeanSession session, Object o, String template) <jk>throws</jk> Exception {
+         <jk>return</jk> getFreeMarkerReader(template, o);  <jc>// Some method that creates raw HTML.</jc>
+      }
+   }
+                  </p>
+                  <p class='bcode'>
+      <ja>@Swap</ja>(impl=FreeMarkerSwap.<jk>class</jk>, template=<js>"MyPojo.div.ftl"</js>)
+      <jk>public class</jk> MyPojo {}
+                  </p>
+               <li>New <a href="org/apache/juneau/annotation/Swaps.html" title="annotation in org.apache.juneau.annotation"><code>@Swaps</code></a> annotation for defining multiple swaps
+                  against the same POJO when they're differentiated by media types:
+                  <p class='bcode'>
+   <ja>@Swaps</ja>(
+      {
+         <ja>@Swap</ja>(MyJsonSwap.<jk>class</jk>),
+         <ja>@Swap</ja>(MyXmlSwap.<jk>class</jk>),
+         <ja>@Swap</ja>(MyOtherSwap.<jk>class</jk>)
+      }
+   )
+   <jk>public class</jk> MyPojo {}
+                  </p>
+            </ul>
+         <li>
+            New <a href="org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a> interface for identifying surrogate classes.
+         <li>
             Serializers can now serialize to <a href="http://docs.oracle.com/javase/7/docs/api/java/util/StringBuilder.html?is-external=true" title="class or interface in java.util"><code>StringBuilders</code></a>.
          <li>
             Serializers now serialize the contents of <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Readers</code></a> and <a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStreams</code></a>
@@ -7382,10 +7448,10 @@
    <jc>// Same, but using a session object</jc>
    SerializerSession session = JsonSerializer.<jsf>DEFAULT</jsf>.createSession();
    <jk>try</jk> {
-     session.serialize(writer1, pojo1);
-     session.serialize(writer2, pojo2);
+      session.serialize(writer1, pojo1);
+      session.serialize(writer2, pojo2);
    } <jk>finally</jk> {
-     session.close();
+      session.close();
    }           
             </p>
             This is mostly an internal change and doesn't affect the existing APIs.
@@ -8822,7 +8888,7 @@
                <li><a href="org/apache/juneau/BeanPropertyMetaExtended.html" title="class in org.apache.juneau"><code>BeanPropertyMetaExtended</code></a> / <a href="org/apache/juneau/BeanPropertyMeta.html#getExtendedMeta-java.lang.Class-"><code>BeanPropertyMeta.getExtendedMeta(Class)</code></a> 
             </ul>
          </li>
-         <li>Renamed <code>@Transform</code> annotation to <a href="org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation"><code>@Pojo</code></a> so that it can be used for various POJO-related behavior, not just associating transforms.  
+         <li>Renamed <code>@Transform</code> annotation to <code><del>@Pojo</del></code> so that it can be used for various POJO-related behavior, not just associating transforms.  
          <li>Introduced <a href="org/apache/juneau/dto/swagger/package-summary.html"><code>Swagger DTOs</code></a>.
       </ul>    
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/overview-tree.html b/content/site/apidocs/overview-tree.html
index 6f1ac6b..83a05fa 100644
--- a/content/site/apidocs/overview-tree.html
+++ b/content/site/apidocs/overview-tree.html
@@ -1408,6 +1408,7 @@
 <li type="circle">org.apache.juneau.rest.<a href="org/apache/juneau/rest/RestResourceResolver.html" title="interface in org.apache.juneau.rest"><span class="typeNameLink">RestResourceResolver</span></a></li>
 <li type="circle">org.apache.juneau.<a href="org/apache/juneau/Setter.html" title="interface in org.apache.juneau"><span class="typeNameLink">Setter</span></a></li>
 <li type="circle">org.apache.juneau.<a href="org/apache/juneau/Streamable.html" title="interface in org.apache.juneau"><span class="typeNameLink">Streamable</span></a></li>
+<li type="circle">org.apache.juneau.transform.<a href="org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><span class="typeNameLink">Surrogate</span></a></li>
 <li type="circle">org.apache.juneau.<a href="org/apache/juneau/Writable.html" title="interface in org.apache.juneau"><span class="typeNameLink">Writable</span></a></li>
 <li type="circle">org.apache.juneau.utils.<a href="org/apache/juneau/utils/ZipFileList.ZipFileEntry.html" title="interface in org.apache.juneau.utils"><span class="typeNameLink">ZipFileList.ZipFileEntry</span></a></li>
 </ul>
@@ -1415,7 +1416,8 @@
 <ul>
 <li type="circle">org.apache.juneau.annotation.<a href="org/apache/juneau/annotation/URI.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">URI</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.juneau.annotation.<a href="org/apache/juneau/annotation/ThreadSafe.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">ThreadSafe</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
-<li type="circle">org.apache.juneau.annotation.<a href="org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Pojo</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.apache.juneau.annotation.<a href="org/apache/juneau/annotation/Swaps.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Swaps</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.apache.juneau.annotation.<a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Swap</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.juneau.annotation.<a href="org/apache/juneau/annotation/ParentProperty.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">ParentProperty</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.juneau.annotation.<a href="org/apache/juneau/annotation/Overrideable.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Overrideable</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.juneau.annotation.<a href="org/apache/juneau/annotation/NameProperty.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">NameProperty</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>


[27/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarLongSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarLongSwap.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarLongSwap.html
index 5d45b31..8c70ecc 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarLongSwap.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarLongSwap.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../src-html/org/apache/juneau/transforms/CalendarLongSwap.html#line.24">CalendarLongSwap</a>
+<pre>public class <a href="../../../../src-html/org/apache/juneau/transforms/CalendarLongSwap.html#line.23">CalendarLongSwap</a>
 extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util">Calendar</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</pre>
 <div class="block">Transforms <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util"><code>Calendars</code></a> to <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang"><code>Longs</code></a> using <code>Calender.getTime().getTime()</code>.</div>
 </li>
@@ -187,7 +187,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -216,7 +216,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CalendarLongSwap</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/CalendarLongSwap.html#line.24">CalendarLongSwap</a>()</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/CalendarLongSwap.html#line.23">CalendarLongSwap</a>()</pre>
 </li>
 </ul>
 </li>
@@ -233,7 +233,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <ul class="blockList">
 <li class="blockList">
 <h4>swap</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/CalendarLongSwap.html#line.30">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/CalendarLongSwap.html#line.29">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
                  <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util">Calendar</a>&nbsp;o)</pre>
 <div class="block">Converts the specified <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util"><code>Calendar</code></a> to a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang"><code>Long</code></a>.</div>
 <dl>
@@ -254,10 +254,10 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <ul class="blockListLast">
 <li class="blockList">
 <h4>unswap</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util">Calendar</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/CalendarLongSwap.html#line.39">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util">Calendar</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/CalendarLongSwap.html#line.38">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
                        <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;o,
                        <a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;hint)
-                throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
+                throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Converts the specified <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang"><code>Long</code></a> to a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util"><code>Calendar</code></a>.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -273,7 +273,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The narrowed object.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></code></dd>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - If this method is not implemented.</dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarMapSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarMapSwap.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarMapSwap.html
index c4b2220..3606091 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarMapSwap.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarMapSwap.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../src-html/org/apache/juneau/transforms/CalendarMapSwap.html#line.25">CalendarMapSwap</a>
+<pre>public class <a href="../../../../src-html/org/apache/juneau/transforms/CalendarMapSwap.html#line.24">CalendarMapSwap</a>
 extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util">Calendar</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&gt;</pre>
 <div class="block">Transforms <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util"><code>Calendars</code></a> to <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Maps</code></a> of the format <code>{time:long,timeZone:string}</code>.</div>
 </li>
@@ -187,7 +187,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -216,7 +216,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CalendarMapSwap</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/CalendarMapSwap.html#line.25">CalendarMapSwap</a>()</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/CalendarMapSwap.html#line.24">CalendarMapSwap</a>()</pre>
 </li>
 </ul>
 </li>
@@ -233,7 +233,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <ul class="blockList">
 <li class="blockList">
 <h4>swap</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/CalendarMapSwap.html#line.31">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/CalendarMapSwap.html#line.30">swap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util">Calendar</a>&nbsp;o)</pre>
 <div class="block">Converts the specified <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util"><code>Calendar</code></a> to a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a>.</div>
 <dl>
@@ -254,10 +254,10 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <ul class="blockListLast">
 <li class="blockList">
 <h4>unswap</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util">Calendar</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/CalendarMapSwap.html#line.43">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util">Calendar</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/transforms/CalendarMapSwap.html#line.42">unswap</a>(<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
                        <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&nbsp;o,
                        <a href="../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;hint)
-                throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
+                throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Converts the specified <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a> to a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util"><code>Calendar</code></a>.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -273,7 +273,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The narrowed object.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></code></dd>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - If this method is not implemented.</dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateFull.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateFull.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateFull.html
index fc59456..5e60cdb 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateFull.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateFull.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateLong.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateLong.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateLong.html
index a4c322e..36dabc8 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateLong.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateLong.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateMedium.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateMedium.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateMedium.html
index a0bbf67..5498503 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateMedium.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateMedium.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateShort.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateShort.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateShort.html
index b9b1e70..5b3ccb0 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateShort.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateShort.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateSimple.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateSimple.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateSimple.html
index 831530e..3fe22ac 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateSimple.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateSimple.html
@@ -221,7 +221,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeFull.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeFull.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeFull.html
index 3ff0999..11336a9 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeFull.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeFull.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeLong.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeLong.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeLong.html
index b23db3e..84a49e4 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeLong.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeLong.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeMedium.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeMedium.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeMedium.html
index a376c6f..fc25ca5 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeMedium.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeMedium.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeShort.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeShort.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeShort.html
index 04e4ef6..f60fb9c 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeShort.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeShort.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeSimple.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeSimple.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeSimple.html
index e1313ac..002b72d 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeSimple.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.DateTimeSimple.html
@@ -221,7 +221,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601D.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601D.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601D.html
index 7cc9853..94f182d 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601D.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601D.html
@@ -219,7 +219,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DT.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DT.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DT.html
index 89d5f9a..ea86f0d 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DT.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DT.html
@@ -237,7 +237,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTL.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTL.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTL.html
index d05b648..7680353 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTL.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTL.html
@@ -231,7 +231,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTP.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTP.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTP.html
index 28da194..d5360dd 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTP.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTP.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.ISO8601DT
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTPZ.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTPZ.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTPZ.html
index 82f7644..51732cc 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTPZ.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTPZ.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.ISO8601DT
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTZ.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTZ.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTZ.html
index 61d9f29..87ac29b 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTZ.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.ISO8601DTZ.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.RFC2822D.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.RFC2822D.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.RFC2822D.html
index 6d84184..4e28b95 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.RFC2822D.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.RFC2822D.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.RFC2822DT.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.RFC2822DT.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.RFC2822DT.html
index 412ccfd..7ba7d2c 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.RFC2822DT.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.RFC2822DT.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.RFC2822DTZ.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.RFC2822DTZ.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.RFC2822DTZ.html
index d873e05..574ec18 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.RFC2822DTZ.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.RFC2822DTZ.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeFull.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeFull.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeFull.html
index 38a2f13..2424402 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeFull.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeFull.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeLong.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeLong.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeLong.html
index 3214f20..1499beb 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeLong.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeLong.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeMedium.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeMedium.html b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeMedium.html
index 7d3086a..87991cf 100644
--- a/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeMedium.html
+++ b/content/site/apidocs/org/apache/juneau/transforms/CalendarSwap.TimeMedium.html
@@ -223,7 +223,7 @@ extends <a href="../../../../org/apache/juneau/transforms/CalendarSwap.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[15/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/html/HtmlSerializerSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/html/HtmlSerializerSession.html b/content/site/apidocs/src-html/org/apache/juneau/html/HtmlSerializerSession.html
index cae9c9d..9e204ee 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/html/HtmlSerializerSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/html/HtmlSerializerSession.html
@@ -271,545 +271,550 @@
 <span class="sourceLineNo">263</span>            aType = ((Delegate)o).getClassMeta();<a name="line.263"></a>
 <span class="sourceLineNo">264</span>         }<a name="line.264"></a>
 <span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>         sType = aType.getSerializedClassMeta();<a name="line.266"></a>
-<span class="sourceLineNo">267</span>         String typeName = null;<a name="line.267"></a>
-<span class="sourceLineNo">268</span>         if (isAddBeanTypeProperties() &amp;&amp; ! eType.equals(aType))<a name="line.268"></a>
-<span class="sourceLineNo">269</span>            typeName = aType.getDictionaryName();<a name="line.269"></a>
-<span class="sourceLineNo">270</span><a name="line.270"></a>
-<span class="sourceLineNo">271</span>         // Swap if necessary<a name="line.271"></a>
-<span class="sourceLineNo">272</span>         PojoSwap swap = aType.getPojoSwap();<a name="line.272"></a>
-<span class="sourceLineNo">273</span>         if (swap != null) {<a name="line.273"></a>
-<span class="sourceLineNo">274</span>            o = swap.swap(this, o);<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>            // If the getSwapClass() method returns Object, we need to figure out<a name="line.276"></a>
-<span class="sourceLineNo">277</span>            // the actual type now.<a name="line.277"></a>
-<span class="sourceLineNo">278</span>            if (sType.isObject())<a name="line.278"></a>
-<span class="sourceLineNo">279</span>               sType = getClassMetaForObject(o);<a name="line.279"></a>
-<span class="sourceLineNo">280</span>         }<a name="line.280"></a>
-<span class="sourceLineNo">281</span><a name="line.281"></a>
-<span class="sourceLineNo">282</span>         // Handle the case where we're serializing a raw stream.<a name="line.282"></a>
-<span class="sourceLineNo">283</span>         if (sType.isReader() || sType.isInputStream()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>            pop();<a name="line.284"></a>
-<span class="sourceLineNo">285</span>            indent -= xIndent;<a name="line.285"></a>
-<span class="sourceLineNo">286</span>            IOUtils.pipe(o, out);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            return ContentResult.CR_SIMPLE;<a name="line.287"></a>
-<span class="sourceLineNo">288</span>         }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>         HtmlClassMeta html = sType.getExtendedMeta(HtmlClassMeta.class);<a name="line.290"></a>
-<span class="sourceLineNo">291</span>         HtmlRender render = (pMeta == null ? null : pMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).getRender());<a name="line.291"></a>
-<span class="sourceLineNo">292</span>         if (render == null)<a name="line.292"></a>
-<span class="sourceLineNo">293</span>            render = html.getRender();<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>         if (render != null) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>            Object o2 = render.getContent(this, o);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>            if (o2 != o) {<a name="line.297"></a>
-<span class="sourceLineNo">298</span>               indent -= xIndent;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>               pop();<a name="line.299"></a>
-<span class="sourceLineNo">300</span>               out.nl(indent);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>               return serializeAnything(out, o2, null, typeName, xIndent, null, false);<a name="line.301"></a>
-<span class="sourceLineNo">302</span>            }<a name="line.302"></a>
-<span class="sourceLineNo">303</span>         }<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>         if (html.isAsXml() || (pMeta != null &amp;&amp; pMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).isAsXml())) {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>            pop();<a name="line.306"></a>
-<span class="sourceLineNo">307</span>            indent++;<a name="line.307"></a>
-<span class="sourceLineNo">308</span>            super.serializeAnything(out, o, null, null, null, false, XmlFormat.MIXED, false, false, null);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>            indent -= xIndent+1;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>            return cr;<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>         } else if (html.isAsPlainText() || (pMeta != null &amp;&amp; pMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).isAsPlainText())) {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>            out.write(o == null ? "null" : o.toString());<a name="line.313"></a>
-<span class="sourceLineNo">314</span>            cr = CR_SIMPLE;<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>         } else if (o == null || (sType.isChar() &amp;&amp; ((Character)o).charValue() == 0)) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>            out.tag("null");<a name="line.317"></a>
-<span class="sourceLineNo">318</span>            cr = CR_SIMPLE;<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>         } else if (sType.isNumber()) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>            if (eType.isNumber() &amp;&amp; ! isRoot)<a name="line.321"></a>
-<span class="sourceLineNo">322</span>               out.append(o);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>            else<a name="line.323"></a>
-<span class="sourceLineNo">324</span>               out.sTag("number").append(o).eTag("number");<a name="line.324"></a>
-<span class="sourceLineNo">325</span>            cr = CR_SIMPLE;<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>         } else if (sType.isBoolean()) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>            if (eType.isBoolean() &amp;&amp; ! isRoot)<a name="line.328"></a>
-<span class="sourceLineNo">329</span>               out.append(o);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>            else<a name="line.330"></a>
-<span class="sourceLineNo">331</span>               out.sTag("boolean").append(o).eTag("boolean");<a name="line.331"></a>
-<span class="sourceLineNo">332</span>            cr = CR_SIMPLE;<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>         } else if (sType.isMap() || (wType != null &amp;&amp; wType.isMap())) {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>            out.nlIf(! isRoot, xIndent+1);<a name="line.335"></a>
-<span class="sourceLineNo">336</span>            if (o instanceof BeanMap)<a name="line.336"></a>
-<span class="sourceLineNo">337</span>               serializeBeanMap(out, (BeanMap)o, eType, pMeta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>            else<a name="line.338"></a>
-<span class="sourceLineNo">339</span>               serializeMap(out, (Map)o, sType, eType.getKeyType(), eType.getValueType(), typeName, pMeta);<a name="line.339"></a>
-<span class="sourceLineNo">340</span><a name="line.340"></a>
-<span class="sourceLineNo">341</span>         } else if (sType.isBean()) {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>            BeanMap m = toBeanMap(o);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>            Class&lt;?&gt; c = o.getClass();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>            if (c.isAnnotationPresent(HtmlLink.class)) {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>               HtmlLink h = o.getClass().getAnnotation(HtmlLink.class);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>               Object urlProp = m.get(h.hrefProperty());<a name="line.346"></a>
-<span class="sourceLineNo">347</span>               Object nameProp = m.get(h.nameProperty());<a name="line.347"></a>
-<span class="sourceLineNo">348</span>               out.oTag("a").attrUri("href", urlProp).append('&gt;').text(nameProp).eTag("a");<a name="line.348"></a>
-<span class="sourceLineNo">349</span>               cr = CR_SIMPLE;<a name="line.349"></a>
-<span class="sourceLineNo">350</span>            } else {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>               out.nlIf(! isRoot, xIndent+2);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>               serializeBeanMap(out, m, eType, pMeta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>            }<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>         } else if (sType.isCollection() || sType.isArray() || (wType != null &amp;&amp; wType.isCollection())) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>            out.nlIf(! isRoot, xIndent+1);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>            serializeCollection(out, o, sType, eType, name, pMeta);<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>         } else if (isUri(sType, pMeta, o)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>            String label = getAnchorText(pMeta, o);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>            out.oTag("a").attrUri("href", o).append('&gt;');<a name="line.361"></a>
-<span class="sourceLineNo">362</span>            out.text(label);<a name="line.362"></a>
-<span class="sourceLineNo">363</span>            out.eTag("a");<a name="line.363"></a>
-<span class="sourceLineNo">364</span>            cr = CR_SIMPLE;<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>         } else {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>            if (isRoot)<a name="line.367"></a>
-<span class="sourceLineNo">368</span>               out.sTag("string").text(toString(o)).eTag("string");<a name="line.368"></a>
-<span class="sourceLineNo">369</span>            else<a name="line.369"></a>
-<span class="sourceLineNo">370</span>               out.text(toString(o));<a name="line.370"></a>
-<span class="sourceLineNo">371</span>            cr = CR_SIMPLE;<a name="line.371"></a>
-<span class="sourceLineNo">372</span>         }<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      }<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      pop();<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      indent -= xIndent;<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      return cr;<a name="line.376"></a>
-<span class="sourceLineNo">377</span>   }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>   /**<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    * Identifies what the contents were of a serialized bean.<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    */<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   static enum ContentResult {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      CR_SIMPLE,    // Simple content.  Shouldn't use whitespace.<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      CR_NORMAL     // Normal content.  Use whitespace.<a name="line.384"></a>
-<span class="sourceLineNo">385</span>   }<a name="line.385"></a>
-<span class="sourceLineNo">386</span><a name="line.386"></a>
-<span class="sourceLineNo">387</span>   @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.387"></a>
-<span class="sourceLineNo">388</span>   private void serializeMap(HtmlWriter out, Map m, ClassMeta&lt;?&gt; sType,<a name="line.388"></a>
-<span class="sourceLineNo">389</span>         ClassMeta&lt;?&gt; eKeyType, ClassMeta&lt;?&gt; eValueType, String typeName, BeanPropertyMeta ppMeta) throws Exception {<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>      ClassMeta&lt;?&gt; keyType = eKeyType == null ? string() : eKeyType;<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      ClassMeta&lt;?&gt; valueType = eValueType == null ? object() : eValueType;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      ClassMeta&lt;?&gt; aType = getClassMetaForObject(m);       // The actual type<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>      int i = indent;<a name="line.395"></a>
+<span class="sourceLineNo">266</span>         sType = aType;<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>         String typeName = null;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>         if (isAddBeanTypeProperties() &amp;&amp; ! eType.equals(aType))<a name="line.269"></a>
+<span class="sourceLineNo">270</span>            typeName = aType.getDictionaryName();<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>         // Swap if necessary<a name="line.272"></a>
+<span class="sourceLineNo">273</span>         PojoSwap swap = aType.getPojoSwap(this);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>         if (swap != null) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>            o = swap.swap(this, o);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>            sType = swap.getSwapClassMeta(this);<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>            // If the getSwapClass() method returns Object, we need to figure out<a name="line.278"></a>
+<span class="sourceLineNo">279</span>            // the actual type now.<a name="line.279"></a>
+<span class="sourceLineNo">280</span>            if (sType.isObject())<a name="line.280"></a>
+<span class="sourceLineNo">281</span>               sType = getClassMetaForObject(o);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         }<a name="line.282"></a>
+<span class="sourceLineNo">283</span><a name="line.283"></a>
+<span class="sourceLineNo">284</span>         // Handle the case where we're serializing a raw stream.<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         if (sType.isReader() || sType.isInputStream()) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>            pop();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>            indent -= xIndent;<a name="line.287"></a>
+<span class="sourceLineNo">288</span>            IOUtils.pipe(o, out);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>            return ContentResult.CR_SIMPLE;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>         HtmlClassMeta html = sType.getExtendedMeta(HtmlClassMeta.class);<a name="line.292"></a>
+<span class="sourceLineNo">293</span>         HtmlRender render = (pMeta == null ? null : pMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).getRender());<a name="line.293"></a>
+<span class="sourceLineNo">294</span>         if (render == null)<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            render = html.getRender();<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>         if (render != null) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>            Object o2 = render.getContent(this, o);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>            if (o2 != o) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>               indent -= xIndent;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>               pop();<a name="line.301"></a>
+<span class="sourceLineNo">302</span>               out.nl(indent);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>               return serializeAnything(out, o2, null, typeName, xIndent, null, false);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>            }<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>         if (html.isAsXml() || (pMeta != null &amp;&amp; pMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).isAsXml())) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>            pop();<a name="line.308"></a>
+<span class="sourceLineNo">309</span>            indent++;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>            super.serializeAnything(out, o, null, null, null, false, XmlFormat.MIXED, false, false, null);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>            indent -= xIndent+1;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            return cr;<a name="line.312"></a>
+<span class="sourceLineNo">313</span><a name="line.313"></a>
+<span class="sourceLineNo">314</span>         } else if (html.isAsPlainText() || (pMeta != null &amp;&amp; pMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).isAsPlainText())) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>            out.write(o == null ? "null" : o.toString());<a name="line.315"></a>
+<span class="sourceLineNo">316</span>            cr = CR_SIMPLE;<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>         } else if (o == null || (sType.isChar() &amp;&amp; ((Character)o).charValue() == 0)) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>            out.tag("null");<a name="line.319"></a>
+<span class="sourceLineNo">320</span>            cr = CR_SIMPLE;<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span>         } else if (sType.isNumber()) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>            if (eType.isNumber() &amp;&amp; ! isRoot)<a name="line.323"></a>
+<span class="sourceLineNo">324</span>               out.append(o);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>            else<a name="line.325"></a>
+<span class="sourceLineNo">326</span>               out.sTag("number").append(o).eTag("number");<a name="line.326"></a>
+<span class="sourceLineNo">327</span>            cr = CR_SIMPLE;<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>         } else if (sType.isBoolean()) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>            if (eType.isBoolean() &amp;&amp; ! isRoot)<a name="line.330"></a>
+<span class="sourceLineNo">331</span>               out.append(o);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            else<a name="line.332"></a>
+<span class="sourceLineNo">333</span>               out.sTag("boolean").append(o).eTag("boolean");<a name="line.333"></a>
+<span class="sourceLineNo">334</span>            cr = CR_SIMPLE;<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>         } else if (sType.isMap() || (wType != null &amp;&amp; wType.isMap())) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            out.nlIf(! isRoot, xIndent+1);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>            if (o instanceof BeanMap)<a name="line.338"></a>
+<span class="sourceLineNo">339</span>               serializeBeanMap(out, (BeanMap)o, eType, pMeta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>            else<a name="line.340"></a>
+<span class="sourceLineNo">341</span>               serializeMap(out, (Map)o, sType, eType.getKeyType(), eType.getValueType(), typeName, pMeta);<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span>         } else if (sType.isBean()) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>            BeanMap m = toBeanMap(o);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>            Class&lt;?&gt; c = o.getClass();<a name="line.345"></a>
+<span class="sourceLineNo">346</span>            if (c.isAnnotationPresent(HtmlLink.class)) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>               HtmlLink h = o.getClass().getAnnotation(HtmlLink.class);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>               Object urlProp = m.get(h.hrefProperty());<a name="line.348"></a>
+<span class="sourceLineNo">349</span>               Object nameProp = m.get(h.nameProperty());<a name="line.349"></a>
+<span class="sourceLineNo">350</span>               out.oTag("a").attrUri("href", urlProp).append('&gt;').text(nameProp).eTag("a");<a name="line.350"></a>
+<span class="sourceLineNo">351</span>               cr = CR_SIMPLE;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>            } else {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>               out.nlIf(! isRoot, xIndent+2);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>               serializeBeanMap(out, m, eType, pMeta);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>            }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>         } else if (sType.isCollection() || sType.isArray() || (wType != null &amp;&amp; wType.isCollection())) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>            out.nlIf(! isRoot, xIndent+1);<a name="line.358"></a>
+<span class="sourceLineNo">359</span>            serializeCollection(out, o, sType, eType, name, pMeta);<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>         } else if (isUri(sType, pMeta, o)) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>            String label = getAnchorText(pMeta, o);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>            out.oTag("a").attrUri("href", o).append('&gt;');<a name="line.363"></a>
+<span class="sourceLineNo">364</span>            out.text(label);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>            out.eTag("a");<a name="line.365"></a>
+<span class="sourceLineNo">366</span>            cr = CR_SIMPLE;<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span>         } else {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>            if (isRoot)<a name="line.369"></a>
+<span class="sourceLineNo">370</span>               out.sTag("string").text(toString(o)).eTag("string");<a name="line.370"></a>
+<span class="sourceLineNo">371</span>            else<a name="line.371"></a>
+<span class="sourceLineNo">372</span>               out.text(toString(o));<a name="line.372"></a>
+<span class="sourceLineNo">373</span>            cr = CR_SIMPLE;<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      }<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      pop();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      indent -= xIndent;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      return cr;<a name="line.378"></a>
+<span class="sourceLineNo">379</span>   }<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>   /**<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    * Identifies what the contents were of a serialized bean.<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    */<a name="line.383"></a>
+<span class="sourceLineNo">384</span>   static enum ContentResult {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      CR_SIMPLE,    // Simple content.  Shouldn't use whitespace.<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      CR_NORMAL     // Normal content.  Use whitespace.<a name="line.386"></a>
+<span class="sourceLineNo">387</span>   }<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>   @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.389"></a>
+<span class="sourceLineNo">390</span>   private void serializeMap(HtmlWriter out, Map m, ClassMeta&lt;?&gt; sType,<a name="line.390"></a>
+<span class="sourceLineNo">391</span>         ClassMeta&lt;?&gt; eKeyType, ClassMeta&lt;?&gt; eValueType, String typeName, BeanPropertyMeta ppMeta) throws Exception {<a name="line.391"></a>
+<span class="sourceLineNo">392</span><a name="line.392"></a>
+<span class="sourceLineNo">393</span>      ClassMeta&lt;?&gt; keyType = eKeyType == null ? string() : eKeyType;<a name="line.393"></a>
+<span class="sourceLineNo">394</span>      ClassMeta&lt;?&gt; valueType = eValueType == null ? object() : eValueType;<a name="line.394"></a>
+<span class="sourceLineNo">395</span>      ClassMeta&lt;?&gt; aType = getClassMetaForObject(m);       // The actual type<a name="line.395"></a>
 <span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span>      out.oTag(i, "table");<a name="line.397"></a>
+<span class="sourceLineNo">397</span>      int i = indent;<a name="line.397"></a>
 <span class="sourceLineNo">398</span><a name="line.398"></a>
-<span class="sourceLineNo">399</span>      if (typeName != null &amp;&amp; ppMeta != null &amp;&amp; ppMeta.getClassMeta() != aType)<a name="line.399"></a>
-<span class="sourceLineNo">400</span>         out.attr(getBeanTypePropertyName(sType), typeName);<a name="line.400"></a>
-<span class="sourceLineNo">401</span><a name="line.401"></a>
-<span class="sourceLineNo">402</span>      out.append("&gt;").nl(i+1);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      if (isAddKeyValueTableHeaders() &amp;&amp; ! (aType.getExtendedMeta(HtmlClassMeta.class).isNoTableHeaders()<a name="line.403"></a>
-<span class="sourceLineNo">404</span>            || (ppMeta != null &amp;&amp; ppMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).isNoTableHeaders()))) {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>         out.sTag(i+1, "tr").nl(i+2);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>         out.sTag(i+2, "th").append("key").eTag("th").nl(i+3);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>         out.sTag(i+2, "th").append("value").eTag("th").nl(i+3);<a name="line.407"></a>
-<span class="sourceLineNo">408</span>         out.ie(i+1).eTag("tr").nl(i+2);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      for (Map.Entry e : (Set&lt;Map.Entry&gt;)m.entrySet()) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>         Object key = generalize(e.getKey(), keyType);<a name="line.412"></a>
-<span class="sourceLineNo">413</span>         Object value = null;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>         try {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>            value = e.getValue();<a name="line.415"></a>
-<span class="sourceLineNo">416</span>         } catch (StackOverflowError t) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>            throw t;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>         } catch (Throwable t) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>            onError(t, "Could not call getValue() on property ''{0}'', {1}", e.getKey(), t.getLocalizedMessage());<a name="line.419"></a>
-<span class="sourceLineNo">420</span>         }<a name="line.420"></a>
-<span class="sourceLineNo">421</span><a name="line.421"></a>
-<span class="sourceLineNo">422</span>         String link = getLink(ppMeta);<a name="line.422"></a>
-<span class="sourceLineNo">423</span>         String style = getStyle(this, ppMeta, value);<a name="line.423"></a>
-<span class="sourceLineNo">424</span><a name="line.424"></a>
-<span class="sourceLineNo">425</span>         out.sTag(i+1, "tr").nl(i+2);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>         out.oTag(i+2, "td");<a name="line.426"></a>
-<span class="sourceLineNo">427</span>         if (style != null)<a name="line.427"></a>
-<span class="sourceLineNo">428</span>            out.attr("style", style);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>         out.cTag();<a name="line.429"></a>
-<span class="sourceLineNo">430</span>         if (link != null)<a name="line.430"></a>
-<span class="sourceLineNo">431</span>            out.oTag(i+3, "a").attrUri("href", link.replace("{#}", StringUtils.toString(value))).cTag();<a name="line.431"></a>
-<span class="sourceLineNo">432</span>         ContentResult cr = serializeAnything(out, key, keyType, null, 2, null, false);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>         if (link != null)<a name="line.433"></a>
-<span class="sourceLineNo">434</span>            out.eTag("a");<a name="line.434"></a>
-<span class="sourceLineNo">435</span>         if (cr == CR_NORMAL)<a name="line.435"></a>
-<span class="sourceLineNo">436</span>            out.i(i+2);<a name="line.436"></a>
-<span class="sourceLineNo">437</span>         out.eTag("td").nl(i+2);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>         out.sTag(i+2, "td");<a name="line.438"></a>
-<span class="sourceLineNo">439</span>         cr = serializeAnything(out, value, valueType, (key == null ? "_x0000_" : toString(key)), 2, null, false);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>         if (cr == CR_NORMAL)<a name="line.440"></a>
-<span class="sourceLineNo">441</span>            out.ie(i+2);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>         out.eTag("td").nl(i+2);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>         out.ie(i+1).eTag("tr").nl(i+1);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      }<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      out.ie(i).eTag("table").nl(i);<a name="line.445"></a>
-<span class="sourceLineNo">446</span>   }<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>   @SuppressWarnings("hiding")<a name="line.448"></a>
-<span class="sourceLineNo">449</span>   private void serializeBeanMap(HtmlWriter out, BeanMap&lt;?&gt; m, ClassMeta&lt;?&gt; eType,<a name="line.449"></a>
-<span class="sourceLineNo">450</span>         BeanPropertyMeta ppMeta) throws Exception {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      int i = indent;<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>      out.oTag(i, "table");<a name="line.453"></a>
+<span class="sourceLineNo">399</span>      out.oTag(i, "table");<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>      if (typeName != null &amp;&amp; ppMeta != null &amp;&amp; ppMeta.getClassMeta() != aType)<a name="line.401"></a>
+<span class="sourceLineNo">402</span>         out.attr(getBeanTypePropertyName(sType), typeName);<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>      out.append("&gt;").nl(i+1);<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      if (isAddKeyValueTableHeaders() &amp;&amp; ! (aType.getExtendedMeta(HtmlClassMeta.class).isNoTableHeaders()<a name="line.405"></a>
+<span class="sourceLineNo">406</span>            || (ppMeta != null &amp;&amp; ppMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).isNoTableHeaders()))) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>         out.sTag(i+1, "tr").nl(i+2);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>         out.sTag(i+2, "th").append("key").eTag("th").nl(i+3);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>         out.sTag(i+2, "th").append("value").eTag("th").nl(i+3);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>         out.ie(i+1).eTag("tr").nl(i+2);<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      }<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      for (Map.Entry e : (Set&lt;Map.Entry&gt;)m.entrySet()) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>         Object key = generalize(e.getKey(), keyType);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>         Object value = null;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>         try {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>            value = e.getValue();<a name="line.417"></a>
+<span class="sourceLineNo">418</span>         } catch (StackOverflowError t) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>            throw t;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>         } catch (Throwable t) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>            onError(t, "Could not call getValue() on property ''{0}'', {1}", e.getKey(), t.getLocalizedMessage());<a name="line.421"></a>
+<span class="sourceLineNo">422</span>         }<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>         String link = getLink(ppMeta);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>         String style = getStyle(this, ppMeta, value);<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>         out.sTag(i+1, "tr").nl(i+2);<a name="line.427"></a>
+<span class="sourceLineNo">428</span>         out.oTag(i+2, "td");<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         if (style != null)<a name="line.429"></a>
+<span class="sourceLineNo">430</span>            out.attr("style", style);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         out.cTag();<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         if (link != null)<a name="line.432"></a>
+<span class="sourceLineNo">433</span>            out.oTag(i+3, "a").attrUri("href", link.replace("{#}", StringUtils.toString(value))).cTag();<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         ContentResult cr = serializeAnything(out, key, keyType, null, 2, null, false);<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         if (link != null)<a name="line.435"></a>
+<span class="sourceLineNo">436</span>            out.eTag("a");<a name="line.436"></a>
+<span class="sourceLineNo">437</span>         if (cr == CR_NORMAL)<a name="line.437"></a>
+<span class="sourceLineNo">438</span>            out.i(i+2);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         out.eTag("td").nl(i+2);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>         out.sTag(i+2, "td");<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         cr = serializeAnything(out, value, valueType, (key == null ? "_x0000_" : toString(key)), 2, null, false);<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         if (cr == CR_NORMAL)<a name="line.442"></a>
+<span class="sourceLineNo">443</span>            out.ie(i+2);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>         out.eTag("td").nl(i+2);<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         out.ie(i+1).eTag("tr").nl(i+1);<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      }<a name="line.446"></a>
+<span class="sourceLineNo">447</span>      out.ie(i).eTag("table").nl(i);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>   }<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>   @SuppressWarnings("hiding")<a name="line.450"></a>
+<span class="sourceLineNo">451</span>   private void serializeBeanMap(HtmlWriter out, BeanMap&lt;?&gt; m, ClassMeta&lt;?&gt; eType,<a name="line.451"></a>
+<span class="sourceLineNo">452</span>         BeanPropertyMeta ppMeta) throws Exception {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      int i = indent;<a name="line.453"></a>
 <span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span>      String typeName = m.getMeta().getDictionaryName();<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      if (typeName != null &amp;&amp; eType != m.getClassMeta())<a name="line.456"></a>
-<span class="sourceLineNo">457</span>         out.attr(getBeanTypePropertyName(m.getClassMeta()), typeName);<a name="line.457"></a>
-<span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span>      out.append('&gt;').nl(i);<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      if (isAddKeyValueTableHeaders() &amp;&amp; ! (m.getClassMeta().getExtendedMeta(HtmlClassMeta.class).isNoTableHeaders()<a name="line.460"></a>
-<span class="sourceLineNo">461</span>            || (ppMeta != null &amp;&amp; ppMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).isNoTableHeaders()))) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>         out.sTag(i+1, "tr").nl(i+1);<a name="line.462"></a>
-<span class="sourceLineNo">463</span>         out.sTag(i+2, "th").append("key").eTag("th").nl(i+2);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>         out.sTag(i+2, "th").append("value").eTag("th").nl(i+2);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>         out.ie(i+1).eTag("tr").nl(i+1);<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      }<a name="line.466"></a>
-<span class="sourceLineNo">467</span><a name="line.467"></a>
-<span class="sourceLineNo">468</span>      for (BeanPropertyValue p : m.getValues(isTrimNulls())) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>         BeanPropertyMeta pMeta = p.getMeta();<a name="line.469"></a>
-<span class="sourceLineNo">470</span>         ClassMeta&lt;?&gt; cMeta = p.getClassMeta();<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>         String key = p.getName();<a name="line.472"></a>
-<span class="sourceLineNo">473</span>         Object value = p.getValue();<a name="line.473"></a>
-<span class="sourceLineNo">474</span>         Throwable t = p.getThrown();<a name="line.474"></a>
-<span class="sourceLineNo">475</span>         if (t != null)<a name="line.475"></a>
-<span class="sourceLineNo">476</span>            onBeanGetterException(pMeta, t);<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>         if (canIgnoreValue(cMeta, key, value))<a name="line.478"></a>
-<span class="sourceLineNo">479</span>            continue;<a name="line.479"></a>
-<span class="sourceLineNo">480</span><a name="line.480"></a>
-<span class="sourceLineNo">481</span>         String link = null, anchorText = null;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>         if (! cMeta.isCollectionOrArray()) {<a name="line.482"></a>
-<span class="sourceLineNo">483</span>            link = m.resolveVars(getLink(pMeta));<a name="line.483"></a>
-<span class="sourceLineNo">484</span>            anchorText = m.resolveVars(getAnchorText(pMeta));<a name="line.484"></a>
-<span class="sourceLineNo">485</span>         }<a name="line.485"></a>
-<span class="sourceLineNo">486</span><a name="line.486"></a>
-<span class="sourceLineNo">487</span>         if (anchorText != null)<a name="line.487"></a>
-<span class="sourceLineNo">488</span>            value = anchorText;<a name="line.488"></a>
-<span class="sourceLineNo">489</span><a name="line.489"></a>
-<span class="sourceLineNo">490</span>         out.sTag(i+1, "tr").nl(i+1);<a name="line.490"></a>
-<span class="sourceLineNo">491</span>         out.sTag(i+2, "td").text(key).eTag("td").nl(i+2);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>         out.oTag(i+2, "td");<a name="line.492"></a>
-<span class="sourceLineNo">493</span>         String style = getStyle(this, pMeta, value);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>         if (style != null)<a name="line.494"></a>
-<span class="sourceLineNo">495</span>            out.attr("style", style);<a name="line.495"></a>
-<span class="sourceLineNo">496</span>         out.cTag();<a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span>         try {<a name="line.498"></a>
-<span class="sourceLineNo">499</span>            if (link != null)<a name="line.499"></a>
-<span class="sourceLineNo">500</span>               out.oTag(i+3, "a").attrUri("href", link).cTag();<a name="line.500"></a>
-<span class="sourceLineNo">501</span>            ContentResult cr = serializeAnything(out, value, cMeta, key, 2, pMeta, false);<a name="line.501"></a>
-<span class="sourceLineNo">502</span>            if (cr == CR_NORMAL)<a name="line.502"></a>
-<span class="sourceLineNo">503</span>               out.i(i+2);<a name="line.503"></a>
-<span class="sourceLineNo">504</span>            if (link != null)<a name="line.504"></a>
-<span class="sourceLineNo">505</span>               out.eTag("a");<a name="line.505"></a>
-<span class="sourceLineNo">506</span>         } catch (SerializeException e) {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>            throw e;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>         } catch (Error e) {<a name="line.508"></a>
+<span class="sourceLineNo">455</span>      out.oTag(i, "table");<a name="line.455"></a>
+<span class="sourceLineNo">456</span><a name="line.456"></a>
+<span class="sourceLineNo">457</span>      String typeName = m.getMeta().getDictionaryName();<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      if (typeName != null &amp;&amp; eType != m.getClassMeta())<a name="line.458"></a>
+<span class="sourceLineNo">459</span>         out.attr(getBeanTypePropertyName(m.getClassMeta()), typeName);<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>      out.append('&gt;').nl(i);<a name="line.461"></a>
+<span class="sourceLineNo">462</span>      if (isAddKeyValueTableHeaders() &amp;&amp; ! (m.getClassMeta().getExtendedMeta(HtmlClassMeta.class).isNoTableHeaders()<a name="line.462"></a>
+<span class="sourceLineNo">463</span>            || (ppMeta != null &amp;&amp; ppMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).isNoTableHeaders()))) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>         out.sTag(i+1, "tr").nl(i+1);<a name="line.464"></a>
+<span class="sourceLineNo">465</span>         out.sTag(i+2, "th").append("key").eTag("th").nl(i+2);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>         out.sTag(i+2, "th").append("value").eTag("th").nl(i+2);<a name="line.466"></a>
+<span class="sourceLineNo">467</span>         out.ie(i+1).eTag("tr").nl(i+1);<a name="line.467"></a>
+<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>      for (BeanPropertyValue p : m.getValues(isTrimNulls())) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>         BeanPropertyMeta pMeta = p.getMeta();<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         ClassMeta&lt;?&gt; cMeta = p.getClassMeta();<a name="line.472"></a>
+<span class="sourceLineNo">473</span><a name="line.473"></a>
+<span class="sourceLineNo">474</span>         String key = p.getName();<a name="line.474"></a>
+<span class="sourceLineNo">475</span>         Object value = p.getValue();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>         Throwable t = p.getThrown();<a name="line.476"></a>
+<span class="sourceLineNo">477</span>         if (t != null)<a name="line.477"></a>
+<span class="sourceLineNo">478</span>            onBeanGetterException(pMeta, t);<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>         if (canIgnoreValue(cMeta, key, value))<a name="line.480"></a>
+<span class="sourceLineNo">481</span>            continue;<a name="line.481"></a>
+<span class="sourceLineNo">482</span><a name="line.482"></a>
+<span class="sourceLineNo">483</span>         String link = null, anchorText = null;<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         if (! cMeta.isCollectionOrArray()) {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>            link = m.resolveVars(getLink(pMeta));<a name="line.485"></a>
+<span class="sourceLineNo">486</span>            anchorText = m.resolveVars(getAnchorText(pMeta));<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         }<a name="line.487"></a>
+<span class="sourceLineNo">488</span><a name="line.488"></a>
+<span class="sourceLineNo">489</span>         if (anchorText != null)<a name="line.489"></a>
+<span class="sourceLineNo">490</span>            value = anchorText;<a name="line.490"></a>
+<span class="sourceLineNo">491</span><a name="line.491"></a>
+<span class="sourceLineNo">492</span>         out.sTag(i+1, "tr").nl(i+1);<a name="line.492"></a>
+<span class="sourceLineNo">493</span>         out.sTag(i+2, "td").text(key).eTag("td").nl(i+2);<a name="line.493"></a>
+<span class="sourceLineNo">494</span>         out.oTag(i+2, "td");<a name="line.494"></a>
+<span class="sourceLineNo">495</span>         String style = getStyle(this, pMeta, value);<a name="line.495"></a>
+<span class="sourceLineNo">496</span>         if (style != null)<a name="line.496"></a>
+<span class="sourceLineNo">497</span>            out.attr("style", style);<a name="line.497"></a>
+<span class="sourceLineNo">498</span>         out.cTag();<a name="line.498"></a>
+<span class="sourceLineNo">499</span><a name="line.499"></a>
+<span class="sourceLineNo">500</span>         try {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>            if (link != null)<a name="line.501"></a>
+<span class="sourceLineNo">502</span>               out.oTag(i+3, "a").attrUri("href", link).cTag();<a name="line.502"></a>
+<span class="sourceLineNo">503</span>            ContentResult cr = serializeAnything(out, value, cMeta, key, 2, pMeta, false);<a name="line.503"></a>
+<span class="sourceLineNo">504</span>            if (cr == CR_NORMAL)<a name="line.504"></a>
+<span class="sourceLineNo">505</span>               out.i(i+2);<a name="line.505"></a>
+<span class="sourceLineNo">506</span>            if (link != null)<a name="line.506"></a>
+<span class="sourceLineNo">507</span>               out.eTag("a");<a name="line.507"></a>
+<span class="sourceLineNo">508</span>         } catch (SerializeException e) {<a name="line.508"></a>
 <span class="sourceLineNo">509</span>            throw e;<a name="line.509"></a>
-<span class="sourceLineNo">510</span>         } catch (Throwable e) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>            e.printStackTrace();<a name="line.511"></a>
-<span class="sourceLineNo">512</span>            onBeanGetterException(pMeta, e);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>         }<a name="line.513"></a>
-<span class="sourceLineNo">514</span>         out.eTag("td").nl(i+2);<a name="line.514"></a>
-<span class="sourceLineNo">515</span>         out.ie(i+1).eTag("tr").nl(i+1);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      }<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      out.ie(i).eTag("table").nl(i);<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>   @SuppressWarnings({ "rawtypes", "unchecked", "hiding" })<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   private void serializeCollection(HtmlWriter out, Object in, ClassMeta&lt;?&gt; sType,<a name="line.521"></a>
-<span class="sourceLineNo">522</span>         ClassMeta&lt;?&gt; eType, String name, BeanPropertyMeta ppMeta) throws Exception {<a name="line.522"></a>
-<span class="sourceLineNo">523</span><a name="line.523"></a>
-<span class="sourceLineNo">524</span>      ClassMeta&lt;?&gt; seType = sType.getElementType();<a name="line.524"></a>
-<span class="sourceLineNo">525</span>      if (seType == null)<a name="line.525"></a>
-<span class="sourceLineNo">526</span>         seType = object();<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>      Collection c = (sType.isCollection() ? (Collection)in : toList(sType.getInnerClass(), in));<a name="line.528"></a>
+<span class="sourceLineNo">510</span>         } catch (Error e) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>            throw e;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>         } catch (Throwable e) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>            e.printStackTrace();<a name="line.513"></a>
+<span class="sourceLineNo">514</span>            onBeanGetterException(pMeta, e);<a name="line.514"></a>
+<span class="sourceLineNo">515</span>         }<a name="line.515"></a>
+<span class="sourceLineNo">516</span>         out.eTag("td").nl(i+2);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>         out.ie(i+1).eTag("tr").nl(i+1);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      }<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      out.ie(i).eTag("table").nl(i);<a name="line.519"></a>
+<span class="sourceLineNo">520</span>   }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>   @SuppressWarnings({ "rawtypes", "unchecked", "hiding" })<a name="line.522"></a>
+<span class="sourceLineNo">523</span>   private void serializeCollection(HtmlWriter out, Object in, ClassMeta&lt;?&gt; sType,<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         ClassMeta&lt;?&gt; eType, String name, BeanPropertyMeta ppMeta) throws Exception {<a name="line.524"></a>
+<span class="sourceLineNo">525</span><a name="line.525"></a>
+<span class="sourceLineNo">526</span>      ClassMeta&lt;?&gt; seType = sType.getElementType();<a name="line.526"></a>
+<span class="sourceLineNo">527</span>      if (seType == null)<a name="line.527"></a>
+<span class="sourceLineNo">528</span>         seType = object();<a name="line.528"></a>
 <span class="sourceLineNo">529</span><a name="line.529"></a>
-<span class="sourceLineNo">530</span>      int i = indent;<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      if (c.isEmpty()) {<a name="line.531"></a>
-<span class="sourceLineNo">532</span>         out.appendln(i, "&lt;ul&gt;&lt;/ul&gt;");<a name="line.532"></a>
-<span class="sourceLineNo">533</span>         return;<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      }<a name="line.534"></a>
-<span class="sourceLineNo">535</span><a name="line.535"></a>
-<span class="sourceLineNo">536</span>      String type2 = null;<a name="line.536"></a>
-<span class="sourceLineNo">537</span>      if (sType != eType)<a name="line.537"></a>
-<span class="sourceLineNo">538</span>         type2 = sType.getDictionaryName();<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      if (type2 == null)<a name="line.539"></a>
-<span class="sourceLineNo">540</span>         type2 = "array";<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>      c = sort(c);<a name="line.542"></a>
+<span class="sourceLineNo">530</span>      Collection c = (sType.isCollection() ? (Collection)in : toList(sType.getInnerClass(), in));<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>      int i = indent;<a name="line.532"></a>
+<span class="sourceLineNo">533</span>      if (c.isEmpty()) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>         out.appendln(i, "&lt;ul&gt;&lt;/ul&gt;");<a name="line.534"></a>
+<span class="sourceLineNo">535</span>         return;<a name="line.535"></a>
+<span class="sourceLineNo">536</span>      }<a name="line.536"></a>
+<span class="sourceLineNo">537</span><a name="line.537"></a>
+<span class="sourceLineNo">538</span>      String type2 = null;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>      if (sType != eType)<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         type2 = sType.getDictionaryName();<a name="line.540"></a>
+<span class="sourceLineNo">541</span>      if (type2 == null)<a name="line.541"></a>
+<span class="sourceLineNo">542</span>         type2 = "array";<a name="line.542"></a>
 <span class="sourceLineNo">543</span><a name="line.543"></a>
-<span class="sourceLineNo">544</span>      HtmlBeanPropertyMeta hbpMeta = (ppMeta == null ? null : ppMeta.getExtendedMeta(HtmlBeanPropertyMeta.class));<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      String btpn = getBeanTypePropertyName(eType);<a name="line.545"></a>
-<span class="sourceLineNo">546</span><a name="line.546"></a>
-<span class="sourceLineNo">547</span>      // Look at the objects to see how we're going to handle them.  Check the first object to see how we're going to<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      // handle this.<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      // If it's a map or bean, then we'll create a table.<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      // Otherwise, we'll create a list.<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      Object[] th = getTableHeaders(c, hbpMeta);<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span>      if (th != null) {<a name="line.553"></a>
+<span class="sourceLineNo">544</span>      c = sort(c);<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>      HtmlBeanPropertyMeta hbpMeta = (ppMeta == null ? null : ppMeta.getExtendedMeta(HtmlBeanPropertyMeta.class));<a name="line.546"></a>
+<span class="sourceLineNo">547</span>      String btpn = getBeanTypePropertyName(eType);<a name="line.547"></a>
+<span class="sourceLineNo">548</span><a name="line.548"></a>
+<span class="sourceLineNo">549</span>      // Look at the objects to see how we're going to handle them.  Check the first object to see how we're going to<a name="line.549"></a>
+<span class="sourceLineNo">550</span>      // handle this.<a name="line.550"></a>
+<span class="sourceLineNo">551</span>      // If it's a map or bean, then we'll create a table.<a name="line.551"></a>
+<span class="sourceLineNo">552</span>      // Otherwise, we'll create a list.<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      Object[] th = getTableHeaders(c, hbpMeta);<a name="line.553"></a>
 <span class="sourceLineNo">554</span><a name="line.554"></a>
-<span class="sourceLineNo">555</span>         out.oTag(i, "table").attr(btpn, type2).append('&gt;').nl(i+1);<a name="line.555"></a>
-<span class="sourceLineNo">556</span>         out.sTag(i+1, "tr").nl(i+2);<a name="line.556"></a>
-<span class="sourceLineNo">557</span>         for (Object key : th) {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>            out.sTag(i+2, "th");<a name="line.558"></a>
-<span class="sourceLineNo">559</span>            out.text(convertToType(key, String.class));<a name="line.559"></a>
-<span class="sourceLineNo">560</span>            out.eTag("th").nl(i+2);<a name="line.560"></a>
-<span class="sourceLineNo">561</span>         }<a name="line.561"></a>
-<span class="sourceLineNo">562</span>         out.ie(i+1).eTag("tr").nl(i+1);<a name="line.562"></a>
-<span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>         for (Object o : c) {<a name="line.564"></a>
-<span class="sourceLineNo">565</span>            ClassMeta&lt;?&gt; cm = getClassMetaForObject(o);<a name="line.565"></a>
-<span class="sourceLineNo">566</span><a name="line.566"></a>
-<span class="sourceLineNo">567</span>            if (cm != null &amp;&amp; cm.getPojoSwap() != null) {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>               PojoSwap f = cm.getPojoSwap();<a name="line.568"></a>
-<span class="sourceLineNo">569</span>               o = f.swap(this, o);<a name="line.569"></a>
-<span class="sourceLineNo">570</span>               cm = cm.getSerializedClassMeta();<a name="line.570"></a>
-<span class="sourceLineNo">571</span>            }<a name="line.571"></a>
-<span class="sourceLineNo">572</span><a name="line.572"></a>
-<span class="sourceLineNo">573</span>            out.oTag(i+1, "tr");<a name="line.573"></a>
-<span class="sourceLineNo">574</span>            String typeName = (cm == null ? null : cm.getDictionaryName());<a name="line.574"></a>
-<span class="sourceLineNo">575</span>            String typeProperty = getBeanTypePropertyName(cm);<a name="line.575"></a>
-<span class="sourceLineNo">576</span><a name="line.576"></a>
-<span class="sourceLineNo">577</span>            if (typeName != null &amp;&amp; eType.getElementType() != cm)<a name="line.577"></a>
-<span class="sourceLineNo">578</span>               out.attr(typeProperty, typeName);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>            out.cTag().nl(i+2);<a name="line.579"></a>
-<span class="sourceLineNo">580</span><a name="line.580"></a>
-<span class="sourceLineNo">581</span>            if (cm == null) {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>               out.i(i+2);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>               serializeAnything(out, o, null, null, 1, null, false);<a name="line.583"></a>
-<span class="sourceLineNo">584</span>               out.nl(0);<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>            } else if (cm.isMap() &amp;&amp; ! (cm.isBeanMap())) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>               Map m2 = sort((Map)o);<a name="line.587"></a>
-<span class="sourceLineNo">588</span><a name="line.588"></a>
-<span class="sourceLineNo">589</span>               for (Object k : th) {<a name="line.589"></a>
-<span class="sourceLineNo">590</span>                  out.sTag(i+2, "td");<a name="line.590"></a>
-<span class="sourceLineNo">591</span>                  ContentResult cr = serializeAnything(out, m2.get(k), eType.getElementType(), toString(k), 2, null, false);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>                  if (cr == CR_NORMAL)<a name="line.592"></a>
-<span class="sourceLineNo">593</span>                     out.i(i+2);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>                  out.eTag("td").nl(i+2);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>               }<a name="line.595"></a>
-<span class="sourceLineNo">596</span>            } else {<a name="line.596"></a>
-<span class="sourceLineNo">597</span>               BeanMap m2 = null;<a name="line.597"></a>
-<span class="sourceLineNo">598</span>               if (o instanceof BeanMap)<a name="line.598"></a>
-<span class="sourceLineNo">599</span>                  m2 = (BeanMap)o;<a name="line.599"></a>
-<span class="sourceLineNo">600</span>               else<a name="line.600"></a>
-<span class="sourceLineNo">601</span>                  m2 = toBeanMap(o);<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
-<span class="sourceLineNo">603</span>               for (Object k : th) {<a name="line.603"></a>
-<span class="sourceLineNo">604</span>                  BeanMapEntry p = m2.getProperty(toString(k));<a name="line.604"></a>
-<span class="sourceLineNo">605</span>                  BeanPropertyMeta pMeta = p.getMeta();<a name="line.605"></a>
-<span class="sourceLineNo">606</span>                  Object value = p.getValue();<a name="line.606"></a>
-<span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>                  String link = null, anchorText = null;<a name="line.608"></a>
-<span class="sourceLineNo">609</span>                  if (! pMeta.getClassMeta().isCollectionOrArray()) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>                     link = m2.resolveVars(getLink(pMeta));<a name="line.610"></a>
-<span class="sourceLineNo">611</span>                     anchorText = m2.resolveVars(getAnchorText(pMeta));<a name="line.611"></a>
-<span class="sourceLineNo">612</span>                  }<a name="line.612"></a>
-<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span>                  if (anchorText != null)<a name="line.614"></a>
-<span class="sourceLineNo">615</span>                     value = anchorText;<a name="line.615"></a>
-<span class="sourceLineNo">616</span><a name="line.616"></a>
-<span class="sourceLineNo">617</span>                  String style = getStyle(this, pMeta, value);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>                  out.oTag(i+2, "td");<a name="line.618"></a>
-<span class="sourceLineNo">619</span>                  if (style != null)<a name="line.619"></a>
-<span class="sourceLineNo">620</span>                     out.attr("style", style);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>                  out.cTag();<a name="line.621"></a>
-<span class="sourceLineNo">622</span>                  if (link != null)<a name="line.622"></a>
-<span class="sourceLineNo">623</span>                     out.oTag("a").attrUri("href", link).cTag();<a name="line.623"></a>
-<span class="sourceLineNo">624</span>                  ContentResult cr = serializeAnything(out, value, pMeta.getClassMeta(), p.getKey().toString(), 2, pMeta, false);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>                  if (cr == CR_NORMAL)<a name="line.625"></a>
-<span class="sourceLineNo">626</span>                     out.i(i+2);<a name="line.626"></a>
-<span class="sourceLineNo">627</span>                  if (link != null)<a name="line.627"></a>
-<span class="sourceLineNo">628</span>                     out.eTag("a");<a name="line.628"></a>
-<span class="sourceLineNo">629</span>                  out.eTag("td").nl(i+2);<a name="line.629"></a>
-<span class="sourceLineNo">630</span>               }<a name="line.630"></a>
-<span class="sourceLineNo">631</span>            }<a name="line.631"></a>
-<span class="sourceLineNo">632</span>            out.ie(i+1).eTag("tr").nl(i+1);<a name="line.632"></a>
-<span class="sourceLineNo">633</span>         }<a name="line.633"></a>
-<span class="sourceLineNo">634</span>         out.ie(i).eTag("table").nl(i);<a name="line.634"></a>
-<span class="sourceLineNo">635</span><a name="line.635"></a>
-<span class="sourceLineNo">636</span>      } else {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>         out.oTag(i, "ul");<a name="line.637"></a>
-<span class="sourceLineNo">638</span>         if (! type2.equals("array"))<a name="line.638"></a>
-<span class="sourceLineNo">639</span>            out.attr(btpn, type2);<a name="line.639"></a>
-<span class="sourceLineNo">640</span>         out.append('&gt;').nl(i+1);<a name="line.640"></a>
-<span class="sourceLineNo">641</span>         for (Object o : c) {<a name="line.641"></a>
-<span class="sourceLineNo">642</span>            out.oTag(i+1, "li");<a name="line.642"></a>
-<span class="sourceLineNo">643</span>            String style = getStyle(this, ppMeta, o);<a name="line.643"></a>
-<span class="sourceLineNo">644</span>            String link = getLink(ppMeta);<a name="line.644"></a>
-<span class="sourceLineNo">645</span>            if (style != null)<a name="line.645"></a>
-<span class="sourceLineNo">646</span>               out.attr("style", style);<a name="line.646"></a>
-<span class="sourceLineNo">647</span>            out.cTag();<a name="line.647"></a>
-<span class="sourceLineNo">648</span>            if (link != null)<a name="line.648"></a>
-<span class="sourceLineNo">649</span>               out.oTag(i+2, "a").attrUri("href", link.replace("{#}", StringUtils.toString(o))).cTag();<a name="line.649"></a>
-<span class="sourceLineNo">650</span>            ContentResult cr = serializeAnything(out, o, eType.getElementType(), name, 1, null, false);<a name="line.650"></a>
-<span class="sourceLineNo">651</span>            if (link != null)<a name="line.651"></a>
-<span class="sourceLineNo">652</span>               out.eTag("a");<a name="line.652"></a>
-<span class="sourceLineNo">653</span>            if (cr == CR_NORMAL)<a name="line.653"></a>
-<span class="sourceLineNo">654</span>               out.ie(i+1);<a name="line.654"></a>
-<span class="sourceLineNo">655</span>            out.eTag("li").nl(i+1);<a name="line.655"></a>
-<span class="sourceLineNo">656</span>         }<a name="line.656"></a>
-<span class="sourceLineNo">657</span>         out.ie(i).eTag("ul").nl(i);<a name="line.657"></a>
-<span class="sourceLineNo">658</span>      }<a name="line.658"></a>
-<span class="sourceLineNo">659</span>   }<a name="line.659"></a>
-<span class="sourceLineNo">660</span><a name="line.660"></a>
-<span class="sourceLineNo">661</span>   private static HtmlRender&lt;?&gt; getRender(HtmlSerializerSession session, BeanPropertyMeta pMeta, Object value) {<a name="line.661"></a>
-<span class="sourceLineNo">662</span>      if (pMeta == null)<a name="line.662"></a>
-<span class="sourceLineNo">663</span>         return null;<a name="line.663"></a>
-<span class="sourceLineNo">664</span>      HtmlBeanPropertyMeta hpMeta = pMeta.getExtendedMeta(HtmlBeanPropertyMeta.class);<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      HtmlRender&lt;?&gt; render = hpMeta.getRender();<a name="line.665"></a>
-<span class="sourceLineNo">666</span>      if (render != null)<a name="line.666"></a>
-<span class="sourceLineNo">667</span>         return render;<a name="line.667"></a>
-<span class="sourceLineNo">668</span>      ClassMeta&lt;?&gt; cMeta = session.getClassMetaForObject(value);<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      render = cMeta == null ? null : cMeta.getExtendedMeta(HtmlClassMeta.class).getRender();<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      return render;<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   }<a name="line.671"></a>
-<span class="sourceLineNo">672</span><a name="line.672"></a>
-<span class="sourceLineNo">673</span>   @SuppressWarnings({"rawtypes","unchecked"})<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   private static String getStyle(HtmlSerializerSession session, BeanPropertyMeta pMeta, Object value) {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>      HtmlRender render = getRender(session, pMeta, value);<a name="line.675"></a>
-<span class="sourceLineNo">676</span>      return render == null ? null : render.getStyle(session, value);<a name="line.676"></a>
-<span class="sourceLineNo">677</span>   }<a name="line.677"></a>
-<span class="sourceLineNo">678</span><a name="line.678"></a>
-<span class="sourceLineNo">679</span>   private static String getLink(BeanPropertyMeta pMeta) {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>      return pMeta == null ? null : pMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).getLink();<a name="line.680"></a>
-<span class="sourceLineNo">681</span>   }<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>   private static String getAnchorText(BeanPropertyMeta pMeta) {<a name="line.683"></a>
-<span class="sourceLineNo">684</span>      return pMeta == null ? null : pMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).getAnchorText();<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   }<a name="line.685"></a>
-<span class="sourceLineNo">686</span><a name="line.686"></a>
-<span class="sourceLineNo">687</span>   /*<a name="line.687"></a>
-<span class="sourceLineNo">688</span>    * Returns the table column headers for the specified collection of objects.<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    * Returns null if collection should not be serialized as a 2-dimensional table.<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    * 2-dimensional tables are used for collections of objects that all have the same set of property names.<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    */<a name="line.691"></a>
-<span class="sourceLineNo">692</span>   @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.692"></a>
-<span class="sourceLineNo">693</span>   private Object[] getTableHeaders(Collection c, HtmlBeanPropertyMeta hbpMeta) throws Exception {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>      if (c.size() == 0)<a name="line.694"></a>
-<span class="sourceLineNo">695</span>         return null;<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      c = sort(c);<a name="line.696"></a>
-<span class="sourceLineNo">697</span>      Object[] th;<a name="line.697"></a>
-<span class="sourceLineNo">698</span>      Set&lt;ClassMeta&gt; prevC = new HashSet&lt;ClassMeta&gt;();<a name="line.698"></a>
-<span class="sourceLineNo">699</span>      Object o1 = null;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>      for (Object o : c)<a name="line.700"></a>
-<span class="sourceLineNo">701</span>         if (o != null) {<a name="line.701"></a>
-<span class="sourceLineNo">702</span>            o1 = o;<a name="line.702"></a>
-<span class="sourceLineNo">703</span>            break;<a name="line.703"></a>
-<span class="sourceLineNo">704</span>         }<a name="line.704"></a>
-<span class="sourceLineNo">705</span>      if (o1 == null)<a name="line.705"></a>
-<span class="sourceLineNo">706</span>         return null;<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      ClassMeta&lt;?&gt; cm = getClassMetaForObject(o1);<a name="line.707"></a>
-<span class="sourceLineNo">708</span>      if (cm.getPojoSwap() != null) {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>         PojoSwap f = cm.getPojoSwap();<a name="line.709"></a>
-<span class="sourceLineNo">710</span>         o1 = f.swap(this, o1);<a name="line.710"></a>
-<span class="sourceLineNo">711</span>         cm = cm.getSerializedClassMeta();<a name="line.711"></a>
-<span class="sourceLineNo">712</span>      }<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      if (cm == null || ! cm.isMapOrBean())<a name="line.713"></a>
-<span class="sourceLineNo">714</span>         return null;<a name="line.714"></a>
-<span class="sourceLineNo">715</span>      if (cm.getInnerClass().isAnnotationPresent(HtmlLink.class))<a name="line.715"></a>
-<span class="sourceLineNo">716</span>         return null;<a name="line.716"></a>
-<span class="sourceLineNo">717</span>      HtmlClassMeta h = cm.getExtendedMeta(HtmlClassMeta.class);<a name="line.717"></a>
-<span class="sourceLineNo">718</span>      if (h.isNoTables() || (hbpMeta != null &amp;&amp; hbpMeta.isNoTables()))<a name="line.718"></a>
-<span class="sourceLineNo">719</span>         return null;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>      if (h.isNoTableHeaders() || (hbpMeta != null &amp;&amp; hbpMeta.isNoTableHeaders()))<a name="line.720"></a>
-<span class="sourceLineNo">721</span>         return new Object[0];<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      if (canIgnoreValue(cm, null, o1))<a name="line.722"></a>
+<span class="sourceLineNo">555</span>      if (th != null) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span>         out.oTag(i, "table").attr(btpn, type2).append('&gt;').nl(i+1);<a name="line.557"></a>
+<span class="sourceLineNo">558</span>         out.sTag(i+1, "tr").nl(i+2);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>         for (Object key : th) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>            out.sTag(i+2, "th");<a name="line.560"></a>
+<span class="sourceLineNo">561</span>            out.text(convertToType(key, String.class));<a name="line.561"></a>
+<span class="sourceLineNo">562</span>            out.eTag("th").nl(i+2);<a name="line.562"></a>
+<span class="sourceLineNo">563</span>         }<a name="line.563"></a>
+<span class="sourceLineNo">564</span>         out.ie(i+1).eTag("tr").nl(i+1);<a name="line.564"></a>
+<span class="sourceLineNo">565</span><a name="line.565"></a>
+<span class="sourceLineNo">566</span>         for (Object o : c) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>            ClassMeta&lt;?&gt; cm = getClassMetaForObject(o);<a name="line.567"></a>
+<span class="sourceLineNo">568</span><a name="line.568"></a>
+<span class="sourceLineNo">569</span>            if (cm != null &amp;&amp; cm.getPojoSwap(this) != null) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>               PojoSwap swap = cm.getPojoSwap(this);<a name="line.570"></a>
+<span class="sourceLineNo">571</span>               o = swap.swap(this, o);<a name="line.571"></a>
+<span class="sourceLineNo">572</span>               cm = swap.getSwapClassMeta(this);<a name="line.572"></a>
+<span class="sourceLineNo">573</span>            }<a name="line.573"></a>
+<span class="sourceLineNo">574</span><a name="line.574"></a>
+<span class="sourceLineNo">575</span>            out.oTag(i+1, "tr");<a name="line.575"></a>
+<span class="sourceLineNo">576</span>            String typeName = (cm == null ? null : cm.getDictionaryName());<a name="line.576"></a>
+<span class="sourceLineNo">577</span>            String typeProperty = getBeanTypePropertyName(cm);<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>            if (typeName != null &amp;&amp; eType.getElementType() != cm)<a name="line.579"></a>
+<span class="sourceLineNo">580</span>               out.attr(typeProperty, typeName);<a name="line.580"></a>
+<span class="sourceLineNo">581</span>            out.cTag().nl(i+2);<a name="line.581"></a>
+<span class="sourceLineNo">582</span><a name="line.582"></a>
+<span class="sourceLineNo">583</span>            if (cm == null) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>               out.i(i+2);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>               serializeAnything(out, o, null, null, 1, null, false);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>               out.nl(0);<a name="line.586"></a>
+<span class="sourceLineNo">587</span><a name="line.587"></a>
+<span class="sourceLineNo">588</span>            } else if (cm.isMap() &amp;&amp; ! (cm.isBeanMap())) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>               Map m2 = sort((Map)o);<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span>               for (Object k : th) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                  out.sTag(i+2, "td");<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                  ContentResult cr = serializeAnything(out, m2.get(k), eType.getElementType(), toString(k), 2, null, false);<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                  if (cr == CR_NORMAL)<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                     out.i(i+2);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                  out.eTag("td").nl(i+2);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>               }<a name="line.597"></a>
+<span class="sourceLineNo">598</span>            } else {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>               BeanMap m2 = null;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>               if (o instanceof BeanMap)<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                  m2 = (BeanMap)o;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>               else<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                  m2 = toBeanMap(o);<a name="line.603"></a>
+<span class="sourceLineNo">604</span><a name="line.604"></a>
+<span class="sourceLineNo">605</span>               for (Object k : th) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                  BeanMapEntry p = m2.getProperty(toString(k));<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                  BeanPropertyMeta pMeta = p.getMeta();<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                  Object value = p.getValue();<a name="line.608"></a>
+<span class="sourceLineNo">609</span><a name="line.609"></a>
+<span class="sourceLineNo">610</span>                  String link = null, anchorText = null;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                  if (! pMeta.getClassMeta().isCollectionOrArray()) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                     link = m2.resolveVars(getLink(pMeta));<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                     anchorText = m2.resolveVars(getAnchorText(pMeta));<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                  }<a name="line.614"></a>
+<span class="sourceLineNo">615</span><a name="line.615"></a>
+<span class="sourceLineNo">616</span>                  if (anchorText != null)<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                     value = anchorText;<a name="line.617"></a>
+<span class="sourceLineNo">618</span><a name="line.618"></a>
+<span class="sourceLineNo">619</span>                  String style = getStyle(this, pMeta, value);<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                  out.oTag(i+2, "td");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                  if (style != null)<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                     out.attr("style", style);<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                  out.cTag();<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                  if (link != null)<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                     out.oTag("a").attrUri("href", link).cTag();<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                  ContentResult cr = serializeAnything(out, value, pMeta.getClassMeta(), p.getKey().toString(), 2, pMeta, false);<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                  if (cr == CR_NORMAL)<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                     out.i(i+2);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                  if (link != null)<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                     out.eTag("a");<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                  out.eTag("td").nl(i+2);<a name="line.631"></a>
+<span class="sourceLineNo">632</span>               }<a name="line.632"></a>
+<span class="sourceLineNo">633</span>            }<a name="line.633"></a>
+<span class="sourceLineNo">634</span>            out.ie(i+1).eTag("tr").nl(i+1);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>         }<a name="line.635"></a>
+<span class="sourceLineNo">636</span>         out.ie(i).eTag("table").nl(i);<a name="line.636"></a>
+<span class="sourceLineNo">637</span><a name="line.637"></a>
+<span class="sourceLineNo">638</span>      } else {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>         out.oTag(i, "ul");<a name="line.639"></a>
+<span class="sourceLineNo">640</span>         if (! type2.equals("array"))<a name="line.640"></a>
+<span class="sourceLineNo">641</span>            out.attr(btpn, type2);<a name="line.641"></a>
+<span class="sourceLineNo">642</span>         out.append('&gt;').nl(i+1);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>         for (Object o : c) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>            out.oTag(i+1, "li");<a name="line.644"></a>
+<span class="sourceLineNo">645</span>            String style = getStyle(this, ppMeta, o);<a name="line.645"></a>
+<span class="sourceLineNo">646</span>            String link = getLink(ppMeta);<a name="line.646"></a>
+<span class="sourceLineNo">647</span>            if (style != null)<a name="line.647"></a>
+<span class="sourceLineNo">648</span>               out.attr("style", style);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>            out.cTag();<a name="line.649"></a>
+<span class="sourceLineNo">650</span>            if (link != null)<a name="line.650"></a>
+<span class="sourceLineNo">651</span>               out.oTag(i+2, "a").attrUri("href", link.replace("{#}", StringUtils.toString(o))).cTag();<a name="line.651"></a>
+<span class="sourceLineNo">652</span>            ContentResult cr = serializeAnything(out, o, eType.getElementType(), name, 1, null, false);<a name="line.652"></a>
+<span class="sourceLineNo">653</span>            if (link != null)<a name="line.653"></a>
+<span class="sourceLineNo">654</span>               out.eTag("a");<a name="line.654"></a>
+<span class="sourceLineNo">655</span>            if (cr == CR_NORMAL)<a name="line.655"></a>
+<span class="sourceLineNo">656</span>               out.ie(i+1);<a name="line.656"></a>
+<span class="sourceLineNo">657</span>            out.eTag("li").nl(i+1);<a name="line.657"></a>
+<span class="sourceLineNo">658</span>         }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>         out.ie(i).eTag("ul").nl(i);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      }<a name="line.660"></a>
+<span class="sourceLineNo">661</span>   }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>   private static HtmlRender&lt;?&gt; getRender(HtmlSerializerSession session, BeanPropertyMeta pMeta, Object value) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>      if (pMeta == null)<a name="line.664"></a>
+<span class="sourceLineNo">665</span>         return null;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>      HtmlBeanPropertyMeta hpMeta = pMeta.getExtendedMeta(HtmlBeanPropertyMeta.class);<a name="line.666"></a>
+<span class="sourceLineNo">667</span>      HtmlRender&lt;?&gt; render = hpMeta.getRender();<a name="line.667"></a>
+<span class="sourceLineNo">668</span>      if (render != null)<a name="line.668"></a>
+<span class="sourceLineNo">669</span>         return render;<a name="line.669"></a>
+<span class="sourceLineNo">670</span>      ClassMeta&lt;?&gt; cMeta = session.getClassMetaForObject(value);<a name="line.670"></a>
+<span class="sourceLineNo">671</span>      render = cMeta == null ? null : cMeta.getExtendedMeta(HtmlClassMeta.class).getRender();<a name="line.671"></a>
+<span class="sourceLineNo">672</span>      return render;<a name="line.672"></a>
+<span class="sourceLineNo">673</span>   }<a name="line.673"></a>
+<span class="sourceLineNo">674</span><a name="line.674"></a>
+<span class="sourceLineNo">675</span>   @SuppressWarnings({"rawtypes","unchecked"})<a name="line.675"></a>
+<span class="sourceLineNo">676</span>   private static String getStyle(HtmlSerializerSession session, BeanPropertyMeta pMeta, Object value) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>      HtmlRender render = getRender(session, pMeta, value);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>      return render == null ? null : render.getStyle(session, value);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>   }<a name="line.679"></a>
+<span class="sourceLineNo">680</span><a name="line.680"></a>
+<span class="sourceLineNo">681</span>   private static String getLink(BeanPropertyMeta pMeta) {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>      return pMeta == null ? null : pMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).getLink();<a name="line.682"></a>
+<span class="sourceLineNo">683</span>   }<a name="line.683"></a>
+<span class="sourceLineNo">684</span><a name="line.684"></a>
+<span class="sourceLineNo">685</span>   private static String getAnchorText(BeanPropertyMeta pMeta) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>      return pMeta == null ? null : pMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).getAnchorText();<a name="line.686"></a>
+<span class="sourceLineNo">687</span>   }<a name="line.687"></a>
+<span class="sourceLineNo">688</span><a name="line.688"></a>
+<span class="sourceLineNo">689</span>   /*<a name="line.689"></a>
+<span class="sourceLineNo">690</span>    * Returns the table column headers for the specified collection of objects.<a name="line.690"></a>
+<span class="sourceLineNo">691</span>    * Returns null if collection should not be serialized as a 2-dimensional table.<a name="line.691"></a>
+<span class="sourceLineNo">692</span>    * 2-dimensional tables are used for collections of objects that all have the same set of property names.<a name="line.692"></a>
+<span class="sourceLineNo">693</span>    */<a name="line.693"></a>
+<span class="sourceLineNo">694</span>   @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.694"></a>
+<span class="sourceLineNo">695</span>   private Object[] getTableHeaders(Collection c, HtmlBeanPropertyMeta hbpMeta) throws Exception {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>      if (c.size() == 0)<a name="line.696"></a>
+<span class="sourceLineNo">697</span>         return null;<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      c = sort(c);<a name="line.698"></a>
+<span class="sourceLineNo">699</span>      Object[] th;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>      Set&lt;ClassMeta&gt; prevC = new HashSet&lt;ClassMeta&gt;();<a name="line.700"></a>
+<span class="sourceLineNo">701</span>      Object o1 = null;<a name="line.701"></a>
+<span class="sourceLineNo">702</span>      for (Object o : c)<a name="line.702"></a>
+<span class="sourceLineNo">703</span>         if (o != null) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>            o1 = o;<a name="line.704"></a>
+<span class="sourceLineNo">705</span>            break;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>         }<a name="line.706"></a>
+<span class="sourceLineNo">707</span>      if (o1 == null)<a name="line.707"></a>
+<span class="sourceLineNo">708</span>         

<TRUNCATED>


[14/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/http/Accept.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/http/Accept.html b/content/site/apidocs/src-html/org/apache/juneau/http/Accept.html
index 93e09f2..f0b9175 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/http/Accept.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/http/Accept.html
@@ -227,43 +227,44 @@
 <span class="sourceLineNo">219</span><a name="line.219"></a>
 <span class="sourceLineNo">220</span>         for (int i = 0; i &lt; mediaTypes.length; i++) {<a name="line.220"></a>
 <span class="sourceLineNo">221</span>            MediaType mt = mediaTypes[i];<a name="line.221"></a>
-<span class="sourceLineNo">222</span>            int matchQuant2 = mt.match(mr.getMediaType());<a name="line.222"></a>
-<span class="sourceLineNo">223</span>            if (matchQuant2 &gt; matchQuant) {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>               matchIndex = i;<a name="line.224"></a>
-<span class="sourceLineNo">225</span>               matchQuant = matchQuant2;<a name="line.225"></a>
-<span class="sourceLineNo">226</span>               q = q2;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>            }<a name="line.227"></a>
-<span class="sourceLineNo">228</span>         }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      }<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>      return matchIndex;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   }<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>   /**<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    * Convenience method for searching through all of the subtypes of all the media ranges in this header for the<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    * presence of a subtype fragment.<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    *<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    * &lt;p&gt;<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    * For example, given the header &lt;js&gt;"text/json+activity"&lt;/js&gt;, calling<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    * &lt;code&gt;hasSubtypePart(&lt;js&gt;"activity"&lt;/js&gt;)&lt;/code&gt; returns &lt;jk&gt;true&lt;/jk&gt;.<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    *<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    * @param part The media type subtype fragment.<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if subtype fragment exists.<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    */<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   public boolean hasSubtypePart(String part) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>      for (MediaTypeRange mr : this.mediaRanges)<a name="line.247"></a>
-<span class="sourceLineNo">248</span>         if (mr.getQValue() &gt; 0 &amp;&amp; mr.getMediaType().getSubTypes().indexOf(part) &gt;= 0)<a name="line.248"></a>
-<span class="sourceLineNo">249</span>            return true;<a name="line.249"></a>
-<span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span>      return false;<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   }<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>   @Override /* Object */<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   public String toString() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      return join(mediaRanges, ',');<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   }<a name="line.257"></a>
-<span class="sourceLineNo">258</span>}<a name="line.258"></a>
+<span class="sourceLineNo">222</span>            int matchQuant2 = mr.getMediaType().match(mt, false);<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>            if (matchQuant2 &gt; matchQuant) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>               matchIndex = i;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>               matchQuant = matchQuant2;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>               q = q2;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>            }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      }<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>      return matchIndex;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>   /**<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    * Convenience method for searching through all of the subtypes of all the media ranges in this header for the<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    * presence of a subtype fragment.<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    *<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    * &lt;p&gt;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    * For example, given the header &lt;js&gt;"text/json+activity"&lt;/js&gt;, calling<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    * &lt;code&gt;hasSubtypePart(&lt;js&gt;"activity"&lt;/js&gt;)&lt;/code&gt; returns &lt;jk&gt;true&lt;/jk&gt;.<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    *<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    * @param part The media type subtype fragment.<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if subtype fragment exists.<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    */<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   public boolean hasSubtypePart(String part) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>      for (MediaTypeRange mr : this.mediaRanges)<a name="line.248"></a>
+<span class="sourceLineNo">249</span>         if (mr.getQValue() &gt; 0 &amp;&amp; mr.getMediaType().getSubTypes().indexOf(part) &gt;= 0)<a name="line.249"></a>
+<span class="sourceLineNo">250</span>            return true;<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>      return false;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>   }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span>   @Override /* Object */<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   public String toString() {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      return join(mediaRanges, ',');<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>}<a name="line.259"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/http/ContentType.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/http/ContentType.html b/content/site/apidocs/src-html/org/apache/juneau/http/ContentType.html
index d01d39a..e953f75 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/http/ContentType.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/http/ContentType.html
@@ -103,7 +103,7 @@
 <span class="sourceLineNo">095</span><a name="line.95"></a>
 <span class="sourceLineNo">096</span>      for (int i = 0; i &lt; mediaTypes.length; i++) {<a name="line.96"></a>
 <span class="sourceLineNo">097</span>         MediaType mt = mediaTypes[i];<a name="line.97"></a>
-<span class="sourceLineNo">098</span>         int matchQuant2 = mt.match(this);<a name="line.98"></a>
+<span class="sourceLineNo">098</span>         int matchQuant2 = mt.match(this, true);<a name="line.98"></a>
 <span class="sourceLineNo">099</span>         if (matchQuant2 &gt; matchQuant) {<a name="line.99"></a>
 <span class="sourceLineNo">100</span>            matchQuant = matchQuant2;<a name="line.100"></a>
 <span class="sourceLineNo">101</span>            matchIndex = i;<a name="line.101"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/http/MediaType.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/http/MediaType.html b/content/site/apidocs/src-html/org/apache/juneau/http/MediaType.html
index 462166a..c795479 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/http/MediaType.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/http/MediaType.html
@@ -20,307 +20,355 @@
 <span class="sourceLineNo">012</span>// ***************************************************************************************************************************<a name="line.12"></a>
 <span class="sourceLineNo">013</span>package org.apache.juneau.http;<a name="line.13"></a>
 <span class="sourceLineNo">014</span><a name="line.14"></a>
-<span class="sourceLineNo">015</span>import java.util.*;<a name="line.15"></a>
-<span class="sourceLineNo">016</span>import java.util.concurrent.*;<a name="line.16"></a>
-<span class="sourceLineNo">017</span><a name="line.17"></a>
-<span class="sourceLineNo">018</span>import org.apache.juneau.annotation.*;<a name="line.18"></a>
-<span class="sourceLineNo">019</span>import org.apache.juneau.internal.*;<a name="line.19"></a>
-<span class="sourceLineNo">020</span>import org.apache.juneau.json.*;<a name="line.20"></a>
-<span class="sourceLineNo">021</span><a name="line.21"></a>
-<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
-<span class="sourceLineNo">024</span> * Describes a single media type used in content negotiation between an HTTP client and server, as described in<a name="line.24"></a>
-<span class="sourceLineNo">025</span> * Section 14.1 and 14.7 of RFC2616 (the HTTP/1.1 specification).<a name="line.25"></a>
-<span class="sourceLineNo">026</span> *<a name="line.26"></a>
-<span class="sourceLineNo">027</span> * &lt;h6 class='topic'&gt;Additional Information&lt;/h6&gt;<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * &lt;ul class='doctree'&gt;<a name="line.28"></a>
-<span class="sourceLineNo">029</span> *    &lt;li class='jp'&gt;<a name="line.29"></a>
-<span class="sourceLineNo">030</span> *       &lt;a class='doclink' href='package-summary.html#TOC'&gt;org.apache.juneau.http&lt;/a&gt;<a name="line.30"></a>
-<span class="sourceLineNo">031</span> *    &lt;li class='extlink'&gt;<a name="line.31"></a>
-<span class="sourceLineNo">032</span> *       &lt;a class='doclink' href='https://www.w3.org/Protocols/rfc2616/rfc2616.html'&gt;<a name="line.32"></a>
-<span class="sourceLineNo">033</span> *       Hypertext Transfer Protocol -- HTTP/1.1&lt;/a&gt;<a name="line.33"></a>
-<span class="sourceLineNo">034</span> * &lt;/ul&gt;<a name="line.34"></a>
-<span class="sourceLineNo">035</span> */<a name="line.35"></a>
-<span class="sourceLineNo">036</span>@BeanIgnore<a name="line.36"></a>
-<span class="sourceLineNo">037</span>@SuppressWarnings("unchecked")<a name="line.37"></a>
-<span class="sourceLineNo">038</span>public class MediaType implements Comparable&lt;MediaType&gt; {<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>   private static final boolean nocache = Boolean.getBoolean("juneau.nocache");<a name="line.40"></a>
-<span class="sourceLineNo">041</span>   private static final ConcurrentHashMap&lt;String,MediaType&gt; cache = new ConcurrentHashMap&lt;String,MediaType&gt;();<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>   /** Reusable predefined media type */<a name="line.43"></a>
-<span class="sourceLineNo">044</span>   @SuppressWarnings("javadoc")<a name="line.44"></a>
-<span class="sourceLineNo">045</span>   public static final MediaType<a name="line.45"></a>
-<span class="sourceLineNo">046</span>      CSV = forString("text/csv"),<a name="line.46"></a>
-<span class="sourceLineNo">047</span>      HTML = forString("text/html"),<a name="line.47"></a>
-<span class="sourceLineNo">048</span>      JSON = forString("application/json"),<a name="line.48"></a>
-<span class="sourceLineNo">049</span>      MSGPACK = forString("octal/msgpack"),<a name="line.49"></a>
-<span class="sourceLineNo">050</span>      PLAIN = forString("text/plain"),<a name="line.50"></a>
-<span class="sourceLineNo">051</span>      UON = forString("text/uon"),<a name="line.51"></a>
-<span class="sourceLineNo">052</span>      URLENCODING = forString("application/x-www-form-urlencoded"),<a name="line.52"></a>
-<span class="sourceLineNo">053</span>      XML = forString("text/xml"),<a name="line.53"></a>
-<span class="sourceLineNo">054</span>      XMLSOAP = forString("text/xml+soap"),<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>      RDF = forString("text/xml+rdf"),<a name="line.56"></a>
-<span class="sourceLineNo">057</span>      RDFABBREV = forString("text/xml+rdf+abbrev"),<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      NTRIPLE = forString("text/n-triple"),<a name="line.58"></a>
-<span class="sourceLineNo">059</span>      TURTLE = forString("text/turtle"),<a name="line.59"></a>
-<span class="sourceLineNo">060</span>      N3 = forString("text/n3")<a name="line.60"></a>
-<span class="sourceLineNo">061</span>   ;<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>   private final String mediaType;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>   private final String type;                           // The media type (e.g. "text" for Accept, "utf-8" for Accept-Charset)<a name="line.64"></a>
-<span class="sourceLineNo">065</span>   private final String subType;                        // The media sub-type (e.g. "json" for Accept, not used for Accept-Charset)<a name="line.65"></a>
-<span class="sourceLineNo">066</span>   private final String[] subTypes;                     // The media sub-type (e.g. "json" for Accept, not used for Accept-Charset)<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   private final List&lt;String&gt; subTypesList;             // The media sub-type (e.g. "json" for Accept, not used for Accept-Charset)<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   private final Map&lt;String,Set&lt;String&gt;&gt; parameters;    // The media type parameters (e.g. "text/html;level=1").  Does not include q!<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>   /**<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    * Returns the media type for the specified string.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    * The same media type strings always return the same objects so that these objects<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    * can be compared for equality using '=='.<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    *<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    * &lt;h5 class='section'&gt;Notes:&lt;/h5&gt;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    * &lt;ul&gt;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    *    &lt;li&gt;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    *       Spaces are replaced with &lt;js&gt;'+'&lt;/js&gt; characters.<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    *       This gets around the issue where passing media type strings with &lt;js&gt;'+'&lt;/js&gt; as HTTP GET parameters<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    *       get replaced with spaces by your browser.  Since spaces aren't supported by the spec, this<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    *       is doesn't break anything.<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    *    &lt;li&gt;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    *       Anything including and following the &lt;js&gt;';'&lt;/js&gt; character is ignored (e.g. &lt;js&gt;";charset=X"&lt;/js&gt;).<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    * &lt;/ul&gt;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    *<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    * @param s<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    *    The media type string.<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    *    Will be lowercased.<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    *    Returns &lt;jk&gt;null&lt;/jk&gt; if input is null.<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    * @return A cached media type object.<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    */<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   public static MediaType forString(String s) {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      if (s == null)<a name="line.94"></a>
-<span class="sourceLineNo">095</span>         return null;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      MediaType mt = cache.get(s);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      if (mt == null) {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>         mt = new MediaType(s);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>         if (nocache)<a name="line.99"></a>
-<span class="sourceLineNo">100</span>            return mt;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>         cache.putIfAbsent(s, mt);<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      }<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      return cache.get(s);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   }<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>   MediaType(String mt) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      Builder b = new Builder(mt);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      this.mediaType = b.mediaType;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      this.type = b.type;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      this.subType = b.subType;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      this.subTypes = b.subTypes;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      this.subTypesList = Collections.unmodifiableList(Arrays.asList(subTypes));<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      this.parameters = (b.parameters == null ? Collections.EMPTY_MAP : Collections.unmodifiableMap(b.parameters));<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>   private static class Builder {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      private String mediaType, type, subType;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      private String[] subTypes;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      private Map&lt;String,Set&lt;String&gt;&gt; parameters;<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>      private Builder(String mt) {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>         mt = mt.trim();<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>         int i = mt.indexOf(';');<a name="line.124"></a>
-<span class="sourceLineNo">125</span>         if (i == -1) {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>            this.parameters = Collections.EMPTY_MAP;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>         } else {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>            this.parameters = new TreeMap&lt;String,Set&lt;String&gt;&gt;();<a name="line.128"></a>
-<span class="sourceLineNo">129</span>            String[] tokens = mt.substring(i+1).split(";");<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>            for (int j = 0; j &lt; tokens.length; j++) {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>               String[] parm = tokens[j].split("=");<a name="line.132"></a>
-<span class="sourceLineNo">133</span>               if (parm.length == 2) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>                  String k = parm[0].trim(), v = parm[1].trim();<a name="line.134"></a>
-<span class="sourceLineNo">135</span>                  if (! parameters.containsKey(k))<a name="line.135"></a>
-<span class="sourceLineNo">136</span>                     parameters.put(k, new TreeSet&lt;String&gt;());<a name="line.136"></a>
-<span class="sourceLineNo">137</span>                  parameters.get(k).add(v);<a name="line.137"></a>
-<span class="sourceLineNo">138</span>               }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>            }<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>            mt = mt.substring(0, i);<a name="line.141"></a>
-<span class="sourceLineNo">142</span>         }<a name="line.142"></a>
+<span class="sourceLineNo">015</span>import static org.apache.juneau.internal.StringUtils.*;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.*;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.concurrent.*;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.juneau.annotation.*;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.juneau.internal.*;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.juneau.json.*;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>/**<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * Describes a single media type used in content negotiation between an HTTP client and server, as described in<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Section 14.1 and 14.7 of RFC2616 (the HTTP/1.1 specification).<a name="line.27"></a>
+<span class="sourceLineNo">028</span> *<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * &lt;h6 class='topic'&gt;Additional Information&lt;/h6&gt;<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * &lt;ul class='doctree'&gt;<a name="line.30"></a>
+<span class="sourceLineNo">031</span> *    &lt;li class='jp'&gt;<a name="line.31"></a>
+<span class="sourceLineNo">032</span> *       &lt;a class='doclink' href='package-summary.html#TOC'&gt;org.apache.juneau.http&lt;/a&gt;<a name="line.32"></a>
+<span class="sourceLineNo">033</span> *    &lt;li class='extlink'&gt;<a name="line.33"></a>
+<span class="sourceLineNo">034</span> *       &lt;a class='doclink' href='https://www.w3.org/Protocols/rfc2616/rfc2616.html'&gt;<a name="line.34"></a>
+<span class="sourceLineNo">035</span> *       Hypertext Transfer Protocol -- HTTP/1.1&lt;/a&gt;<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * &lt;/ul&gt;<a name="line.36"></a>
+<span class="sourceLineNo">037</span> */<a name="line.37"></a>
+<span class="sourceLineNo">038</span>@BeanIgnore<a name="line.38"></a>
+<span class="sourceLineNo">039</span>@SuppressWarnings("unchecked")<a name="line.39"></a>
+<span class="sourceLineNo">040</span>public class MediaType implements Comparable&lt;MediaType&gt; {<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>   private static final boolean nocache = Boolean.getBoolean("juneau.nocache");<a name="line.42"></a>
+<span class="sourceLineNo">043</span>   private static final ConcurrentHashMap&lt;String,MediaType&gt; cache = new ConcurrentHashMap&lt;String,MediaType&gt;();<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>   /** Reusable predefined media type */<a name="line.45"></a>
+<span class="sourceLineNo">046</span>   @SuppressWarnings("javadoc")<a name="line.46"></a>
+<span class="sourceLineNo">047</span>   public static final MediaType<a name="line.47"></a>
+<span class="sourceLineNo">048</span>      CSV = forString("text/csv"),<a name="line.48"></a>
+<span class="sourceLineNo">049</span>      HTML = forString("text/html"),<a name="line.49"></a>
+<span class="sourceLineNo">050</span>      JSON = forString("application/json"),<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      MSGPACK = forString("octal/msgpack"),<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      PLAIN = forString("text/plain"),<a name="line.52"></a>
+<span class="sourceLineNo">053</span>      UON = forString("text/uon"),<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      URLENCODING = forString("application/x-www-form-urlencoded"),<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      XML = forString("text/xml"),<a name="line.55"></a>
+<span class="sourceLineNo">056</span>      XMLSOAP = forString("text/xml+soap"),<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>      RDF = forString("text/xml+rdf"),<a name="line.58"></a>
+<span class="sourceLineNo">059</span>      RDFABBREV = forString("text/xml+rdf+abbrev"),<a name="line.59"></a>
+<span class="sourceLineNo">060</span>      NTRIPLE = forString("text/n-triple"),<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      TURTLE = forString("text/turtle"),<a name="line.61"></a>
+<span class="sourceLineNo">062</span>      N3 = forString("text/n3")<a name="line.62"></a>
+<span class="sourceLineNo">063</span>   ;<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>   private final String mediaType;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   private final String type;                           // The media type (e.g. "text" for Accept, "utf-8" for Accept-Charset)<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   private final String subType;                        // The media sub-type (e.g. "json" for Accept, not used for Accept-Charset)<a name="line.67"></a>
+<span class="sourceLineNo">068</span>   private final String[] subTypes;                     // The media sub-type (e.g. "json" for Accept, not used for Accept-Charset)<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   private final String[] subTypesSorted;               // Same as subTypes, but sorted so that it can be used for comparison.<a name="line.69"></a>
+<span class="sourceLineNo">070</span>   private final List&lt;String&gt; subTypesList;             // The media sub-type (e.g. "json" for Accept, not used for Accept-Charset)<a name="line.70"></a>
+<span class="sourceLineNo">071</span>   private final Map&lt;String,Set&lt;String&gt;&gt; parameters;    // The media type parameters (e.g. "text/html;level=1").  Does not include q!<a name="line.71"></a>
+<span class="sourceLineNo">072</span>   private final boolean hasSubtypeMeta;                // The media subtype contains meta-character '*'.<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>   /**<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    * Returns the media type for the specified string.<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    * The same media type strings always return the same objects so that these objects<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    * can be compared for equality using '=='.<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    *<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    * &lt;h5 class='section'&gt;Notes:&lt;/h5&gt;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    * &lt;ul&gt;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    *    &lt;li&gt;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    *       Spaces are replaced with &lt;js&gt;'+'&lt;/js&gt; characters.<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    *       This gets around the issue where passing media type strings with &lt;js&gt;'+'&lt;/js&gt; as HTTP GET parameters<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    *       get replaced with spaces by your browser.  Since spaces aren't supported by the spec, this<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    *       is doesn't break anything.<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    *    &lt;li&gt;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    *       Anything including and following the &lt;js&gt;';'&lt;/js&gt; character is ignored (e.g. &lt;js&gt;";charset=X"&lt;/js&gt;).<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    * &lt;/ul&gt;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    *<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    * @param s<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    *    The media type string.<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    *    Will be lowercased.<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    *    Returns &lt;jk&gt;null&lt;/jk&gt; if input is null or empty.<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    * @return A cached media type object.<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   public static MediaType forString(String s) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      if (isEmpty(s))<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         return null;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      MediaType mt = cache.get(s);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      if (mt == null) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>         mt = new MediaType(s);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         if (nocache)<a name="line.102"></a>
+<span class="sourceLineNo">103</span>            return mt;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         cache.putIfAbsent(s, mt);<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      return cache.get(s);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>   /**<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    * Same as {@link #forString(String)} but allows you to construct an array of &lt;code&gt;MediaTypes&lt;/code&gt; from an<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    * array of strings.<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    *<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    * @param s<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    *    The media type strings.<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    * @return<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    *    An array of &lt;code&gt;MediaType&lt;/code&gt; objects.<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    *    &lt;br&gt;Always the same length as the input string array.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    */<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   public static MediaType[] forStrings(String...s) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      MediaType[] mt = new MediaType[s.length];<a name="line.120"></a>
+<span class="sourceLineNo">121</span>      for (int i = 0; i &lt; s.length; i++)<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         mt[i] = forString(s[i]);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      return mt;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   }<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>   MediaType(String mt) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      Builder b = new Builder(mt);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      this.mediaType = b.mediaType;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>      this.type = b.type;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      this.subType = b.subType;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      this.subTypes = b.subTypes;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      this.subTypesSorted = b.subTypesSorted;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      this.subTypesList = Collections.unmodifiableList(Arrays.asList(subTypes));<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      this.parameters = (b.parameters == null ? Collections.EMPTY_MAP : Collections.unmodifiableMap(b.parameters));<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      this.hasSubtypeMeta = b.hasSubtypeMeta;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>   }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>   private static class Builder {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      private String mediaType, type, subType;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      private String[] subTypes, subTypesSorted;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      private Map&lt;String,Set&lt;String&gt;&gt; parameters;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      private boolean hasSubtypeMeta;<a name="line.142"></a>
 <span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>         this.mediaType = mt;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>         if (mt != null) {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>            mt = mt.replace(' ', '+');<a name="line.146"></a>
-<span class="sourceLineNo">147</span>            i = mt.indexOf('/');<a name="line.147"></a>
-<span class="sourceLineNo">148</span>            type = (i == -1 ? mt : mt.substring(0, i));<a name="line.148"></a>
-<span class="sourceLineNo">149</span>            subType = (i == -1 ? "*" : mt.substring(i+1));<a name="line.149"></a>
-<span class="sourceLineNo">150</span>         }<a name="line.150"></a>
-<span class="sourceLineNo">151</span>         this.subTypes = StringUtils.split(subType, '+');<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      }<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   }<a name="line.153"></a>
-<span class="sourceLineNo">154</span><a name="line.154"></a>
-<span class="sourceLineNo">155</span>   /**<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    * Returns the &lt;js&gt;'type'&lt;/js&gt; fragment of the &lt;js&gt;'type/subType'&lt;/js&gt; string.<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    *<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    * @return The media type.<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    */<a name="line.159"></a>
-<span class="sourceLineNo">160</span>   public final String getType() {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      return type;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   }<a name="line.162"></a>
+<span class="sourceLineNo">144</span>      private Builder(String mt) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         mt = mt.trim();<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>         int i = mt.indexOf(';');<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         if (i == -1) {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>            this.parameters = Collections.EMPTY_MAP;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         } else {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>            this.parameters = new TreeMap&lt;String,Set&lt;String&gt;&gt;();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>            String[] tokens = mt.substring(i+1).split(";");<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>            for (int j = 0; j &lt; tokens.length; j++) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>               String[] parm = tokens[j].split("=");<a name="line.155"></a>
+<span class="sourceLineNo">156</span>               if (parm.length == 2) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                  String k = parm[0].trim(), v = parm[1].trim();<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                  if (! parameters.containsKey(k))<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                     parameters.put(k, new TreeSet&lt;String&gt;());<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                  parameters.get(k).add(v);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>               }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>            }<a name="line.162"></a>
 <span class="sourceLineNo">163</span><a name="line.163"></a>
-<span class="sourceLineNo">164</span>   /**<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    * Returns the &lt;js&gt;'subType'&lt;/js&gt; fragment of the &lt;js&gt;'type/subType'&lt;/js&gt; string.<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    *<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    * @return The media subtype.<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    */<a name="line.168"></a>
-<span class="sourceLineNo">169</span>   public final String getSubType() {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>      return subType;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>   }<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>   /**<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    * Returns &lt;jk&gt;true&lt;/jk&gt; if the subtype contains the specified &lt;js&gt;'+'&lt;/js&gt; delimited subtype value.<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    *<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    * @param st<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    *    The subtype string.<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    *    Case is ignored.<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if the subtype contains the specified subtype string.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    */<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   public final boolean hasSubType(String st) {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      if (st != null)<a name="line.182"></a>
-<span class="sourceLineNo">183</span>         for (String s : subTypes)<a name="line.183"></a>
-<span class="sourceLineNo">184</span>            if (st.equalsIgnoreCase(s))<a name="line.184"></a>
-<span class="sourceLineNo">185</span>               return true;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      return false;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>   }<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>   /**<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    * Returns the subtypes broken down by fragments delimited by &lt;js&gt;"'"&lt;/js&gt;.<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    *<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    * &lt;P&gt;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    * For example, the media type &lt;js&gt;"text/foo+bar"&lt;/js&gt; will return a list of<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    * &lt;code&gt;[&lt;js&gt;'foo'&lt;/js&gt;,&lt;js&gt;'bar'&lt;/js&gt;]&lt;/code&gt;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    *<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    * @return An unmodifiable list of subtype fragments.  Never &lt;jk&gt;null&lt;/jk&gt;.<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    */<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   public final List&lt;String&gt; getSubTypes() {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      return subTypesList;<a name="line.199"></a>
-<span class="sourceLineNo">200</span>   }<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>   /**<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    * Returns &lt;jk&gt;true&lt;/jk&gt; if this media type is a match for the specified media type.<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    *<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    * &lt;p&gt;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    * Matches if any of the following is true:<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    * &lt;ul&gt;<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    *    &lt;li&gt;Both type and subtype are the same.<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    *    &lt;li&gt;One or both types are &lt;js&gt;'*'&lt;/js&gt; and the subtypes are the same.<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    *    &lt;li&gt;One or both subtypes are &lt;js&gt;'*'&lt;/js&gt; and the types are the same.<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    *    &lt;li&gt;Either is &lt;js&gt;'*\/*'&lt;/js&gt;.<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    * &lt;/ul&gt;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    *<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    * @param o The media type to compare with.<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if the media types match.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    */<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   public final boolean matches(MediaType o) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      return match(o) &gt; 0;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   }<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>   /**<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    * Returns a match metric against the specified media type where a larger number represents a better match.<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    *<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    * &lt;ul&gt;<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    *    &lt;li&gt;Exact matches (e.g. &lt;js&gt;"text/json"&lt;js&gt;/&lt;/js&gt;"text/json"&lt;/js&gt;) should match<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    *       better than meta-character matches (e.g. &lt;js&gt;"text/*"&lt;js&gt;/&lt;/js&gt;"text/json"&lt;/js&gt;)<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    *    &lt;li&gt;The comparison media type can have additional subtype tokens (e.g. &lt;js&gt;"text/json+foo"&lt;/js&gt;)<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    *       that will not prevent a match.  The reverse is not true, e.g. the comparison media type<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    *       must contain all subtype tokens found in the comparing media type.<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    *       &lt;ul&gt;<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    *          &lt;li&gt;We want the {@link JsonSerializer} (&lt;js&gt;"text/json"&lt;/js&gt;) class to be able to handle requests for &lt;js&gt;"text/json+foo"&lt;/js&gt;.<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    *          &lt;li&gt;We want to make sure {@link org.apache.juneau.json.JsonSerializer.Simple} (&lt;js&gt;"text/json+simple"&lt;/js&gt;) does not handle<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    *             requests for &lt;js&gt;"text/json"&lt;/js&gt;.<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    *       &lt;/ul&gt;<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    *       More token matches should result in a higher match number.<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    * &lt;/ul&gt;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    *<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    * @param o The media type to compare with.<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if the media types match.<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    */<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   public final int match(MediaType o) {<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>      // Perfect match<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      if (this == o || (type.equals(o.type) &amp;&amp; subType.equals(o.subType)))<a name="line.244"></a>
-<span class="sourceLineNo">245</span>         return Integer.MAX_VALUE;<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>      int c1 = 0, c2 = 0;<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>      if (type.equals(o.type))<a name="line.249"></a>
-<span class="sourceLineNo">250</span>         c1 += 10000;<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      else if ("*".equals(type) || "*".equals(o.type))<a name="line.251"></a>
-<span class="sourceLineNo">252</span>         c1 += 5000;<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>      if (c1 == 0)<a name="line.254"></a>
-<span class="sourceLineNo">255</span>         return 0;<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      // Give type slightly higher comparison value than subtype simply for deterministic results.<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      if (subType.equals(o.subType))<a name="line.258"></a>
-<span class="sourceLineNo">259</span>         return c1 + 9999;<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>      int c3 = 0;<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>      for (String st1 : subTypes) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>         if ("*".equals(st1))<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            c1++;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>         else if (ArrayUtils.contains(st1, o.subTypes))<a name="line.266"></a>
-<span class="sourceLineNo">267</span>            c1 += 100;<a name="line.267"></a>
-<span class="sourceLineNo">268</span>         else if (ArrayUtils.contains("*", o.subTypes))<a name="line.268"></a>
-<span class="sourceLineNo">269</span>            c1 += 10;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>         else<a name="line.270"></a>
-<span class="sourceLineNo">271</span>            return 0;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      }<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>      return c1 + c2 + c3;<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   }<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span>   /**<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    * Returns the additional parameters on this media type.<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    *<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    * &lt;p&gt;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    * For example, given the media type string &lt;js&gt;"text/html;level=1"&lt;/js&gt;, will return a map<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    * with the single entry &lt;code&gt;{level:[&lt;js&gt;'1'&lt;/js&gt;]}&lt;/code&gt;.<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    *<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    * @return The map of additional parameters, or an empty map if there are no parameters.<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    */<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   public final Map&lt;String,Set&lt;String&gt;&gt; getParameters() {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      return parameters;<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>   @Override /* Object */<a name="line.290"></a>
-<span class="sourceLineNo">291</span>   public final String toString() {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      if (parameters.isEmpty())<a name="line.292"></a>
-<span class="sourceLineNo">293</span>         return mediaType;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      StringBuilder sb = new StringBuilder(mediaType);<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      for (Map.Entry&lt;String,Set&lt;String&gt;&gt; e : parameters.entrySet())<a name="line.295"></a>
-<span class="sourceLineNo">296</span>         for (String value : e.getValue())<a name="line.296"></a>
-<span class="sourceLineNo">297</span>            sb.append(';').append(e.getKey()).append('=').append(value);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      return sb.toString();<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   }<a name="line.299"></a>
-<span class="sourceLineNo">300</span><a name="line.300"></a>
-<span class="sourceLineNo">301</span>   @Override /* Object */<a name="line.301"></a>
-<span class="sourceLineNo">302</span>   public final int hashCode() {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      return mediaType.hashCode();<a name="line.303"></a>
-<span class="sourceLineNo">304</span>   }<a name="line.304"></a>
-<span class="sourceLineNo">305</span><a name="line.305"></a>
-<span class="sourceLineNo">306</span>   @Override /* Object */<a name="line.306"></a>
-<span class="sourceLineNo">307</span>   public final boolean equals(Object o) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      return this == o;<a name="line.308"></a>
-<span class="sourceLineNo">309</span>   }<a name="line.309"></a>
-<span class="sourceLineNo">310</span><a name="line.310"></a>
-<span class="sourceLineNo">311</span>   @Override<a name="line.311"></a>
-<span class="sourceLineNo">312</span>   public final int compareTo(MediaType o) {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      return mediaType.compareTo(o.mediaType);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>   }<a name="line.314"></a>
-<span class="sourceLineNo">315</span>}<a name="line.315"></a>
+<span class="sourceLineNo">164</span>            mt = mt.substring(0, i);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>         this.mediaType = mt;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         if (mt != null) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>            mt = mt.replace(' ', '+');<a name="line.169"></a>
+<span class="sourceLineNo">170</span>            i = mt.indexOf('/');<a name="line.170"></a>
+<span class="sourceLineNo">171</span>            type = (i == -1 ? mt : mt.substring(0, i));<a name="line.171"></a>
+<span class="sourceLineNo">172</span>            subType = (i == -1 ? "*" : mt.substring(i+1));<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         this.subTypes = StringUtils.split(subType, '+');<a name="line.174"></a>
+<span class="sourceLineNo">175</span>         this.subTypesSorted = Arrays.copyOf(subTypes, subTypes.length);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>         Arrays.sort(this.subTypesSorted);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>         hasSubtypeMeta = ArrayUtils.contains("*", this.subTypes);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>   /**<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    * Returns the &lt;js&gt;'type'&lt;/js&gt; fragment of the &lt;js&gt;'type/subType'&lt;/js&gt; string.<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    *<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    * @return The media type.<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    */<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   public final String getType() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      return type;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>   }<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>   /**<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    * Returns the &lt;js&gt;'subType'&lt;/js&gt; fragment of the &lt;js&gt;'type/subType'&lt;/js&gt; string.<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    *<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    * @return The media subtype.<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    */<a name="line.194"></a>
+<span class="sourceLineNo">195</span>   public final String getSubType() {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      return subType;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>   }<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>   /**<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    * Returns &lt;jk&gt;true&lt;/jk&gt; if the subtype contains the specified &lt;js&gt;'+'&lt;/js&gt; delimited subtype value.<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    *<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    * @param st<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    *    The subtype string.<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    *    Case is ignored.<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if the subtype contains the specified subtype string.<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    */<a name="line.206"></a>
+<span class="sourceLineNo">207</span>   public final boolean hasSubType(String st) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      if (st != null)<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         for (String s : subTypes)<a name="line.209"></a>
+<span class="sourceLineNo">210</span>            if (st.equalsIgnoreCase(s))<a name="line.210"></a>
+<span class="sourceLineNo">211</span>               return true;<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      return false;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>   }<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>   /**<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    * Returns the subtypes broken down by fragments delimited by &lt;js&gt;"'"&lt;/js&gt;.<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    *<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    * &lt;P&gt;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    * For example, the media type &lt;js&gt;"text/foo+bar"&lt;/js&gt; will return a list of<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    * &lt;code&gt;[&lt;js&gt;'foo'&lt;/js&gt;,&lt;js&gt;'bar'&lt;/js&gt;]&lt;/code&gt;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    *<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    * @return An unmodifiable list of subtype fragments.  Never &lt;jk&gt;null&lt;/jk&gt;.<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    */<a name="line.223"></a>
+<span class="sourceLineNo">224</span>   public final List&lt;String&gt; getSubTypes() {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      return subTypesList;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>   }<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>   /**<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    * Returns &lt;jk&gt;true&lt;/jk&gt; if this media type contains the &lt;js&gt;'*'&lt;/js&gt; meta character.<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    *<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if this media type contains the &lt;js&gt;'*'&lt;/js&gt; meta character.<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    */<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   public final boolean isMeta() {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      return hasSubtypeMeta;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>   /**<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    * Returns a match metric against the specified media type where a larger number represents a better match.<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    *<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    * &lt;p&gt;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    * This media type can contain &lt;js&gt;'*'&lt;/js&gt; metacharacters.<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    * &lt;br&gt;The comparison media type must not.<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    *<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    * &lt;ul&gt;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    *    &lt;li&gt;Exact matches (e.g. &lt;js&gt;"text/json"&lt;js&gt;/&lt;/js&gt;"text/json"&lt;/js&gt;) should match<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    *       better than meta-character matches (e.g. &lt;js&gt;"text/*"&lt;js&gt;/&lt;/js&gt;"text/json"&lt;/js&gt;)<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    *    &lt;li&gt;The comparison media type can have additional subtype tokens (e.g. &lt;js&gt;"text/json+foo"&lt;/js&gt;)<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    *       that will not prevent a match if the &lt;code&gt;allowExtraSubTypes&lt;/code&gt; flag is set.<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    *       The reverse is not true, e.g. the comparison media type must contain all subtype tokens found in the<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    *       comparing media type.<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    *       &lt;ul&gt;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    *          &lt;li&gt;We want the {@link JsonSerializer} (&lt;js&gt;"text/json"&lt;/js&gt;) class to be able to handle requests for &lt;js&gt;"text/json+foo"&lt;/js&gt;.<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    *          &lt;li&gt;We want to make sure {@link org.apache.juneau.json.JsonSerializer.Simple} (&lt;js&gt;"text/json+simple"&lt;/js&gt;) does not handle<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    *             requests for &lt;js&gt;"text/json"&lt;/js&gt;.<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    *       &lt;/ul&gt;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    *       More token matches should result in a higher match number.<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    * &lt;/ul&gt;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    *<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    * The formula is as follows for &lt;code&gt;type/subTypes&lt;/code&gt;:<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    * &lt;ul&gt;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    *    &lt;li&gt;An exact match is &lt;code&gt;100,000&lt;/code&gt;.<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    *    &lt;li&gt;Add the following for type (assuming subtype match is &amp;lt;0):<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    *    &lt;ul&gt;<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    *       &lt;li&gt;&lt;code&gt;10,000&lt;/code&gt; for an exact match (e.g. &lt;js&gt;"text"&lt;/js&gt;==&lt;js&gt;"text"&lt;/js&gt;).<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    *       &lt;li&gt;&lt;code&gt;5,000&lt;/code&gt; for a meta match (e.g. &lt;js&gt;"*"&lt;/js&gt;==&lt;js&gt;"text"&lt;/js&gt;).<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    *    &lt;ul&gt;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    *    &lt;li&gt;Add the following for subtype (assuming type match is &amp;lt;0):<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    *    &lt;ul&gt;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    *       &lt;li&gt;&lt;code&gt;7,500&lt;/code&gt; for an exact match (e.g. &lt;js&gt;"json+foo"&lt;/js&gt;==&lt;js&gt;"json+foo"&lt;/js&gt; or &lt;js&gt;"json+foo"&lt;/js&gt;==&lt;js&gt;"foo+json"&lt;/js&gt;)<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    *       &lt;li&gt;&lt;code&gt;100&lt;/code&gt; for every subtype entry match (e.g. &lt;js&gt;"json"&lt;/js&gt;/&lt;js&gt;"json+foo"&lt;/js&gt;)<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    *       &lt;li&gt;&lt;code&gt;10&lt;/code&gt; for a subtype entry meta match (e.g. &lt;js&gt;"*"&lt;/js&gt;/&lt;js&gt;"json"&lt;/js&gt; or &lt;js&gt;"json+*"&lt;/js&gt;/&lt;js&gt;"json+foo"&lt;/js&gt;)<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    *    &lt;/ul&gt;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    * &lt;/ul&gt;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    *<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    * @param o The media type to compare with.<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    * @param allowExtraSubTypes If &lt;jk&gt;true&lt;/jk&gt;,<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if the media types match.<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    */<a name="line.278"></a>
+<span class="sourceLineNo">279</span>   public final int match(MediaType o, boolean allowExtraSubTypes) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>      // Perfect match<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      if (this == o || (type.equals(o.type) &amp;&amp; subType.equals(o.subType)))<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         return 100000;<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>      int c = 0;<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>      if (type.equals(o.type))<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         c += 10000;<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      else if ("*".equals(type) || "*".equals(o.type))<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         c += 5000;<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>      if (c == 0)<a name="line.292"></a>
+<span class="sourceLineNo">293</span>         return 0;<a name="line.293"></a>
+<span class="sourceLineNo">294</span><a name="line.294"></a>
+<span class="sourceLineNo">295</span>      // Subtypes match but are ordered different<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      if (ArrayUtils.equals(subTypesSorted, o.subTypesSorted))<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         return c + 7500;<a name="line.297"></a>
+<span class="sourceLineNo">298</span><a name="line.298"></a>
+<span class="sourceLineNo">299</span>      for (String st1 : subTypes) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         if ("*".equals(st1))<a name="line.300"></a>
+<span class="sourceLineNo">301</span>            c += 0;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         else if (ArrayUtils.contains(st1, o.subTypes))<a name="line.302"></a>
+<span class="sourceLineNo">303</span>            c += 100;<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         else if (o.hasSubtypeMeta)<a name="line.304"></a>
+<span class="sourceLineNo">305</span>            c += 10;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         else<a name="line.306"></a>
+<span class="sourceLineNo">307</span>            return 0;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      }<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      for (String st2 : o.subTypes) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         if ("*".equals(st2))<a name="line.310"></a>
+<span class="sourceLineNo">311</span>            c += 0;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>         else if (ArrayUtils.contains(st2, subTypes))<a name="line.312"></a>
+<span class="sourceLineNo">313</span>            c += 100;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>         else if (hasSubtypeMeta)<a name="line.314"></a>
+<span class="sourceLineNo">315</span>            c += 10;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         else if (! allowExtraSubTypes)<a name="line.316"></a>
+<span class="sourceLineNo">317</span>            return 0;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         else<a name="line.318"></a>
+<span class="sourceLineNo">319</span>            c += 10;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      }<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span>      return c;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>   }<a name="line.323"></a>
+<span class="sourceLineNo">324</span><a name="line.324"></a>
+<span class="sourceLineNo">325</span>   /**<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    * Returns the additional parameters on this media type.<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    *<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    * &lt;p&gt;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    * For example, given the media type string &lt;js&gt;"text/html;level=1"&lt;/js&gt;, will return a map<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    * with the single entry &lt;code&gt;{level:[&lt;js&gt;'1'&lt;/js&gt;]}&lt;/code&gt;.<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    *<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    * @return The map of additional parameters, or an empty map if there are no parameters.<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    */<a name="line.333"></a>
+<span class="sourceLineNo">334</span>   public final Map&lt;String,Set&lt;String&gt;&gt; getParameters() {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      return parameters;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>   }<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
+<span class="sourceLineNo">338</span>   @Override /* Object */<a name="line.338"></a>
+<span class="sourceLineNo">339</span>   public final String toString() {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      if (parameters.isEmpty())<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         return mediaType;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      StringBuilder sb = new StringBuilder(mediaType);<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      for (Map.Entry&lt;String,Set&lt;String&gt;&gt; e : parameters.entrySet())<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         for (String value : e.getValue())<a name="line.344"></a>
+<span class="sourceLineNo">345</span>            sb.append(';').append(e.getKey()).append('=').append(value);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      return sb.toString();<a name="line.346"></a>
+<span class="sourceLineNo">347</span>   }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>   @Override /* Object */<a name="line.349"></a>
+<span class="sourceLineNo">350</span>   public final int hashCode() {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      return mediaType.hashCode();<a name="line.351"></a>
+<span class="sourceLineNo">352</span>   }<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>   @Override /* Object */<a name="line.354"></a>
+<span class="sourceLineNo">355</span>   public final boolean equals(Object o) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      return this == o;<a name="line.356"></a>
+<span class="sourceLineNo">357</span>   }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>   @Override<a name="line.359"></a>
+<span class="sourceLineNo">360</span>   public final int compareTo(MediaType o) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      return mediaType.compareTo(o.mediaType);<a name="line.361"></a>
+<span class="sourceLineNo">362</span>   }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>}<a name="line.363"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/http/MediaTypeRange.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/http/MediaTypeRange.html b/content/site/apidocs/src-html/org/apache/juneau/http/MediaTypeRange.html
index 5052e42..9ee6bbc 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/http/MediaTypeRange.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/http/MediaTypeRange.html
@@ -286,20 +286,7 @@
 <span class="sourceLineNo">278</span>      int i = o.mediaType.toString().compareTo(mediaType.toString());<a name="line.278"></a>
 <span class="sourceLineNo">279</span>      return i;<a name="line.279"></a>
 <span class="sourceLineNo">280</span>   }<a name="line.280"></a>
-<span class="sourceLineNo">281</span><a name="line.281"></a>
-<span class="sourceLineNo">282</span>   /**<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    * Matches the specified media type against this range and returns a q-value between 0 and 1 indicating the<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    * quality of the match.<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    *<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    * @param o The media type to match against.<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    * @return A float between 0 and 1.  1 is a perfect match.  0 is no match at all.<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    */<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   public float matches(MediaType o) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      if (this.mediaType == o || mediaType.matches(o))<a name="line.290"></a>
-<span class="sourceLineNo">291</span>         return qValue;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      return 0;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   }<a name="line.293"></a>
-<span class="sourceLineNo">294</span>}<a name="line.294"></a>
+<span class="sourceLineNo">281</span>}<a name="line.281"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/internal/ArrayUtils.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/internal/ArrayUtils.html b/content/site/apidocs/src-html/org/apache/juneau/internal/ArrayUtils.html
index 0bf3cd2..faa8fbb 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/internal/ArrayUtils.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/internal/ArrayUtils.html
@@ -424,7 +424,23 @@
 <span class="sourceLineNo">416</span>         r[i++] = StringUtils.toString(o);<a name="line.416"></a>
 <span class="sourceLineNo">417</span>      return r;<a name="line.417"></a>
 <span class="sourceLineNo">418</span>   }<a name="line.418"></a>
-<span class="sourceLineNo">419</span>}<a name="line.419"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>   /**<a name="line.420"></a>
+<span class="sourceLineNo">421</span>    * Returns &lt;jk&gt;true&lt;/jk&gt; if the following sorted arrays are equals.<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    *<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    * @param a1 Array #1.<a name="line.423"></a>
+<span class="sourceLineNo">424</span>    * @param a2 Array #2.<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if the following sorted arrays are equals.<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    */<a name="line.426"></a>
+<span class="sourceLineNo">427</span>   public static boolean equals(String[] a1, String[] a2) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      if (a1.length != a2.length)<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         return false;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      for (int i = 0; i &lt; a1.length; i++)<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         if (! StringUtils.isEquals(a1[i], a2[i]))<a name="line.431"></a>
+<span class="sourceLineNo">432</span>            return false;<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      return true;<a name="line.433"></a>
+<span class="sourceLineNo">434</span>   }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>}<a name="line.435"></a>
 
 
 


[31/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/annotation/ParentProperty.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/annotation/ParentProperty.html b/content/site/apidocs/org/apache/juneau/annotation/ParentProperty.html
index 2376fcf..81582fc 100644
--- a/content/site/apidocs/org/apache/juneau/annotation/ParentProperty.html
+++ b/content/site/apidocs/org/apache/juneau/annotation/ParentProperty.html
@@ -43,7 +43,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/juneau/annotation/Overrideable.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/juneau/annotation/ParentProperty.html" target="_top">Frames</a></li>
@@ -147,7 +147,7 @@ public @interface <a href="../../../../src-html/org/apache/juneau/annotation/Par
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/juneau/annotation/Overrideable.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/juneau/annotation/ParentProperty.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/annotation/Pojo.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/annotation/Pojo.html b/content/site/apidocs/org/apache/juneau/annotation/Pojo.html
deleted file mode 100644
index e63d609..0000000
--- a/content/site/apidocs/org/apache/juneau/annotation/Pojo.html
+++ /dev/null
@@ -1,271 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Pojo (Apache Juneau (incubating) 6.3.2-incubating-SNAPSHOT)</title>
-<link rel="stylesheet" type="text/css" href="../../../../javadoc.css" title="Style">
-<script type="text/javascript" src="../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Pojo (Apache Juneau (incubating) 6.3.2-incubating-SNAPSHOT)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../index-all.html">Index</a></li>
-<li><a href="../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/juneau/annotation/ParentProperty.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/juneau/annotation/ThreadSafe.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/juneau/annotation/Pojo.html" target="_top">Frames</a></li>
-<li><a href="Pojo.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li>Required&nbsp;|&nbsp;</li>
-<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li><a href="#annotation.type.element.detail">Element</a></li>
-</ul>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<!-- ======== START OF CLASS DATA ======== -->
-<div class="header">
-<div class="subTitle">org.apache.juneau.annotation</div>
-<h2 title="Annotation Type Pojo" class="title">Annotation Type Pojo</h2>
-</div>
-<div class="contentContainer">
-<div class="description">
-<ul class="blockList">
-<li class="blockList">
-<hr>
-<br>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation">@Documented</a>
- <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation">TYPE</a>)
- <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
- <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Inherited.html?is-external=true" title="class or interface in java.lang.annotation">@Inherited</a>
-public @interface <a href="../../../../src-html/org/apache/juneau/annotation/Pojo.html#line.29">Pojo</a></pre>
-<div class="block">Used to tailor how POJOs get interpreted by the framework.</div>
-</li>
-</ul>
-</div>
-<div class="summary">
-<ul class="blockList">
-<li class="blockList">
-<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="annotation.type.optional.element.summary">
-<!--   -->
-</a>
-<h3>Optional Element Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Optional Element Summary table, listing optional elements, and an explanation">
-<caption><span>Optional Elements</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Optional Element and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/annotation/Pojo.html#swap--">swap</a></span></code>
-<div class="block">Associate a <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> or <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a> with this class type.</div>
-</td>
-</tr>
-</table>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="details">
-<ul class="blockList">
-<li class="blockList">
-<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="annotation.type.element.detail">
-<!--   -->
-</a>
-<h3>Element Detail</h3>
-<a name="swap--">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>swap</h4>
-<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/annotation/Pojo.html#line.83">swap</a></pre>
-<div class="block">Associate a <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> or <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a> with this class type.
-
- <p>
- Supports the following class types:
- <ul>
-   <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Any other class.  Will get interpreted as a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
- </ul>
-
- <h5 class='section'>Example:</h5>
- <p>
- In this case, a swap is being applied to a bean that will force it to be serialized as a <code>String</code>:
- <p class='bcode'>
-   <jc>// Our bean class</jc>
-   <ja>@Pojo</ja>(swap=BSwap.<jk>class</jk>)
-   <jk>public class</jk> B {
-      <jk>public</jk> String <jf>f1</jf>;
-   }
-
-   <jc>// Our POJO swap to force the bean to be serialized as a String</jc>
-   <jk>public class</jk> BSwap <jk>extends</jk> PojoSwap&lt;B,String&gt; {
-      <jk>public</jk> String swap(BeanSession s, B o) <jk>throws</jk> SerializeException {
-         <jk>return</jk> o.f1;
-      }
-      <jk>public</jk> B unswap(BeanSession s, String f) <jk>throws</jk> ParseException { {
-         B b1 = <jk>new</jk> B();
-         b1.<jf>f1</jf> = f;
-         <jk>return</jk> b1;
-      }
-   }
-
-   <jk>public void</jk> test() <jk>throws</jk> Exception {
-      WriterSerializer s = JsonSerializer.<jsf>DEFAULT</jsf>;
-      B b = <jk>new</jk> B();
-      b.<jf>f1</jf> = <js>"bar"</js>;
-      String json = s.serialize(b);
-      <jsm>assertEquals</jsm>(<js>"\"bar\""</js>, json);
-
-      ReaderParser p = JsonParser.<jsf>DEFAULT</jsf>;
-      b = p.parse(json, B.<jk>class</jk>);
-      <jsm>assertEquals</jsm>(<js>"bar"</js>, b.<jf>f1</jf>);
-   }
- </p>
-
- <p>
- Note that using this annotation is functionally equivalent to adding swaps to the serializers and parsers:
- <p class='bcode'>
-   WriterSerializer s = <jk>new</jk> JsonSerializerBuilder().pojoSwaps(BSwap.<jk>class</jk>).build();
-   ReaderParser p = <jk>new</jk> JsonParserBuilder().pojoSwaps(BSwap.<jk>class</jk>).build();
- </p></div>
-<dl>
-<dt>Default:</dt>
-<dd>org.apache.juneau.annotation.Null.class</dd>
-</dl>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-<!-- ========= END OF CLASS DATA ========= -->
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../index-all.html">Index</a></li>
-<li><a href="../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/juneau/annotation/ParentProperty.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/juneau/annotation/ThreadSafe.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/juneau/annotation/Pojo.html" target="_top">Frames</a></li>
-<li><a href="Pojo.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li>Required&nbsp;|&nbsp;</li>
-<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li><a href="#annotation.type.element.detail">Element</a></li>
-</ul>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2017 <a href="http://www.apache.org/">Apache</a>. All rights reserved.</small></p>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/annotation/ThreadSafe.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/annotation/ThreadSafe.html b/content/site/apidocs/org/apache/juneau/annotation/ThreadSafe.html
index 326f861..7a3bcc6 100644
--- a/content/site/apidocs/org/apache/juneau/annotation/ThreadSafe.html
+++ b/content/site/apidocs/org/apache/juneau/annotation/ThreadSafe.html
@@ -42,7 +42,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/annotation/Swaps.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/juneau/annotation/URI.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -125,7 +125,7 @@ public @interface <a href="../../../../src-html/org/apache/juneau/annotation/Thr
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/annotation/Swaps.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/juneau/annotation/URI.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/annotation/package-frame.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/annotation/package-frame.html b/content/site/apidocs/org/apache/juneau/annotation/package-frame.html
index 701b524..710d541 100644
--- a/content/site/apidocs/org/apache/juneau/annotation/package-frame.html
+++ b/content/site/apidocs/org/apache/juneau/annotation/package-frame.html
@@ -25,7 +25,8 @@
 <li><a href="NameProperty.html" title="annotation in org.apache.juneau.annotation" target="classFrame">NameProperty</a></li>
 <li><a href="Overrideable.html" title="annotation in org.apache.juneau.annotation" target="classFrame">Overrideable</a></li>
 <li><a href="ParentProperty.html" title="annotation in org.apache.juneau.annotation" target="classFrame">ParentProperty</a></li>
-<li><a href="Pojo.html" title="annotation in org.apache.juneau.annotation" target="classFrame">Pojo</a></li>
+<li><a href="Swap.html" title="annotation in org.apache.juneau.annotation" target="classFrame">Swap</a></li>
+<li><a href="Swaps.html" title="annotation in org.apache.juneau.annotation" target="classFrame">Swaps</a></li>
 <li><a href="ThreadSafe.html" title="annotation in org.apache.juneau.annotation" target="classFrame">ThreadSafe</a></li>
 <li><a href="URI.html" title="annotation in org.apache.juneau.annotation" target="classFrame">URI</a></li>
 </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/annotation/package-summary.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/annotation/package-summary.html b/content/site/apidocs/org/apache/juneau/annotation/package-summary.html
index f07c60d..c8a03d3 100644
--- a/content/site/apidocs/org/apache/juneau/annotation/package-summary.html
+++ b/content/site/apidocs/org/apache/juneau/annotation/package-summary.html
@@ -151,18 +151,24 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation">Pojo</a></td>
+<td class="colFirst"><a href="../../../../org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation">Swap</a></td>
 <td class="colLast">
-<div class="block">Used to tailor how POJOs get interpreted by the framework.</div>
+<div class="block">Associates <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> and <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a> classes with POJOs and bean properties.</div>
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/juneau/annotation/Swaps.html" title="annotation in org.apache.juneau.annotation">Swaps</a></td>
+<td class="colLast">
+<div class="block">Used to associate multiple swaps with the same POJO class.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/juneau/annotation/ThreadSafe.html" title="annotation in org.apache.juneau.annotation">ThreadSafe</a></td>
 <td class="colLast">
 <div class="block">Identifies a class as being thread-safe.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/juneau/annotation/URI.html" title="annotation in org.apache.juneau.annotation">URI</a></td>
 <td class="colLast">
 <div class="block">Used to identify a class or bean property as a URI.</div>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/annotation/package-tree.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/annotation/package-tree.html b/content/site/apidocs/org/apache/juneau/annotation/package-tree.html
index e7e4b9e..7d9f0e4 100644
--- a/content/site/apidocs/org/apache/juneau/annotation/package-tree.html
+++ b/content/site/apidocs/org/apache/juneau/annotation/package-tree.html
@@ -88,7 +88,8 @@
 <ul>
 <li type="circle">org.apache.juneau.annotation.<a href="../../../../org/apache/juneau/annotation/URI.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">URI</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.juneau.annotation.<a href="../../../../org/apache/juneau/annotation/ThreadSafe.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">ThreadSafe</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
-<li type="circle">org.apache.juneau.annotation.<a href="../../../../org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Pojo</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.apache.juneau.annotation.<a href="../../../../org/apache/juneau/annotation/Swaps.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Swaps</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.apache.juneau.annotation.<a href="../../../../org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Swap</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.juneau.annotation.<a href="../../../../org/apache/juneau/annotation/ParentProperty.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">ParentProperty</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.juneau.annotation.<a href="../../../../org/apache/juneau/annotation/Overrideable.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Overrideable</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.juneau.annotation.<a href="../../../../org/apache/juneau/annotation/NameProperty.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">NameProperty</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/csv/CsvParserBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/csv/CsvParserBuilder.html b/content/site/apidocs/org/apache/juneau/csv/CsvParserBuilder.html
index 4171ad1..12520b8 100644
--- a/content/site/apidocs/org/apache/juneau/csv/CsvParserBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/csv/CsvParserBuilder.html
@@ -2172,7 +2172,7 @@ extends <a href="../../../../org/apache/juneau/parser/ParserBuilder.html" title=
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/csv/CsvSerializerBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/csv/CsvSerializerBuilder.html b/content/site/apidocs/org/apache/juneau/csv/CsvSerializerBuilder.html
index d9c95a4..16121ba 100644
--- a/content/site/apidocs/org/apache/juneau/csv/CsvSerializerBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/csv/CsvSerializerBuilder.html
@@ -2856,7 +2856,7 @@ extends <a href="../../../../org/apache/juneau/serializer/SerializerBuilder.html
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/dto/atom/CommonEntry.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/dto/atom/CommonEntry.html b/content/site/apidocs/org/apache/juneau/dto/atom/CommonEntry.html
index d1ece80..6c40b38 100644
--- a/content/site/apidocs/org/apache/juneau/dto/atom/CommonEntry.html
+++ b/content/site/apidocs/org/apache/juneau/dto/atom/CommonEntry.html
@@ -667,7 +667,7 @@ public&nbsp;<a href="../../../../../org/apache/juneau/dto/atom/CommonEntry.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>getUpdated</h4>
-<pre><a href="../../../../../org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation">@BeanProperty</a>(<a href="../../../../../org/apache/juneau/annotation/BeanProperty.html#swap--">swap</a>=<a href="../../../../../org/apache/juneau/transforms/CalendarSwap.ISO8601DT.html" title="class in org.apache.juneau.transforms">CalendarSwap.ISO8601DT.class</a>)
+<pre><a href="../../../../../org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation">@Swap</a>(<a href="../../../../../org/apache/juneau/annotation/Swap.html#value--">value</a>=<a href="../../../../../org/apache/juneau/transforms/CalendarSwap.ISO8601DT.html" title="class in org.apache.juneau.transforms">CalendarSwap.ISO8601DT.class</a>)
 public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util">Calendar</a>&nbsp;<a href="../../../../../src-html/org/apache/juneau/dto/atom/CommonEntry.html#line.275">getUpdated</a>()</pre>
 <div class="block">Returns the update timestamp of this object.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/dto/atom/Entry.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/dto/atom/Entry.html b/content/site/apidocs/org/apache/juneau/dto/atom/Entry.html
index 9338138..dd273e8 100644
--- a/content/site/apidocs/org/apache/juneau/dto/atom/Entry.html
+++ b/content/site/apidocs/org/apache/juneau/dto/atom/Entry.html
@@ -474,7 +474,7 @@ public&nbsp;<a href="../../../../../org/apache/juneau/dto/atom/Entry.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getPublished</h4>
-<pre><a href="../../../../../org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation">@BeanProperty</a>(<a href="../../../../../org/apache/juneau/annotation/BeanProperty.html#swap--">swap</a>=<a href="../../../../../org/apache/juneau/transforms/CalendarSwap.ISO8601DT.html" title="class in org.apache.juneau.transforms">CalendarSwap.ISO8601DT.class</a>)
+<pre><a href="../../../../../org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation">@Swap</a>(<a href="../../../../../org/apache/juneau/annotation/Swap.html#value--">value</a>=<a href="../../../../../org/apache/juneau/transforms/CalendarSwap.ISO8601DT.html" title="class in org.apache.juneau.transforms">CalendarSwap.ISO8601DT.class</a>)
 public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util">Calendar</a>&nbsp;<a href="../../../../../src-html/org/apache/juneau/dto/atom/Entry.html#line.127">getPublished</a>()</pre>
 <div class="block">Returns the publish timestamp of this entry.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaArraySwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaArraySwap.html b/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaArraySwap.html
index 66a9878..2da975f 100644
--- a/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaArraySwap.html
+++ b/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaArraySwap.html
@@ -201,7 +201,7 @@ extends <a href="../../../../../org/apache/juneau/transform/PojoSwap.html" title
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../../org/apache/juneau/transform/Poj
 oSwap.html#swap-org.apache.juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaSwap.html b/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaSwap.html
index 125127f..1d3650d 100644
--- a/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaSwap.html
+++ b/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaSwap.html
@@ -201,7 +201,7 @@ extends <a href="../../../../../org/apache/juneau/transform/PojoSwap.html" title
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../../org/apache/juneau/transform/Poj
 oSwap.html#swap-org.apache.juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.JsonTypeOrJsonTypeArraySwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.JsonTypeOrJsonTypeArraySwap.html b/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.JsonTypeOrJsonTypeArraySwap.html
index 6b2eb07..e3b5504 100644
--- a/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.JsonTypeOrJsonTypeArraySwap.html
+++ b/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.JsonTypeOrJsonTypeArraySwap.html
@@ -201,7 +201,7 @@ extends <a href="../../../../../org/apache/juneau/transform/PojoSwap.html" title
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../../org/apache/juneau/transform/Poj
 oSwap.html#swap-org.apache.juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.SchemaOrSchemaArraySwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.SchemaOrSchemaArraySwap.html b/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.SchemaOrSchemaArraySwap.html
index 7978e52..5a5a2b4 100644
--- a/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.SchemaOrSchemaArraySwap.html
+++ b/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.SchemaOrSchemaArraySwap.html
@@ -201,7 +201,7 @@ extends <a href="../../../../../org/apache/juneau/transform/PojoSwap.html" title
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../../org/apache/juneau/transform/Poj
 oSwap.html#swap-org.apache.juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.html b/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.html
index b2f96bb..af578fa 100644
--- a/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.html
+++ b/content/site/apidocs/org/apache/juneau/dto/jsonschema/Schema.html
@@ -984,7 +984,7 @@ public&nbsp;<a href="../../../../../org/apache/juneau/dto/jsonschema/Schema.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getType</h4>
-<pre><a href="../../../../../org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation">@BeanProperty</a>(<a href="../../../../../org/apache/juneau/annotation/BeanProperty.html#swap--">swap</a>=<a href="../../../../../org/apache/juneau/dto/jsonschema/Schema.JsonTypeOrJsonTypeArraySwap.html" title="class in org.apache.juneau.dto.jsonschema">Schema.JsonTypeOrJsonTypeArraySwap.class</a>)
+<pre><a href="../../../../../org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation">@Swap</a>(<a href="../../../../../org/apache/juneau/annotation/Swap.html#value--">value</a>=<a href="../../../../../org/apache/juneau/dto/jsonschema/Schema.JsonTypeOrJsonTypeArraySwap.html" title="class in org.apache.juneau.dto.jsonschema">Schema.JsonTypeOrJsonTypeArraySwap.class</a>)
 public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/juneau/dto/jsonschema/Schema.html#line.230">getType</a>()</pre>
 <div class="block">Bean property getter:  <property>type</property>.</div>
 <dl>
@@ -1314,7 +1314,7 @@ public&nbsp;<a href="../../../../../org/apache/juneau/dto/jsonschema/JsonTypeArr
 <ul class="blockList">
 <li class="blockList">
 <h4>getItems</h4>
-<pre><a href="../../../../../org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation">@BeanProperty</a>(<a href="../../../../../org/apache/juneau/annotation/BeanProperty.html#swap--">swap</a>=<a href="../../../../../org/apache/juneau/dto/jsonschema/Schema.SchemaOrSchemaArraySwap.html" title="class in org.apache.juneau.dto.jsonschema">Schema.SchemaOrSchemaArraySwap.class</a>)
+<pre><a href="../../../../../org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation">@Swap</a>(<a href="../../../../../org/apache/juneau/annotation/Swap.html#value--">value</a>=<a href="../../../../../org/apache/juneau/dto/jsonschema/Schema.SchemaOrSchemaArraySwap.html" title="class in org.apache.juneau.dto.jsonschema">Schema.SchemaOrSchemaArraySwap.class</a>)
 public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/juneau/dto/jsonschema/Schema.html#line.554">getItems</a>()</pre>
 <div class="block">Bean property getter:  <property>items</property>.</div>
 <dl>
@@ -1643,7 +1643,7 @@ public&nbsp;<a href="../../../../../org/apache/juneau/dto/jsonschema/SchemaArray
 <ul class="blockList">
 <li class="blockList">
 <h4>getAdditionalItems</h4>
-<pre><a href="../../../../../org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation">@BeanProperty</a>(<a href="../../../../../org/apache/juneau/annotation/BeanProperty.html#swap--">swap</a>=<a href="../../../../../org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaArraySwap.html" title="class in org.apache.juneau.dto.jsonschema">Schema.BooleanOrSchemaArraySwap.class</a>)
+<pre><a href="../../../../../org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation">@Swap</a>(<a href="../../../../../org/apache/juneau/annotation/Swap.html#value--">value</a>=<a href="../../../../../org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaArraySwap.html" title="class in org.apache.juneau.dto.jsonschema">Schema.BooleanOrSchemaArraySwap.class</a>)
 public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/juneau/dto/jsonschema/Schema.html#line.831">getAdditionalItems</a>()</pre>
 <div class="block">Bean property getter:  <property>additionalItems</property>.</div>
 <dl>
@@ -1961,7 +1961,7 @@ public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getAdditionalProperties</h4>
-<pre><a href="../../../../../org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation">@BeanProperty</a>(<a href="../../../../../org/apache/juneau/annotation/BeanProperty.html#swap--">swap</a>=<a href="../../../../../org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaSwap.html" title="class in org.apache.juneau.dto.jsonschema">Schema.BooleanOrSchemaSwap.class</a>)
+<pre><a href="../../../../../org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation">@Swap</a>(<a href="../../../../../org/apache/juneau/annotation/Swap.html#value--">value</a>=<a href="../../../../../org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaSwap.html" title="class in org.apache.juneau.dto.jsonschema">Schema.BooleanOrSchemaSwap.class</a>)
 public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/juneau/dto/jsonschema/Schema.html#line.1111">getAdditionalProperties</a>()</pre>
 <div class="block">Bean property getter:  <property>additionalProperties</property>.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/html/HtmlParserBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/html/HtmlParserBuilder.html b/content/site/apidocs/org/apache/juneau/html/HtmlParserBuilder.html
index c28820e..88cdd41 100644
--- a/content/site/apidocs/org/apache/juneau/html/HtmlParserBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/html/HtmlParserBuilder.html
@@ -2374,7 +2374,7 @@ extends <a href="../../../../org/apache/juneau/xml/XmlParserBuilder.html" title=
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/html/HtmlSerializerBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/html/HtmlSerializerBuilder.html b/content/site/apidocs/org/apache/juneau/html/HtmlSerializerBuilder.html
index 0aa6a26..a504054 100644
--- a/content/site/apidocs/org/apache/juneau/html/HtmlSerializerBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/html/HtmlSerializerBuilder.html
@@ -3322,7 +3322,7 @@ extends <a href="../../../../org/apache/juneau/xml/XmlSerializerBuilder.html" ti
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/http/Accept.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/http/Accept.html b/content/site/apidocs/org/apache/juneau/http/Accept.html
index e207fe1..7e903f1 100644
--- a/content/site/apidocs/org/apache/juneau/http/Accept.html
+++ b/content/site/apidocs/org/apache/juneau/http/Accept.html
@@ -372,7 +372,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hasSubtypePart</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/juneau/http/Accept.html#line.245">hasSubtypePart</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;part)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/juneau/http/Accept.html#line.246">hasSubtypePart</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;part)</pre>
 <div class="block">Convenience method for searching through all of the subtypes of all the media ranges in this header for the
  presence of a subtype fragment.
 
@@ -393,7 +393,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/http/Accept.html#line.255">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/http/Accept.html#line.256">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/http/ContentType.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/http/ContentType.html b/content/site/apidocs/org/apache/juneau/http/ContentType.html
index 68507eb..d18866d 100644
--- a/content/site/apidocs/org/apache/juneau/http/ContentType.html
+++ b/content/site/apidocs/org/apache/juneau/http/ContentType.html
@@ -203,7 +203,7 @@ extends <a href="../../../../org/apache/juneau/http/MediaType.html" title="class
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.http.<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a></h3>
-<code><a href="../../../../org/apache/juneau/http/MediaType.html#compareTo-org.apache.juneau.http.MediaType-">compareTo</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#equals-java.lang.Object-">equals</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#getParameters--">getParameters</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#getSubType--">getSubType</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#getSubTypes--">getSubTypes</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#getType--">getType</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#hashCode--">hashCode</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#hasSubType-java.lang.String-">hasSubType</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#match-org.apache.juneau.http.MediaType-">match</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#matches-org.apache.juneau.http.MediaType-">matches</a>, <
 a href="../../../../org/apache/juneau/http/MediaType.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/http/MediaType.html#compareTo-org.apache.juneau.http.MediaType-">compareTo</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#equals-java.lang.Object-">equals</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#forStrings-java.lang.String...-">forStrings</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#getParameters--">getParameters</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#getSubType--">getSubType</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#getSubTypes--">getSubTypes</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#getType--">getType</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#hashCode--">hashCode</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#hasSubType-java.lang.String-">hasSubType</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#isMeta--">isMeta</a>, <a href="../../../../org/apache/juneau
 /http/MediaType.html#match-org.apache.juneau.http.MediaType-boolean-">match</a>, <a href="../../../../org/apache/juneau/http/MediaType.html#toString--">toString</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[06/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/transform/SurrogateSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/transform/SurrogateSwap.html b/content/site/apidocs/src-html/org/apache/juneau/transform/SurrogateSwap.html
index 61a2749..13a3aa0 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/transform/SurrogateSwap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/transform/SurrogateSwap.html
@@ -29,204 +29,95 @@
 <span class="sourceLineNo">021</span>import org.apache.juneau.serializer.*;<a name="line.21"></a>
 <span class="sourceLineNo">022</span><a name="line.22"></a>
 <span class="sourceLineNo">023</span>/**<a name="line.23"></a>
-<span class="sourceLineNo">024</span> * Specialized {@link PojoSwap} for surrogate classes.<a name="line.24"></a>
+<span class="sourceLineNo">024</span> * Specialized {@link PojoSwap} for {@link Surrogate} classes.<a name="line.24"></a>
 <span class="sourceLineNo">025</span> *<a name="line.25"></a>
-<span class="sourceLineNo">026</span> * &lt;p&gt;<a name="line.26"></a>
-<span class="sourceLineNo">027</span> * Surrogate classes are used in place of other classes during serialization.<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * For example, you may want to use a surrogate class to change the names or order of bean properties on a bean.<a name="line.28"></a>
-<span class="sourceLineNo">029</span> *<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * &lt;p&gt;<a name="line.30"></a>
-<span class="sourceLineNo">031</span> * The following is an example of a surrogate class change changes a property name:<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * &lt;p class='bcode'&gt;<a name="line.32"></a>
-<span class="sourceLineNo">033</span> *    &lt;jk&gt;public class&lt;/jk&gt; SurrogateClass {<a name="line.33"></a>
-<span class="sourceLineNo">034</span> *       &lt;jk&gt;public&lt;/jk&gt; String surrogateField;  &lt;jc&gt;// New bean property&lt;/jc&gt;<a name="line.34"></a>
-<span class="sourceLineNo">035</span> *<a name="line.35"></a>
-<span class="sourceLineNo">036</span> *       &lt;jk&gt;public&lt;/jk&gt; SurrogateClass(NormalClass normalClass) {<a name="line.36"></a>
-<span class="sourceLineNo">037</span> *          &lt;jk&gt;this&lt;/jk&gt;.surrogateField = normalClass.normalField;<a name="line.37"></a>
-<span class="sourceLineNo">038</span> *       }<a name="line.38"></a>
-<span class="sourceLineNo">039</span> *    }<a name="line.39"></a>
-<span class="sourceLineNo">040</span> * &lt;/p&gt;<a name="line.40"></a>
-<span class="sourceLineNo">041</span> *<a name="line.41"></a>
-<span class="sourceLineNo">042</span> * &lt;p&gt;<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * Optionally, a public static method can be used to un-transform a class during parsing:<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * &lt;p class='bcode'&gt;<a name="line.44"></a>
-<span class="sourceLineNo">045</span> *    &lt;jk&gt;public class&lt;/jk&gt; SurrogateClass {<a name="line.45"></a>
-<span class="sourceLineNo">046</span> *       ...<a name="line.46"></a>
-<span class="sourceLineNo">047</span> *       &lt;jk&gt;public static&lt;/jk&gt; NormalClass &lt;jsm&gt;toNormalClass&lt;/jsm&gt;(SurrogateClass surrogateClass) {<a name="line.47"></a>
-<span class="sourceLineNo">048</span> *          &lt;jk&gt;return new&lt;/jk&gt; NormalClass(surrogateClass.transformedField);<a name="line.48"></a>
-<span class="sourceLineNo">049</span> *       }<a name="line.49"></a>
-<span class="sourceLineNo">050</span> *    }<a name="line.50"></a>
-<span class="sourceLineNo">051</span> * &lt;/p&gt;<a name="line.51"></a>
-<span class="sourceLineNo">052</span> *<a name="line.52"></a>
-<span class="sourceLineNo">053</span> * &lt;p&gt;<a name="line.53"></a>
-<span class="sourceLineNo">054</span> * Surrogate classes must conform to the following:<a name="line.54"></a>
-<span class="sourceLineNo">055</span> * &lt;ul class='spaced-list'&gt;<a name="line.55"></a>
-<span class="sourceLineNo">056</span> *    &lt;li&gt;<a name="line.56"></a>
-<span class="sourceLineNo">057</span> *       It must have a one or more public constructors that take in a single parameter whose type is the normal types.<a name="line.57"></a>
-<span class="sourceLineNo">058</span> *       (It is possible to define a class as a surrogate for multiple class types by using multiple constructors with<a name="line.58"></a>
-<span class="sourceLineNo">059</span> *       different parameter types).<a name="line.59"></a>
-<span class="sourceLineNo">060</span> *    &lt;li&gt;<a name="line.60"></a>
-<span class="sourceLineNo">061</span> *       It optionally can have a public static method that takes in a single parameter whose type is the transformed<a name="line.61"></a>
-<span class="sourceLineNo">062</span> *       type and returns an instance of the normal type.<a name="line.62"></a>
-<span class="sourceLineNo">063</span> *       This is called the un-transform method.<a name="line.63"></a>
-<span class="sourceLineNo">064</span> *       The method can be called anything.<a name="line.64"></a>
-<span class="sourceLineNo">065</span> *    &lt;li&gt;<a name="line.65"></a>
-<span class="sourceLineNo">066</span> *       If an un-transform method is present, the class must also contain a no-arg constructor (so that the<a name="line.66"></a>
-<span class="sourceLineNo">067</span> *       transformed class can be instantiated by the parser before being converted into the normal class by the<a name="line.67"></a>
-<span class="sourceLineNo">068</span> *       un-transform method).<a name="line.68"></a>
-<span class="sourceLineNo">069</span> * &lt;/ul&gt;<a name="line.69"></a>
-<span class="sourceLineNo">070</span> *<a name="line.70"></a>
-<span class="sourceLineNo">071</span> * &lt;p&gt;<a name="line.71"></a>
-<span class="sourceLineNo">072</span> * Surrogate classes are associated with serializers and parsers using the {@link CoreObjectBuilder#pojoSwaps(Class...)}<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * method.<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * &lt;p class='bcode'&gt;<a name="line.74"></a>
-<span class="sourceLineNo">075</span> *    &lt;ja&gt;@Test&lt;/ja&gt;<a name="line.75"></a>
-<span class="sourceLineNo">076</span> *    &lt;jk&gt;public void&lt;/jk&gt; test() &lt;jk&gt;throws&lt;/jk&gt; Exception {<a name="line.76"></a>
-<span class="sourceLineNo">077</span> *       JsonSerializer s = &lt;jk&gt;new&lt;/jk&gt; JsonSerializerBuilder().simple().pojoSwaps(Surrogate.&lt;jk&gt;class&lt;/jk&gt;).build();<a name="line.77"></a>
-<span class="sourceLineNo">078</span> *       JsonParser p = &lt;jk&gt;new&lt;/jk&gt; JsonParserBuilder().pojoSwaps(Surrogate.&lt;jk&gt;class&lt;/jk&gt;).build();<a name="line.78"></a>
-<span class="sourceLineNo">079</span> *       String r;<a name="line.79"></a>
-<span class="sourceLineNo">080</span> *       Normal n = Normal.&lt;jsm&gt;create&lt;/jsm&gt;();<a name="line.80"></a>
-<span class="sourceLineNo">081</span> *<a name="line.81"></a>
-<span class="sourceLineNo">082</span> *       r = s.serialize(n);<a name="line.82"></a>
-<span class="sourceLineNo">083</span> *       assertEquals(&lt;js&gt;"{f2:'f1'}"&lt;/js&gt;, r);<a name="line.83"></a>
-<span class="sourceLineNo">084</span> *<a name="line.84"></a>
-<span class="sourceLineNo">085</span> *       n = p.parse(r, Normal.&lt;jk&gt;class&lt;/jk&gt;);<a name="line.85"></a>
-<span class="sourceLineNo">086</span> *       assertEquals(&lt;js&gt;"f1"&lt;/js&gt;, n.f1);<a name="line.86"></a>
-<span class="sourceLineNo">087</span> *    }<a name="line.87"></a>
-<span class="sourceLineNo">088</span> *<a name="line.88"></a>
-<span class="sourceLineNo">089</span> *    &lt;jc&gt;// The normal class&lt;/jc&gt;<a name="line.89"></a>
-<span class="sourceLineNo">090</span> *    &lt;jk&gt;public class&lt;/jk&gt; Normal {<a name="line.90"></a>
-<span class="sourceLineNo">091</span> *       &lt;jk&gt;public&lt;/jk&gt; String f1;<a name="line.91"></a>
-<span class="sourceLineNo">092</span> *<a name="line.92"></a>
-<span class="sourceLineNo">093</span> *       &lt;jk&gt;public static&lt;/jk&gt; Normal &lt;jsm&gt;create&lt;/jsm&gt;() {<a name="line.93"></a>
-<span class="sourceLineNo">094</span> *          Normal n = &lt;jk&gt;new&lt;/jk&gt; Normal();<a name="line.94"></a>
-<span class="sourceLineNo">095</span> *          n.f1 = &lt;js&gt;"f1"&lt;/js&gt;;<a name="line.95"></a>
-<span class="sourceLineNo">096</span> *          &lt;jk&gt;return&lt;/jk&gt; n;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> *       }<a name="line.97"></a>
-<span class="sourceLineNo">098</span> *    }<a name="line.98"></a>
-<span class="sourceLineNo">099</span> *<a name="line.99"></a>
-<span class="sourceLineNo">100</span> *    &lt;jc&gt;// The surrogate class&lt;/jc&gt;<a name="line.100"></a>
-<span class="sourceLineNo">101</span> *    &lt;jk&gt;public static class&lt;/jk&gt; Surrogate {<a name="line.101"></a>
-<span class="sourceLineNo">102</span> *       &lt;jk&gt;public&lt;/jk&gt; String f2;<a name="line.102"></a>
-<span class="sourceLineNo">103</span> *<a name="line.103"></a>
-<span class="sourceLineNo">104</span> *       &lt;jc&gt;// Surrogate constructor&lt;/jc&gt;<a name="line.104"></a>
-<span class="sourceLineNo">105</span> *       &lt;jk&gt;public&lt;/jk&gt; Surrogate(Normal n) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span> *          f2 = n.f1;<a name="line.106"></a>
-<span class="sourceLineNo">107</span> *       }<a name="line.107"></a>
-<span class="sourceLineNo">108</span> *<a name="line.108"></a>
-<span class="sourceLineNo">109</span> *       &lt;jc&gt;// Constructor used during parsing (only needed if un-transform method specified)&lt;/jc&gt;<a name="line.109"></a>
-<span class="sourceLineNo">110</span> *       &lt;jk&gt;public&lt;/jk&gt; Surrogate() {}<a name="line.110"></a>
-<span class="sourceLineNo">111</span> *<a name="line.111"></a>
-<span class="sourceLineNo">112</span> *       &lt;jc&gt;// Un-transform method (optional)&lt;/jc&gt;<a name="line.112"></a>
-<span class="sourceLineNo">113</span> *       &lt;jk&gt;public static&lt;/jk&gt; Normal &lt;jsm&gt;toNormal&lt;/jsm&gt;(Surrogate f) {<a name="line.113"></a>
-<span class="sourceLineNo">114</span> *          Normal n = &lt;jk&gt;new&lt;/jk&gt; Normal();<a name="line.114"></a>
-<span class="sourceLineNo">115</span> *          n.f1 = f.f2;<a name="line.115"></a>
-<span class="sourceLineNo">116</span> *          &lt;jk&gt;return&lt;/jk&gt; n;<a name="line.116"></a>
-<span class="sourceLineNo">117</span> *       }<a name="line.117"></a>
-<span class="sourceLineNo">118</span> *    }<a name="line.118"></a>
-<span class="sourceLineNo">119</span> * &lt;/p&gt;<a name="line.119"></a>
-<span class="sourceLineNo">120</span> *<a name="line.120"></a>
-<span class="sourceLineNo">121</span> * &lt;p&gt;<a name="line.121"></a>
-<span class="sourceLineNo">122</span> * It should be noted that a surrogate class is functionally equivalent to the following {@link PojoSwap}<a name="line.122"></a>
-<span class="sourceLineNo">123</span> * implementation:<a name="line.123"></a>
-<span class="sourceLineNo">124</span> * &lt;p class='bcode'&gt;<a name="line.124"></a>
-<span class="sourceLineNo">125</span> *    &lt;jk&gt;public static class&lt;/jk&gt; SurrogateSwap &lt;jk&gt;extends&lt;/jk&gt; PojoSwap&amp;lt;Normal,Surrogate&amp;gt; {<a name="line.125"></a>
-<span class="sourceLineNo">126</span> *       &lt;jk&gt;public&lt;/jk&gt; Surrogate swap(Normal n) &lt;jk&gt;throws&lt;/jk&gt; SerializeException {<a name="line.126"></a>
-<span class="sourceLineNo">127</span> *          &lt;jk&gt;return new&lt;/jk&gt; Surrogate(n);<a name="line.127"></a>
-<span class="sourceLineNo">128</span> *       }<a name="line.128"></a>
-<span class="sourceLineNo">129</span> *       &lt;jk&gt;public&lt;/jk&gt; Normal unswap(Surrogate s, ClassMeta&amp;lt;?&amp;gt; hint) &lt;jk&gt;throws&lt;/jk&gt; ParseException {<a name="line.129"></a>
-<span class="sourceLineNo">130</span> *          &lt;jk&gt;return&lt;/jk&gt; Surrogate.&lt;jsm&gt;toNormal&lt;/jsm&gt;(s);<a name="line.130"></a>
-<span class="sourceLineNo">131</span> *       }<a name="line.131"></a>
-<span class="sourceLineNo">132</span> *    }<a name="line.132"></a>
-<span class="sourceLineNo">133</span> * &lt;/p&gt;<a name="line.133"></a>
-<span class="sourceLineNo">134</span> *<a name="line.134"></a>
-<span class="sourceLineNo">135</span> * @param &lt;T&gt; The class type that this transform applies to.<a name="line.135"></a>
-<span class="sourceLineNo">136</span> * @param &lt;F&gt; The transformed class type.<a name="line.136"></a>
-<span class="sourceLineNo">137</span> */<a name="line.137"></a>
-<span class="sourceLineNo">138</span>public class SurrogateSwap&lt;T,F&gt; extends PojoSwap&lt;T,F&gt; {<a name="line.138"></a>
-<span class="sourceLineNo">139</span><a name="line.139"></a>
-<span class="sourceLineNo">140</span>   private Constructor&lt;F&gt; constructor;   // public F(T t);<a name="line.140"></a>
-<span class="sourceLineNo">141</span>   private Method untransformMethod;        // public static T valueOf(F f);<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span>   /**<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    * Constructor.<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    *<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    * @param forClass The normal class.<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    * @param constructor The constructor on the surrogate class that takes the normal class as a parameter.<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    * @param untransformMethod The static method that converts surrogate objects into normal objects.<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    */<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   protected SurrogateSwap(Class&lt;T&gt; forClass, Constructor&lt;F&gt; constructor, Method untransformMethod) {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      super(forClass, constructor.getDeclaringClass());<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      this.constructor = constructor;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      this.untransformMethod = untransformMethod;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   }<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>   /**<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    * Given the specified surrogate class, return the list of POJO swaps.<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    *<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    * &lt;p&gt;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    * A transform is returned for each public 1-arg constructor found.<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    * Returns an empty list if no public 1-arg constructors are found.<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    *<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    * @param c The surrogate class.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    * @return The list of POJO swaps that apply to this class.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    */<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   @SuppressWarnings({"unchecked", "rawtypes"})<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   public static List&lt;SurrogateSwap&lt;?,?&gt;&gt; findPojoSwaps(Class&lt;?&gt; c) {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      List&lt;SurrogateSwap&lt;?,?&gt;&gt; l = new LinkedList&lt;SurrogateSwap&lt;?,?&gt;&gt;();<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      for (Constructor&lt;?&gt; cc : c.getConstructors()) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>         if (cc.getAnnotation(BeanIgnore.class) == null) {<a name="line.170"></a>
-<span class="sourceLineNo">171</span>            Class&lt;?&gt;[] pt = cc.getParameterTypes();<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>            // Only constructors with one parameter.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>            // Ignore instance class constructors.<a name="line.174"></a>
-<span class="sourceLineNo">175</span>            if (pt.length == 1 &amp;&amp; pt[0] != c.getDeclaringClass()) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>               int mod = cc.getModifiers();<a name="line.176"></a>
-<span class="sourceLineNo">177</span>               if (Modifier.isPublic(mod)) {  // Only public constructors.<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>                  // Find the unswap method if there is one.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>                  Method unswapMethod = null;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>                  for (Method m : c.getMethods()) {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>                     if (pt[0].equals(m.getReturnType())) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>                        Class&lt;?&gt;[] mpt = m.getParameterTypes();<a name="line.183"></a>
-<span class="sourceLineNo">184</span>                        if (mpt.length == 1 &amp;&amp; mpt[0].equals(c)) { // Only methods with one parameter and where the return type matches this class.<a name="line.184"></a>
-<span class="sourceLineNo">185</span>                           int mod2 = m.getModifiers();<a name="line.185"></a>
-<span class="sourceLineNo">186</span>                           if (Modifier.isPublic(mod2) &amp;&amp; Modifier.isStatic(mod2))  // Only public static methods.<a name="line.186"></a>
-<span class="sourceLineNo">187</span>                              unswapMethod = m;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>                        }<a name="line.188"></a>
-<span class="sourceLineNo">189</span>                     }<a name="line.189"></a>
-<span class="sourceLineNo">190</span>                  }<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>                  l.add(new SurrogateSwap(pt[0], cc, unswapMethod));<a name="line.192"></a>
-<span class="sourceLineNo">193</span>               }<a name="line.193"></a>
-<span class="sourceLineNo">194</span>            }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>         }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      return l;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   }<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>   @Override /* PojoSwap */<a name="line.200"></a>
-<span class="sourceLineNo">201</span>   public F swap(BeanSession session, T o) throws SerializeException {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      try {<a name="line.202"></a>
-<span class="sourceLineNo">203</span>         return constructor.newInstance(o);<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      } catch (Exception e) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>         throw new SerializeException(e);<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      }<a name="line.206"></a>
-<span class="sourceLineNo">207</span>   }<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>   @Override /* PojoSwap */<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   @SuppressWarnings("unchecked")<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   public T unswap(BeanSession session, F f, ClassMeta&lt;?&gt; hint) throws ParseException {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      if (untransformMethod == null)<a name="line.212"></a>
-<span class="sourceLineNo">213</span>         throw new ParseException("static valueOf({0}) method not implement on surrogate class ''{1}''",<a name="line.213"></a>
-<span class="sourceLineNo">214</span>            f.getClass().getName(), getNormalClass().getName());<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      try {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>         return (T)untransformMethod.invoke(null, f);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      } catch (Exception e) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>         throw new ParseException(e);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      }<a name="line.219"></a>
-<span class="sourceLineNo">220</span>   }<a name="line.220"></a>
-<span class="sourceLineNo">221</span>}<a name="line.221"></a>
+<span class="sourceLineNo">026</span> * @param &lt;T&gt; The class type that this transform applies to.<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * @param &lt;F&gt; The transformed class type.<a name="line.27"></a>
+<span class="sourceLineNo">028</span> */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>public class SurrogateSwap&lt;T,F&gt; extends PojoSwap&lt;T,F&gt; {<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>   private Constructor&lt;F&gt; constructor;   // public F(T t);<a name="line.31"></a>
+<span class="sourceLineNo">032</span>   private Method untransformMethod;        // public static T valueOf(F f);<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>   /**<a name="line.34"></a>
+<span class="sourceLineNo">035</span>    * Constructor.<a name="line.35"></a>
+<span class="sourceLineNo">036</span>    *<a name="line.36"></a>
+<span class="sourceLineNo">037</span>    * @param forClass The normal class.<a name="line.37"></a>
+<span class="sourceLineNo">038</span>    * @param constructor The constructor on the surrogate class that takes the normal class as a parameter.<a name="line.38"></a>
+<span class="sourceLineNo">039</span>    * @param untransformMethod The static method that converts surrogate objects into normal objects.<a name="line.39"></a>
+<span class="sourceLineNo">040</span>    */<a name="line.40"></a>
+<span class="sourceLineNo">041</span>   protected SurrogateSwap(Class&lt;T&gt; forClass, Constructor&lt;F&gt; constructor, Method untransformMethod) {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>      super(forClass, constructor.getDeclaringClass());<a name="line.42"></a>
+<span class="sourceLineNo">043</span>      this.constructor = constructor;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>      this.untransformMethod = untransformMethod;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>   }<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>   /**<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    * Given the specified surrogate class, return the list of POJO swaps.<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    *<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    * &lt;p&gt;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    * A transform is returned for each public 1-arg constructor found.<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    * Returns an empty list if no public 1-arg constructors are found.<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    *<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    * @param c The surrogate class.<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    * @return The list of POJO swaps that apply to this class.<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   @SuppressWarnings({"unchecked", "rawtypes"})<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   public static List&lt;SurrogateSwap&lt;?,?&gt;&gt; findPojoSwaps(Class&lt;?&gt; c) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>      List&lt;SurrogateSwap&lt;?,?&gt;&gt; l = new LinkedList&lt;SurrogateSwap&lt;?,?&gt;&gt;();<a name="line.59"></a>
+<span class="sourceLineNo">060</span>      for (Constructor&lt;?&gt; cc : c.getConstructors()) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         if (cc.getAnnotation(BeanIgnore.class) == null) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>            Class&lt;?&gt;[] pt = cc.getParameterTypes();<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>            // Only constructors with one parameter.<a name="line.64"></a>
+<span class="sourceLineNo">065</span>            // Ignore instance class constructors.<a name="line.65"></a>
+<span class="sourceLineNo">066</span>            if (pt.length == 1 &amp;&amp; pt[0] != c.getDeclaringClass()) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>               int mod = cc.getModifiers();<a name="line.67"></a>
+<span class="sourceLineNo">068</span>               if (Modifier.isPublic(mod)) {  // Only public constructors.<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>                  // Find the unswap method if there is one.<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                  Method unswapMethod = null;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                  for (Method m : c.getMethods()) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                     if (pt[0].equals(m.getReturnType())) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        Class&lt;?&gt;[] mpt = m.getParameterTypes();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        if (mpt.length == 1 &amp;&amp; mpt[0].equals(c)) { // Only methods with one parameter and where the return type matches this class.<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                           int mod2 = m.getModifiers();<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                           if (Modifier.isPublic(mod2) &amp;&amp; Modifier.isStatic(mod2))  // Only public static methods.<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                              unswapMethod = m;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                     }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                  }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>                  l.add(new SurrogateSwap(pt[0], cc, unswapMethod));<a name="line.83"></a>
+<span class="sourceLineNo">084</span>               }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>            }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         }<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      }<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      return l;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>   @Override /* PojoSwap */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>   public F swap(BeanSession session, T o) throws SerializeException {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      try {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>         return constructor.newInstance(o);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      } catch (Exception e) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>         throw new SerializeException(e);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      }<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>   @Override /* PojoSwap */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   @SuppressWarnings("unchecked")<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   public T unswap(BeanSession session, F f, ClassMeta&lt;?&gt; hint) throws ParseException {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      if (untransformMethod == null)<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         throw new ParseException("static valueOf({0}) method not implement on surrogate class ''{1}''",<a name="line.104"></a>
+<span class="sourceLineNo">105</span>            f.getClass().getName(), getNormalClass().getName());<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      try {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         return (T)untransformMethod.invoke(null, f);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      } catch (Exception e) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         throw new ParseException(e);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>}<a name="line.112"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/transforms/ByteArrayBase64Swap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/transforms/ByteArrayBase64Swap.html b/content/site/apidocs/src-html/org/apache/juneau/transforms/ByteArrayBase64Swap.html
index 7244245..53db4c3 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/transforms/ByteArrayBase64Swap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/transforms/ByteArrayBase64Swap.html
@@ -23,39 +23,29 @@
 <span class="sourceLineNo">015</span>import static org.apache.juneau.internal.StringUtils.*;<a name="line.15"></a>
 <span class="sourceLineNo">016</span><a name="line.16"></a>
 <span class="sourceLineNo">017</span>import org.apache.juneau.*;<a name="line.17"></a>
-<span class="sourceLineNo">018</span>import org.apache.juneau.parser.*;<a name="line.18"></a>
-<span class="sourceLineNo">019</span>import org.apache.juneau.serializer.*;<a name="line.19"></a>
-<span class="sourceLineNo">020</span>import org.apache.juneau.transform.*;<a name="line.20"></a>
-<span class="sourceLineNo">021</span><a name="line.21"></a>
-<span class="sourceLineNo">022</span>/**<a name="line.22"></a>
-<span class="sourceLineNo">023</span> * Transforms &lt;code&gt;&lt;jk&gt;byte&lt;/jk&gt;[]&lt;/code&gt; arrays to BASE-64 encoded {@link String Strings}.<a name="line.23"></a>
-<span class="sourceLineNo">024</span> */<a name="line.24"></a>
-<span class="sourceLineNo">025</span>public class ByteArrayBase64Swap extends StringSwap&lt;byte[]&gt; {<a name="line.25"></a>
-<span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>   /**<a name="line.27"></a>
-<span class="sourceLineNo">028</span>    * Converts the specified &lt;code&gt;&lt;jk&gt;byte&lt;/jk&gt;[]&lt;/code&gt; to a {@link String}.<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    */<a name="line.29"></a>
-<span class="sourceLineNo">030</span>   @Override /* PojoSwap */<a name="line.30"></a>
-<span class="sourceLineNo">031</span>   public String swap(BeanSession session, byte[] b) throws SerializeException {<a name="line.31"></a>
-<span class="sourceLineNo">032</span>      try {<a name="line.32"></a>
-<span class="sourceLineNo">033</span>         return base64Encode(b);<a name="line.33"></a>
-<span class="sourceLineNo">034</span>      } catch (Exception e) {<a name="line.34"></a>
-<span class="sourceLineNo">035</span>         throw new SerializeException(e);<a name="line.35"></a>
-<span class="sourceLineNo">036</span>      }<a name="line.36"></a>
-<span class="sourceLineNo">037</span>   }<a name="line.37"></a>
-<span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span>   /**<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    * Converts the specified {@link String} to a &lt;code&gt;&lt;jk&gt;byte&lt;/jk&gt;[]&lt;/code&gt;.<a name="line.40"></a>
-<span class="sourceLineNo">041</span>    */<a name="line.41"></a>
-<span class="sourceLineNo">042</span>   @Override /* PojoSwap */<a name="line.42"></a>
-<span class="sourceLineNo">043</span>   public byte[] unswap(BeanSession session, String s, ClassMeta&lt;?&gt; hint) throws ParseException {<a name="line.43"></a>
-<span class="sourceLineNo">044</span>      try {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>         return base64Decode(s);<a name="line.45"></a>
-<span class="sourceLineNo">046</span>      } catch (Exception e) {<a name="line.46"></a>
-<span class="sourceLineNo">047</span>         throw new ParseException(e);<a name="line.47"></a>
-<span class="sourceLineNo">048</span>      }<a name="line.48"></a>
-<span class="sourceLineNo">049</span>   }<a name="line.49"></a>
-<span class="sourceLineNo">050</span>}<a name="line.50"></a>
+<span class="sourceLineNo">018</span>import org.apache.juneau.transform.*;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>/**<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * Transforms &lt;code&gt;&lt;jk&gt;byte&lt;/jk&gt;[]&lt;/code&gt; arrays to BASE-64 encoded {@link String Strings}.<a name="line.21"></a>
+<span class="sourceLineNo">022</span> */<a name="line.22"></a>
+<span class="sourceLineNo">023</span>public class ByteArrayBase64Swap extends StringSwap&lt;byte[]&gt; {<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>   /**<a name="line.25"></a>
+<span class="sourceLineNo">026</span>    * Converts the specified &lt;code&gt;&lt;jk&gt;byte&lt;/jk&gt;[]&lt;/code&gt; to a {@link String}.<a name="line.26"></a>
+<span class="sourceLineNo">027</span>    */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>   @Override /* PojoSwap */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>   public String swap(BeanSession session, byte[] b) throws Exception {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>      return base64Encode(b);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>   }<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>   /**<a name="line.33"></a>
+<span class="sourceLineNo">034</span>    * Converts the specified {@link String} to a &lt;code&gt;&lt;jk&gt;byte&lt;/jk&gt;[]&lt;/code&gt;.<a name="line.34"></a>
+<span class="sourceLineNo">035</span>    */<a name="line.35"></a>
+<span class="sourceLineNo">036</span>   @Override /* PojoSwap */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>   public byte[] unswap(BeanSession session, String s, ClassMeta&lt;?&gt; hint) throws Exception {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>      return base64Decode(s);<a name="line.38"></a>
+<span class="sourceLineNo">039</span>   }<a name="line.39"></a>
+<span class="sourceLineNo">040</span>}<a name="line.40"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/transforms/CalendarLongSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/transforms/CalendarLongSwap.html b/content/site/apidocs/src-html/org/apache/juneau/transforms/CalendarLongSwap.html
index 4ea6d99..ad2de9a 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/transforms/CalendarLongSwap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/transforms/CalendarLongSwap.html
@@ -23,41 +23,36 @@
 <span class="sourceLineNo">015</span>import java.util.*;<a name="line.15"></a>
 <span class="sourceLineNo">016</span><a name="line.16"></a>
 <span class="sourceLineNo">017</span>import org.apache.juneau.*;<a name="line.17"></a>
-<span class="sourceLineNo">018</span>import org.apache.juneau.parser.*;<a name="line.18"></a>
-<span class="sourceLineNo">019</span>import org.apache.juneau.transform.*;<a name="line.19"></a>
-<span class="sourceLineNo">020</span><a name="line.20"></a>
-<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
-<span class="sourceLineNo">022</span> * Transforms {@link Calendar Calendars} to {@link Long Longs} using {@code Calender.getTime().getTime()}.<a name="line.22"></a>
-<span class="sourceLineNo">023</span> */<a name="line.23"></a>
-<span class="sourceLineNo">024</span>public class CalendarLongSwap extends PojoSwap&lt;Calendar,Long&gt; {<a name="line.24"></a>
-<span class="sourceLineNo">025</span><a name="line.25"></a>
-<span class="sourceLineNo">026</span>   /**<a name="line.26"></a>
-<span class="sourceLineNo">027</span>    * Converts the specified {@link Calendar} to a {@link Long}.<a name="line.27"></a>
-<span class="sourceLineNo">028</span>    */<a name="line.28"></a>
-<span class="sourceLineNo">029</span>   @Override /* PojoSwap */<a name="line.29"></a>
-<span class="sourceLineNo">030</span>   public Long swap(BeanSession session, Calendar o) {<a name="line.30"></a>
-<span class="sourceLineNo">031</span>      return o.getTime().getTime();<a name="line.31"></a>
-<span class="sourceLineNo">032</span>   }<a name="line.32"></a>
-<span class="sourceLineNo">033</span><a name="line.33"></a>
-<span class="sourceLineNo">034</span>   /**<a name="line.34"></a>
-<span class="sourceLineNo">035</span>    * Converts the specified {@link Long} to a {@link Calendar}.<a name="line.35"></a>
-<span class="sourceLineNo">036</span>    */<a name="line.36"></a>
-<span class="sourceLineNo">037</span>   @Override /* PojoSwap */<a name="line.37"></a>
-<span class="sourceLineNo">038</span>   @SuppressWarnings("unchecked")<a name="line.38"></a>
-<span class="sourceLineNo">039</span>   public Calendar unswap(BeanSession session, Long o, ClassMeta&lt;?&gt; hint) throws ParseException {<a name="line.39"></a>
-<span class="sourceLineNo">040</span>      ClassMeta&lt;? extends Calendar&gt; tt;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>      try {<a name="line.41"></a>
-<span class="sourceLineNo">042</span>         if (hint == null || ! hint.canCreateNewInstance())<a name="line.42"></a>
-<span class="sourceLineNo">043</span>            hint = session.getClassMeta(GregorianCalendar.class);<a name="line.43"></a>
-<span class="sourceLineNo">044</span>         tt = (ClassMeta&lt;? extends Calendar&gt;)hint;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>         Calendar c = tt.newInstance();<a name="line.45"></a>
-<span class="sourceLineNo">046</span>         c.setTimeInMillis(o);<a name="line.46"></a>
-<span class="sourceLineNo">047</span>         return c;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>      } catch (Exception e) {<a name="line.48"></a>
-<span class="sourceLineNo">049</span>         throw new ParseException(e);<a name="line.49"></a>
-<span class="sourceLineNo">050</span>      }<a name="line.50"></a>
-<span class="sourceLineNo">051</span>   }<a name="line.51"></a>
-<span class="sourceLineNo">052</span>}<a name="line.52"></a>
+<span class="sourceLineNo">018</span>import org.apache.juneau.transform.*;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>/**<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * Transforms {@link Calendar Calendars} to {@link Long Longs} using {@code Calender.getTime().getTime()}.<a name="line.21"></a>
+<span class="sourceLineNo">022</span> */<a name="line.22"></a>
+<span class="sourceLineNo">023</span>public class CalendarLongSwap extends PojoSwap&lt;Calendar,Long&gt; {<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>   /**<a name="line.25"></a>
+<span class="sourceLineNo">026</span>    * Converts the specified {@link Calendar} to a {@link Long}.<a name="line.26"></a>
+<span class="sourceLineNo">027</span>    */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>   @Override /* PojoSwap */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>   public Long swap(BeanSession session, Calendar o) {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>      return o.getTime().getTime();<a name="line.30"></a>
+<span class="sourceLineNo">031</span>   }<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>   /**<a name="line.33"></a>
+<span class="sourceLineNo">034</span>    * Converts the specified {@link Long} to a {@link Calendar}.<a name="line.34"></a>
+<span class="sourceLineNo">035</span>    */<a name="line.35"></a>
+<span class="sourceLineNo">036</span>   @Override /* PojoSwap */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>   @SuppressWarnings("unchecked")<a name="line.37"></a>
+<span class="sourceLineNo">038</span>   public Calendar unswap(BeanSession session, Long o, ClassMeta&lt;?&gt; hint) throws Exception {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>      ClassMeta&lt;? extends Calendar&gt; tt;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>      if (hint == null || ! hint.canCreateNewInstance())<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         hint = session.getClassMeta(GregorianCalendar.class);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>      tt = (ClassMeta&lt;? extends Calendar&gt;)hint;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>      Calendar c = tt.newInstance();<a name="line.43"></a>
+<span class="sourceLineNo">044</span>      c.setTimeInMillis(o);<a name="line.44"></a>
+<span class="sourceLineNo">045</span>      return c;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>   }<a name="line.46"></a>
+<span class="sourceLineNo">047</span>}<a name="line.47"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/transforms/CalendarMapSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/transforms/CalendarMapSwap.html b/content/site/apidocs/src-html/org/apache/juneau/transforms/CalendarMapSwap.html
index c9c8ddb..3d90d80 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/transforms/CalendarMapSwap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/transforms/CalendarMapSwap.html
@@ -23,49 +23,44 @@
 <span class="sourceLineNo">015</span>import java.util.*;<a name="line.15"></a>
 <span class="sourceLineNo">016</span><a name="line.16"></a>
 <span class="sourceLineNo">017</span>import org.apache.juneau.*;<a name="line.17"></a>
-<span class="sourceLineNo">018</span>import org.apache.juneau.parser.*;<a name="line.18"></a>
-<span class="sourceLineNo">019</span>import org.apache.juneau.transform.*;<a name="line.19"></a>
-<span class="sourceLineNo">020</span><a name="line.20"></a>
-<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
-<span class="sourceLineNo">022</span> * Transforms {@link Calendar Calendars} to {@link Map Maps} of the format &lt;code&gt;{time:long,timeZone:string}&lt;/code&gt;.<a name="line.22"></a>
-<span class="sourceLineNo">023</span> */<a name="line.23"></a>
-<span class="sourceLineNo">024</span>@SuppressWarnings("rawtypes")<a name="line.24"></a>
-<span class="sourceLineNo">025</span>public class CalendarMapSwap extends PojoSwap&lt;Calendar,Map&gt; {<a name="line.25"></a>
-<span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>   /**<a name="line.27"></a>
-<span class="sourceLineNo">028</span>    * Converts the specified {@link Calendar} to a {@link Map}.<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    */<a name="line.29"></a>
-<span class="sourceLineNo">030</span>   @Override /* PojoSwap */<a name="line.30"></a>
-<span class="sourceLineNo">031</span>   public Map swap(BeanSession session, Calendar o) {<a name="line.31"></a>
-<span class="sourceLineNo">032</span>      ObjectMap m = new ObjectMap();<a name="line.32"></a>
-<span class="sourceLineNo">033</span>      m.put("time", o.getTime().getTime());<a name="line.33"></a>
-<span class="sourceLineNo">034</span>      m.put("timeZone", o.getTimeZone().getID());<a name="line.34"></a>
-<span class="sourceLineNo">035</span>      return m;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>   }<a name="line.36"></a>
-<span class="sourceLineNo">037</span><a name="line.37"></a>
-<span class="sourceLineNo">038</span>   /**<a name="line.38"></a>
-<span class="sourceLineNo">039</span>    * Converts the specified {@link Map} to a {@link Calendar}.<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    */<a name="line.40"></a>
-<span class="sourceLineNo">041</span>   @Override /* PojoSwap */<a name="line.41"></a>
-<span class="sourceLineNo">042</span>   @SuppressWarnings("unchecked")<a name="line.42"></a>
-<span class="sourceLineNo">043</span>   public Calendar unswap(BeanSession session, Map o, ClassMeta&lt;?&gt; hint) throws ParseException {<a name="line.43"></a>
-<span class="sourceLineNo">044</span>      ClassMeta&lt;? extends Calendar&gt; tt;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>      try {<a name="line.45"></a>
-<span class="sourceLineNo">046</span>         if (hint == null || ! hint.canCreateNewInstance())<a name="line.46"></a>
-<span class="sourceLineNo">047</span>            hint = session.getClassMeta(GregorianCalendar.class);<a name="line.47"></a>
-<span class="sourceLineNo">048</span>         tt = (ClassMeta&lt;? extends Calendar&gt;)hint;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>         long time = Long.parseLong(o.get("time").toString());<a name="line.49"></a>
-<span class="sourceLineNo">050</span>         String timeZone = o.get("timeZone").toString();<a name="line.50"></a>
-<span class="sourceLineNo">051</span>         Date d = new Date(time);<a name="line.51"></a>
-<span class="sourceLineNo">052</span>         Calendar c = tt.newInstance();<a name="line.52"></a>
-<span class="sourceLineNo">053</span>         c.setTime(d);<a name="line.53"></a>
-<span class="sourceLineNo">054</span>         c.setTimeZone(TimeZone.getTimeZone(timeZone));<a name="line.54"></a>
-<span class="sourceLineNo">055</span>         return c;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>      } catch (Exception e) {<a name="line.56"></a>
-<span class="sourceLineNo">057</span>         throw new ParseException(e);<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      }<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   }<a name="line.59"></a>
-<span class="sourceLineNo">060</span>}<a name="line.60"></a>
+<span class="sourceLineNo">018</span>import org.apache.juneau.transform.*;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>/**<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * Transforms {@link Calendar Calendars} to {@link Map Maps} of the format &lt;code&gt;{time:long,timeZone:string}&lt;/code&gt;.<a name="line.21"></a>
+<span class="sourceLineNo">022</span> */<a name="line.22"></a>
+<span class="sourceLineNo">023</span>@SuppressWarnings("rawtypes")<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public class CalendarMapSwap extends PojoSwap&lt;Calendar,Map&gt; {<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>   /**<a name="line.26"></a>
+<span class="sourceLineNo">027</span>    * Converts the specified {@link Calendar} to a {@link Map}.<a name="line.27"></a>
+<span class="sourceLineNo">028</span>    */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>   @Override /* PojoSwap */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>   public Map swap(BeanSession session, Calendar o) {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>      ObjectMap m = new ObjectMap();<a name="line.31"></a>
+<span class="sourceLineNo">032</span>      m.put("time", o.getTime().getTime());<a name="line.32"></a>
+<span class="sourceLineNo">033</span>      m.put("timeZone", o.getTimeZone().getID());<a name="line.33"></a>
+<span class="sourceLineNo">034</span>      return m;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>   }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>   /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>    * Converts the specified {@link Map} to a {@link Calendar}.<a name="line.38"></a>
+<span class="sourceLineNo">039</span>    */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>   @Override /* PojoSwap */<a name="line.40"></a>
+<span class="sourceLineNo">041</span>   @SuppressWarnings("unchecked")<a name="line.41"></a>
+<span class="sourceLineNo">042</span>   public Calendar unswap(BeanSession session, Map o, ClassMeta&lt;?&gt; hint) throws Exception {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>      ClassMeta&lt;? extends Calendar&gt; tt;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>      if (hint == null || ! hint.canCreateNewInstance())<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         hint = session.getClassMeta(GregorianCalendar.class);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>      tt = (ClassMeta&lt;? extends Calendar&gt;)hint;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>      long time = Long.parseLong(o.get("time").toString());<a name="line.47"></a>
+<span class="sourceLineNo">048</span>      String timeZone = o.get("timeZone").toString();<a name="line.48"></a>
+<span class="sourceLineNo">049</span>      Date d = new Date(time);<a name="line.49"></a>
+<span class="sourceLineNo">050</span>      Calendar c = tt.newInstance();<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      c.setTime(d);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      c.setTimeZone(TimeZone.getTimeZone(timeZone));<a name="line.52"></a>
+<span class="sourceLineNo">053</span>      return c;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   }<a name="line.54"></a>
+<span class="sourceLineNo">055</span>}<a name="line.55"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/transforms/DateLongSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/transforms/DateLongSwap.html b/content/site/apidocs/src-html/org/apache/juneau/transforms/DateLongSwap.html
index daa5e1f..9bea08c 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/transforms/DateLongSwap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/transforms/DateLongSwap.html
@@ -45,7 +45,7 @@
 <span class="sourceLineNo">037</span>    * Converts the specified {@link Long} to a {@link Date}.<a name="line.37"></a>
 <span class="sourceLineNo">038</span>    */<a name="line.38"></a>
 <span class="sourceLineNo">039</span>   @Override /* PojoSwap */<a name="line.39"></a>
-<span class="sourceLineNo">040</span>   public Date unswap(BeanSession session, Long o, ClassMeta&lt;?&gt; hint) throws ParseException {<a name="line.40"></a>
+<span class="sourceLineNo">040</span>   public Date unswap(BeanSession session, Long o, ClassMeta&lt;?&gt; hint) throws Exception {<a name="line.40"></a>
 <span class="sourceLineNo">041</span>      Class&lt;?&gt; c = (hint == null ? java.util.Date.class : hint.getInnerClass());<a name="line.41"></a>
 <span class="sourceLineNo">042</span>      if (c == java.util.Date.class)<a name="line.42"></a>
 <span class="sourceLineNo">043</span>         return new java.util.Date(o);<a name="line.43"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/transforms/DateMapSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/transforms/DateMapSwap.html b/content/site/apidocs/src-html/org/apache/juneau/transforms/DateMapSwap.html
index ddc5cef..47a6d01 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/transforms/DateMapSwap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/transforms/DateMapSwap.html
@@ -48,7 +48,7 @@
 <span class="sourceLineNo">040</span>    * Converts the specified {@link Map} to a {@link Date}.<a name="line.40"></a>
 <span class="sourceLineNo">041</span>    */<a name="line.41"></a>
 <span class="sourceLineNo">042</span>   @Override /* PojoSwap */<a name="line.42"></a>
-<span class="sourceLineNo">043</span>   public Date unswap(BeanSession session, Map o, ClassMeta&lt;?&gt; hint) throws ParseException {<a name="line.43"></a>
+<span class="sourceLineNo">043</span>   public Date unswap(BeanSession session, Map o, ClassMeta&lt;?&gt; hint) throws Exception {<a name="line.43"></a>
 <span class="sourceLineNo">044</span>      Class&lt;?&gt; c = (hint == null ? java.util.Date.class : hint.getInnerClass());<a name="line.44"></a>
 <span class="sourceLineNo">045</span>      long l = Long.parseLong(((Map&lt;?,?&gt;)o).get("time").toString());<a name="line.45"></a>
 <span class="sourceLineNo">046</span>      if (c == java.util.Date.class)<a name="line.46"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.Html.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.Html.html b/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.Html.html
index b0ee597..a58cf63 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.Html.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.Html.html
@@ -28,95 +28,87 @@
 <span class="sourceLineNo">020</span>import org.apache.juneau.html.*;<a name="line.20"></a>
 <span class="sourceLineNo">021</span>import org.apache.juneau.json.*;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import org.apache.juneau.parser.*;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.juneau.serializer.*;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.juneau.transform.*;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.juneau.xml.*;<a name="line.25"></a>
-<span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * Transforms the contents of a {@link Reader} into an {@code Object}.<a name="line.28"></a>
-<span class="sourceLineNo">029</span> *<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * &lt;h5 class='section'&gt;Description:&lt;/h5&gt;<a name="line.30"></a>
-<span class="sourceLineNo">031</span> *<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * The {@code Reader} must contain JSON, Juneau-generated XML (output from {@link XmlSerializer}), or Juneau-generated<a name="line.32"></a>
-<span class="sourceLineNo">033</span> * HTML (output from {@link JsonSerializer}) in order to be parsed correctly.<a name="line.33"></a>
-<span class="sourceLineNo">034</span> *<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * &lt;p&gt;<a name="line.35"></a>
-<span class="sourceLineNo">036</span> * Useful for serializing models that contain {@code Readers} created by {@code RestCall} instances.<a name="line.36"></a>
-<span class="sourceLineNo">037</span> *<a name="line.37"></a>
-<span class="sourceLineNo">038</span> * &lt;p&gt;<a name="line.38"></a>
-<span class="sourceLineNo">039</span> * This is a one-way transform, since {@code Readers} cannot be reconstituted.<a name="line.39"></a>
-<span class="sourceLineNo">040</span> *<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * &lt;h6 class='topic'&gt;Behavior-specific subclasses&lt;/h6&gt;<a name="line.41"></a>
-<span class="sourceLineNo">042</span> *<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * The following direct subclasses are provided for convenience:<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * &lt;ul&gt;<a name="line.44"></a>
-<span class="sourceLineNo">045</span> *    &lt;li&gt;{@link Json} - Parses JSON text.<a name="line.45"></a>
-<span class="sourceLineNo">046</span> *    &lt;li&gt;{@link Xml} - Parses XML text.<a name="line.46"></a>
-<span class="sourceLineNo">047</span> *    &lt;li&gt;{@link Html} - Parses HTML text.<a name="line.47"></a>
-<span class="sourceLineNo">048</span> *    &lt;li&gt;{@link PlainText} - Parses plain text.<a name="line.48"></a>
-<span class="sourceLineNo">049</span> * &lt;/ul&gt;<a name="line.49"></a>
-<span class="sourceLineNo">050</span> */<a name="line.50"></a>
-<span class="sourceLineNo">051</span>public class ReaderSwap extends PojoSwap&lt;Reader,Object&gt; {<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>   /** Reader transform for reading JSON text. */<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   public static class Json extends ReaderSwap {<a name="line.54"></a>
-<span class="sourceLineNo">055</span>      /** Constructor */<a name="line.55"></a>
-<span class="sourceLineNo">056</span>      public Json() {<a name="line.56"></a>
-<span class="sourceLineNo">057</span>         super(JsonParser.DEFAULT);<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      }<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   }<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>   /** Reader transform for reading XML text. */<a name="line.61"></a>
-<span class="sourceLineNo">062</span>   public static class Xml extends ReaderSwap {<a name="line.62"></a>
-<span class="sourceLineNo">063</span>      /** Constructor */<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      public Xml() {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>         super(XmlParser.DEFAULT);<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      }<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>   /** Reader transform for reading HTML text. */<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   public static class Html extends ReaderSwap {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>      /** Constructor */<a name="line.71"></a>
-<span class="sourceLineNo">072</span>      public Html() {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>         super(HtmlParser.DEFAULT);<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      }<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>   /** Reader transform for reading plain text. */<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   public static class PlainText extends ReaderSwap {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      /** Constructor */<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      public PlainText() {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>         super(null);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>   /** The parser to use to parse the contents of the Reader. */<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   private ReaderParser parser;<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>   /**<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    * @param parser The parser to use to convert the contents of the reader to Java objects.<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    */<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   public ReaderSwap(ReaderParser parser) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      this.parser = parser;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   }<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>   /**<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    * Converts the specified {@link Reader} to an {@link Object} whose type is determined by the contents of the reader.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   @Override /* PojoSwap */<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   public Object swap(BeanSession session, Reader o) throws SerializeException {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      try {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>         if (parser == null)<a name="line.101"></a>
-<span class="sourceLineNo">102</span>            return read(o);<a name="line.102"></a>
-<span class="sourceLineNo">103</span>         return parser.parse(o, Object.class);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      } catch (IOException e) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>         return e.getLocalizedMessage();<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      } catch (Exception e) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>         throw new SerializeException("ReaderSwap could not transform object of type ''{0}''",<a name="line.107"></a>
-<span class="sourceLineNo">108</span>            o == null ? null : o.getClass().getName()).initCause(e);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      }<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   }<a name="line.110"></a>
-<span class="sourceLineNo">111</span>}<a name="line.111"></a>
+<span class="sourceLineNo">023</span>import org.apache.juneau.transform.*;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.juneau.xml.*;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>/**<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Transforms the contents of a {@link Reader} into an {@code Object}.<a name="line.27"></a>
+<span class="sourceLineNo">028</span> *<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * &lt;h5 class='section'&gt;Description:&lt;/h5&gt;<a name="line.29"></a>
+<span class="sourceLineNo">030</span> *<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * The {@code Reader} must contain JSON, Juneau-generated XML (output from {@link XmlSerializer}), or Juneau-generated<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * HTML (output from {@link JsonSerializer}) in order to be parsed correctly.<a name="line.32"></a>
+<span class="sourceLineNo">033</span> *<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * &lt;p&gt;<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * Useful for serializing models that contain {@code Readers} created by {@code RestCall} instances.<a name="line.35"></a>
+<span class="sourceLineNo">036</span> *<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * &lt;p&gt;<a name="line.37"></a>
+<span class="sourceLineNo">038</span> * This is a one-way transform, since {@code Readers} cannot be reconstituted.<a name="line.38"></a>
+<span class="sourceLineNo">039</span> *<a name="line.39"></a>
+<span class="sourceLineNo">040</span> * &lt;h6 class='topic'&gt;Behavior-specific subclasses&lt;/h6&gt;<a name="line.40"></a>
+<span class="sourceLineNo">041</span> *<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * The following direct subclasses are provided for convenience:<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * &lt;ul&gt;<a name="line.43"></a>
+<span class="sourceLineNo">044</span> *    &lt;li&gt;{@link Json} - Parses JSON text.<a name="line.44"></a>
+<span class="sourceLineNo">045</span> *    &lt;li&gt;{@link Xml} - Parses XML text.<a name="line.45"></a>
+<span class="sourceLineNo">046</span> *    &lt;li&gt;{@link Html} - Parses HTML text.<a name="line.46"></a>
+<span class="sourceLineNo">047</span> *    &lt;li&gt;{@link PlainText} - Parses plain text.<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * &lt;/ul&gt;<a name="line.48"></a>
+<span class="sourceLineNo">049</span> */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>public class ReaderSwap extends PojoSwap&lt;Reader,Object&gt; {<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>   /** Reader transform for reading JSON text. */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>   public static class Json extends ReaderSwap {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      /** Constructor */<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      public Json() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         super(JsonParser.DEFAULT);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      }<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>   /** Reader transform for reading XML text. */<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   public static class Xml extends ReaderSwap {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>      /** Constructor */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      public Xml() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         super(XmlParser.DEFAULT);<a name="line.64"></a>
+<span class="sourceLineNo">065</span>      }<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>   /** Reader transform for reading HTML text. */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   public static class Html extends ReaderSwap {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      /** Constructor */<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      public Html() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         super(HtmlParser.DEFAULT);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>   /** Reader transform for reading plain text. */<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   public static class PlainText extends ReaderSwap {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      /** Constructor */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      public PlainText() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         super(null);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>   }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>   /** The parser to use to parse the contents of the Reader. */<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   private ReaderParser parser;<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>   /**<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    * @param parser The parser to use to convert the contents of the reader to Java objects.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   public ReaderSwap(ReaderParser parser) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      this.parser = parser;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>   }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>   /**<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    * Converts the specified {@link Reader} to an {@link Object} whose type is determined by the contents of the reader.<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    */<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   @Override /* PojoSwap */<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   public Object swap(BeanSession session, Reader o) throws Exception {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      if (parser == null)<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         return read(o);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      return parser.parse(o, Object.class);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>}<a name="line.103"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.Json.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.Json.html b/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.Json.html
index b0ee597..a58cf63 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.Json.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.Json.html
@@ -28,95 +28,87 @@
 <span class="sourceLineNo">020</span>import org.apache.juneau.html.*;<a name="line.20"></a>
 <span class="sourceLineNo">021</span>import org.apache.juneau.json.*;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import org.apache.juneau.parser.*;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.juneau.serializer.*;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.juneau.transform.*;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.juneau.xml.*;<a name="line.25"></a>
-<span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * Transforms the contents of a {@link Reader} into an {@code Object}.<a name="line.28"></a>
-<span class="sourceLineNo">029</span> *<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * &lt;h5 class='section'&gt;Description:&lt;/h5&gt;<a name="line.30"></a>
-<span class="sourceLineNo">031</span> *<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * The {@code Reader} must contain JSON, Juneau-generated XML (output from {@link XmlSerializer}), or Juneau-generated<a name="line.32"></a>
-<span class="sourceLineNo">033</span> * HTML (output from {@link JsonSerializer}) in order to be parsed correctly.<a name="line.33"></a>
-<span class="sourceLineNo">034</span> *<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * &lt;p&gt;<a name="line.35"></a>
-<span class="sourceLineNo">036</span> * Useful for serializing models that contain {@code Readers} created by {@code RestCall} instances.<a name="line.36"></a>
-<span class="sourceLineNo">037</span> *<a name="line.37"></a>
-<span class="sourceLineNo">038</span> * &lt;p&gt;<a name="line.38"></a>
-<span class="sourceLineNo">039</span> * This is a one-way transform, since {@code Readers} cannot be reconstituted.<a name="line.39"></a>
-<span class="sourceLineNo">040</span> *<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * &lt;h6 class='topic'&gt;Behavior-specific subclasses&lt;/h6&gt;<a name="line.41"></a>
-<span class="sourceLineNo">042</span> *<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * The following direct subclasses are provided for convenience:<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * &lt;ul&gt;<a name="line.44"></a>
-<span class="sourceLineNo">045</span> *    &lt;li&gt;{@link Json} - Parses JSON text.<a name="line.45"></a>
-<span class="sourceLineNo">046</span> *    &lt;li&gt;{@link Xml} - Parses XML text.<a name="line.46"></a>
-<span class="sourceLineNo">047</span> *    &lt;li&gt;{@link Html} - Parses HTML text.<a name="line.47"></a>
-<span class="sourceLineNo">048</span> *    &lt;li&gt;{@link PlainText} - Parses plain text.<a name="line.48"></a>
-<span class="sourceLineNo">049</span> * &lt;/ul&gt;<a name="line.49"></a>
-<span class="sourceLineNo">050</span> */<a name="line.50"></a>
-<span class="sourceLineNo">051</span>public class ReaderSwap extends PojoSwap&lt;Reader,Object&gt; {<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>   /** Reader transform for reading JSON text. */<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   public static class Json extends ReaderSwap {<a name="line.54"></a>
-<span class="sourceLineNo">055</span>      /** Constructor */<a name="line.55"></a>
-<span class="sourceLineNo">056</span>      public Json() {<a name="line.56"></a>
-<span class="sourceLineNo">057</span>         super(JsonParser.DEFAULT);<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      }<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   }<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>   /** Reader transform for reading XML text. */<a name="line.61"></a>
-<span class="sourceLineNo">062</span>   public static class Xml extends ReaderSwap {<a name="line.62"></a>
-<span class="sourceLineNo">063</span>      /** Constructor */<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      public Xml() {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>         super(XmlParser.DEFAULT);<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      }<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>   /** Reader transform for reading HTML text. */<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   public static class Html extends ReaderSwap {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>      /** Constructor */<a name="line.71"></a>
-<span class="sourceLineNo">072</span>      public Html() {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>         super(HtmlParser.DEFAULT);<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      }<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>   /** Reader transform for reading plain text. */<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   public static class PlainText extends ReaderSwap {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      /** Constructor */<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      public PlainText() {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>         super(null);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>   /** The parser to use to parse the contents of the Reader. */<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   private ReaderParser parser;<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>   /**<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    * @param parser The parser to use to convert the contents of the reader to Java objects.<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    */<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   public ReaderSwap(ReaderParser parser) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      this.parser = parser;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   }<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>   /**<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    * Converts the specified {@link Reader} to an {@link Object} whose type is determined by the contents of the reader.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   @Override /* PojoSwap */<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   public Object swap(BeanSession session, Reader o) throws SerializeException {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      try {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>         if (parser == null)<a name="line.101"></a>
-<span class="sourceLineNo">102</span>            return read(o);<a name="line.102"></a>
-<span class="sourceLineNo">103</span>         return parser.parse(o, Object.class);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      } catch (IOException e) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>         return e.getLocalizedMessage();<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      } catch (Exception e) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>         throw new SerializeException("ReaderSwap could not transform object of type ''{0}''",<a name="line.107"></a>
-<span class="sourceLineNo">108</span>            o == null ? null : o.getClass().getName()).initCause(e);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      }<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   }<a name="line.110"></a>
-<span class="sourceLineNo">111</span>}<a name="line.111"></a>
+<span class="sourceLineNo">023</span>import org.apache.juneau.transform.*;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.juneau.xml.*;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>/**<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Transforms the contents of a {@link Reader} into an {@code Object}.<a name="line.27"></a>
+<span class="sourceLineNo">028</span> *<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * &lt;h5 class='section'&gt;Description:&lt;/h5&gt;<a name="line.29"></a>
+<span class="sourceLineNo">030</span> *<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * The {@code Reader} must contain JSON, Juneau-generated XML (output from {@link XmlSerializer}), or Juneau-generated<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * HTML (output from {@link JsonSerializer}) in order to be parsed correctly.<a name="line.32"></a>
+<span class="sourceLineNo">033</span> *<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * &lt;p&gt;<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * Useful for serializing models that contain {@code Readers} created by {@code RestCall} instances.<a name="line.35"></a>
+<span class="sourceLineNo">036</span> *<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * &lt;p&gt;<a name="line.37"></a>
+<span class="sourceLineNo">038</span> * This is a one-way transform, since {@code Readers} cannot be reconstituted.<a name="line.38"></a>
+<span class="sourceLineNo">039</span> *<a name="line.39"></a>
+<span class="sourceLineNo">040</span> * &lt;h6 class='topic'&gt;Behavior-specific subclasses&lt;/h6&gt;<a name="line.40"></a>
+<span class="sourceLineNo">041</span> *<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * The following direct subclasses are provided for convenience:<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * &lt;ul&gt;<a name="line.43"></a>
+<span class="sourceLineNo">044</span> *    &lt;li&gt;{@link Json} - Parses JSON text.<a name="line.44"></a>
+<span class="sourceLineNo">045</span> *    &lt;li&gt;{@link Xml} - Parses XML text.<a name="line.45"></a>
+<span class="sourceLineNo">046</span> *    &lt;li&gt;{@link Html} - Parses HTML text.<a name="line.46"></a>
+<span class="sourceLineNo">047</span> *    &lt;li&gt;{@link PlainText} - Parses plain text.<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * &lt;/ul&gt;<a name="line.48"></a>
+<span class="sourceLineNo">049</span> */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>public class ReaderSwap extends PojoSwap&lt;Reader,Object&gt; {<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>   /** Reader transform for reading JSON text. */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>   public static class Json extends ReaderSwap {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      /** Constructor */<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      public Json() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         super(JsonParser.DEFAULT);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      }<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>   /** Reader transform for reading XML text. */<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   public static class Xml extends ReaderSwap {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>      /** Constructor */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      public Xml() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         super(XmlParser.DEFAULT);<a name="line.64"></a>
+<span class="sourceLineNo">065</span>      }<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>   /** Reader transform for reading HTML text. */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   public static class Html extends ReaderSwap {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      /** Constructor */<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      public Html() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         super(HtmlParser.DEFAULT);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>   /** Reader transform for reading plain text. */<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   public static class PlainText extends ReaderSwap {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      /** Constructor */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      public PlainText() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         super(null);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>   }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>   /** The parser to use to parse the contents of the Reader. */<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   private ReaderParser parser;<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>   /**<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    * @param parser The parser to use to convert the contents of the reader to Java objects.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   public ReaderSwap(ReaderParser parser) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      this.parser = parser;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>   }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>   /**<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    * Converts the specified {@link Reader} to an {@link Object} whose type is determined by the contents of the reader.<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    */<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   @Override /* PojoSwap */<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   public Object swap(BeanSession session, Reader o) throws Exception {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      if (parser == null)<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         return read(o);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      return parser.parse(o, Object.class);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>}<a name="line.103"></a>
 
 
 


[17/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/CoreObjectBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/CoreObjectBuilder.html b/content/site/apidocs/src-html/org/apache/juneau/CoreObjectBuilder.html
index dc4a547..841c51b 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/CoreObjectBuilder.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/CoreObjectBuilder.html
@@ -1062,7 +1062,7 @@
 <span class="sourceLineNo">1054</span>    * There are two category of classes that can be passed in through this method:<a name="line.1054"></a>
 <span class="sourceLineNo">1055</span>    * &lt;ul&gt;<a name="line.1055"></a>
 <span class="sourceLineNo">1056</span>    *    &lt;li&gt;Subclasses of {@link PojoSwap}.<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>    *    &lt;li&gt;Surrogate classes.  A shortcut for defining a {@link SurrogateSwap}.<a name="line.1057"></a>
+<span class="sourceLineNo">1057</span>    *    &lt;li&gt;Implementations of {@link Surrogate}.<a name="line.1057"></a>
 <span class="sourceLineNo">1058</span>    * &lt;/ul&gt;<a name="line.1058"></a>
 <span class="sourceLineNo">1059</span>    *<a name="line.1059"></a>
 <span class="sourceLineNo">1060</span>    * &lt;h5 class='section'&gt;Notes:&lt;/h5&gt;<a name="line.1060"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/annotation/BeanProperty.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/annotation/BeanProperty.html b/content/site/apidocs/src-html/org/apache/juneau/annotation/BeanProperty.html
index 0904ec5..82c476a 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/annotation/BeanProperty.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/annotation/BeanProperty.html
@@ -24,285 +24,261 @@
 <span class="sourceLineNo">016</span>import static java.lang.annotation.RetentionPolicy.*;<a name="line.16"></a>
 <span class="sourceLineNo">017</span><a name="line.17"></a>
 <span class="sourceLineNo">018</span>import java.lang.annotation.*;<a name="line.18"></a>
-<span class="sourceLineNo">019</span>import java.util.*;<a name="line.19"></a>
-<span class="sourceLineNo">020</span><a name="line.20"></a>
-<span class="sourceLineNo">021</span>import org.apache.juneau.*;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.apache.juneau.transform.*;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>/**<a name="line.24"></a>
-<span class="sourceLineNo">025</span> * Used tailor how bean properties get interpreted by the framework.<a name="line.25"></a>
-<span class="sourceLineNo">026</span> *<a name="line.26"></a>
-<span class="sourceLineNo">027</span> * &lt;p&gt;<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * Can be used to do the following:<a name="line.28"></a>
-<span class="sourceLineNo">029</span> * &lt;ul class='spaced-list'&gt;<a name="line.29"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.juneau.*;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>/**<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * Used tailor how bean properties get interpreted by the framework.<a name="line.23"></a>
+<span class="sourceLineNo">024</span> *<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * &lt;p&gt;<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * Can be used to do the following:<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * &lt;ul class='spaced-list'&gt;<a name="line.27"></a>
+<span class="sourceLineNo">028</span> *    &lt;li&gt;<a name="line.28"></a>
+<span class="sourceLineNo">029</span> *       Override the name of a property.<a name="line.29"></a>
 <span class="sourceLineNo">030</span> *    &lt;li&gt;<a name="line.30"></a>
-<span class="sourceLineNo">031</span> *       Override the name of a property.<a name="line.31"></a>
+<span class="sourceLineNo">031</span> *       Identify a getter or setter with a non-standard naming convention.<a name="line.31"></a>
 <span class="sourceLineNo">032</span> *    &lt;li&gt;<a name="line.32"></a>
-<span class="sourceLineNo">033</span> *       Identify a getter or setter with a non-standard naming convention.<a name="line.33"></a>
+<span class="sourceLineNo">033</span> *       Identify a specific subclass for a property with a general class type.<a name="line.33"></a>
 <span class="sourceLineNo">034</span> *    &lt;li&gt;<a name="line.34"></a>
-<span class="sourceLineNo">035</span> *       Identify a specific subclass for a property with a general class type.<a name="line.35"></a>
+<span class="sourceLineNo">035</span> *       Identify class types of elements in properties of type &lt;code&gt;Collection&lt;/code&gt; or &lt;code&gt;Map&lt;/code&gt;.<a name="line.35"></a>
 <span class="sourceLineNo">036</span> *    &lt;li&gt;<a name="line.36"></a>
-<span class="sourceLineNo">037</span> *       Identify class types of elements in properties of type &lt;code&gt;Collection&lt;/code&gt; or &lt;code&gt;Map&lt;/code&gt;.<a name="line.37"></a>
+<span class="sourceLineNo">037</span> *       Hide properties during serialization.<a name="line.37"></a>
 <span class="sourceLineNo">038</span> *    &lt;li&gt;<a name="line.38"></a>
-<span class="sourceLineNo">039</span> *       Hide properties during serialization.<a name="line.39"></a>
-<span class="sourceLineNo">040</span> *    &lt;li&gt;<a name="line.40"></a>
-<span class="sourceLineNo">041</span> *       Associate transforms with bean property values, such as a POJO swap to convert a &lt;code&gt;Calendar&lt;/code&gt; field<a name="line.41"></a>
-<span class="sourceLineNo">042</span> *       to a string.<a name="line.42"></a>
-<span class="sourceLineNo">043</span> *    &lt;li&gt;<a name="line.43"></a>
-<span class="sourceLineNo">044</span> *       Override the list of properties during serialization on child elements of a property of type<a name="line.44"></a>
-<span class="sourceLineNo">045</span> *       &lt;code&gt;Collection&lt;/code&gt; or &lt;code&gt;Map&lt;/code&gt;.<a name="line.45"></a>
+<span class="sourceLineNo">039</span> *       Associate transforms with bean property values, such as a POJO swap to convert a &lt;code&gt;Calendar&lt;/code&gt; field<a name="line.39"></a>
+<span class="sourceLineNo">040</span> *       to a string.<a name="line.40"></a>
+<span class="sourceLineNo">041</span> *    &lt;li&gt;<a name="line.41"></a>
+<span class="sourceLineNo">042</span> *       Override the list of properties during serialization on child elements of a property of type<a name="line.42"></a>
+<span class="sourceLineNo">043</span> *       &lt;code&gt;Collection&lt;/code&gt; or &lt;code&gt;Map&lt;/code&gt;.<a name="line.43"></a>
+<span class="sourceLineNo">044</span> *    &lt;li&gt;<a name="line.44"></a>
+<span class="sourceLineNo">045</span> *       Identify a property as the URL for a bean.<a name="line.45"></a>
 <span class="sourceLineNo">046</span> *    &lt;li&gt;<a name="line.46"></a>
-<span class="sourceLineNo">047</span> *       Identify a property as the URL for a bean.<a name="line.47"></a>
-<span class="sourceLineNo">048</span> *    &lt;li&gt;<a name="line.48"></a>
-<span class="sourceLineNo">049</span> *       Identify a property as the ID for a bean.<a name="line.49"></a>
-<span class="sourceLineNo">050</span> * &lt;/ul&gt;<a name="line.50"></a>
-<span class="sourceLineNo">051</span> *<a name="line.51"></a>
-<span class="sourceLineNo">052</span> * &lt;p&gt;<a name="line.52"></a>
-<span class="sourceLineNo">053</span> * This annotation is applied to public fields and public getter/setter methods of beans.<a name="line.53"></a>
-<span class="sourceLineNo">054</span> */<a name="line.54"></a>
-<span class="sourceLineNo">055</span>@Documented<a name="line.55"></a>
-<span class="sourceLineNo">056</span>@Target({FIELD,METHOD})<a name="line.56"></a>
-<span class="sourceLineNo">057</span>@Retention(RUNTIME)<a name="line.57"></a>
-<span class="sourceLineNo">058</span>@Inherited<a name="line.58"></a>
-<span class="sourceLineNo">059</span>public @interface BeanProperty {<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>   /**<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    * Identifies the name of the property.<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    *<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    * &lt;p&gt;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    * Normally, this is automatically inferred from the field name or getter method name of the property.<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    * However, this property can be used to assign a different property name from the automatically inferred value.<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    *<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    * &lt;p&gt;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    * If the {@link BeanContext#BEAN_beanFieldVisibility} setting on the bean context excludes this field (e.g. the<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    * visibility is set to PUBLIC, but the field is PROTECTED), this annotation can be used to force the field to be<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    * identified as a property.<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    *<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    * &lt;h6 class='topic'&gt;Dynamic beans&lt;/h6&gt;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    * &lt;p&gt;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    * The bean property named &lt;js&gt;"*"&lt;/js&gt; is the designated "dynamic property" which allows for "extra" bean<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    * properties not otherwise defined.<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    * This is similar in concept to the Jackson &lt;ja&gt;@JsonGetterAll&lt;/ja&gt; and &lt;ja&gt;@JsonSetterAll&lt;/ja&gt; annotations.<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    * The primary purpose is for backwards compatibility in parsing newer streams with addition information into older<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    * beans.<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    *<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    * &lt;p&gt;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    * The following examples show how to define dynamic bean properties.<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    * &lt;p class='bcode'&gt;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    *    &lt;jc&gt;// Option #1 - A simple public Map field.<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    *    // The field name can be anything.&lt;/jc&gt;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    *    &lt;jk&gt;public class&lt;/jk&gt; BeanWithDynaField {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    *<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(name=&lt;js&gt;"*"&lt;/js&gt;)<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    *       &lt;jk&gt;public&lt;/jk&gt; Map&amp;lt;String,Object&amp;gt; extraStuff = &lt;jk&gt;new&lt;/jk&gt; LinkedHashMap&amp;lt;String,Object&amp;gt;();<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    *    }<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    *<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    *    &lt;jc&gt;// Option #2 - Getters and setters.<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    *    // Method names can be anything.<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    *    // Getter must return a Map with String keys.<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    *    // Setter must take in two arguments.&lt;/jc&gt;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    *    &lt;jk&gt;public class&lt;/jk&gt; BeanWithDynaMethods {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    *<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(name=&lt;js&gt;"*"&lt;/js&gt;)<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    *       &lt;jk&gt;public&lt;/jk&gt; Map&amp;lt;String,Object&amp;gt; getMyExtraStuff() {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    *          ...<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    *       }<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    *<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(name=&lt;js&gt;"*"&lt;/js&gt;)<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    *       &lt;jk&gt;public void&lt;/jk&gt; setAnExtraField(String name, Object value) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    *          ...<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    *       }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    *    }<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    *<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    *    &lt;jc&gt;// Option #3 - Getter only.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    *    // Properties will be added through the getter.&lt;/jc&gt;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    *    &lt;jk&gt;public class&lt;/jk&gt; BeanWithDynaGetterOnly {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    *<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(name=&lt;js&gt;"*"&lt;/js&gt;)<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    *       &lt;jk&gt;public&lt;/jk&gt; Map&amp;lt;String,Object&amp;gt; getMyExtraStuff() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    *          ...<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    *       }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    *    }<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    * &lt;/p&gt;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    *<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    *&lt;p&gt;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    * Similar rules apply for value types and swaps.<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    * The property values optionally can be any serializable type or use swaps.<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    * &lt;p class='bcode'&gt;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    *    &lt;jc&gt;// A serializable type other than Object.&lt;/jc&gt;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    *    &lt;jk&gt;public class&lt;/jk&gt; BeanWithDynaFieldWithListValues {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    *<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(name=&lt;js&gt;"*"&lt;/js&gt;)<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    *       &lt;jk&gt;public&lt;/jk&gt; Map&amp;lt;String,List&amp;lt;String&amp;gt;&amp;gt; getMyExtraStuff() {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    *          ...<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    *       }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    *    }<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    *<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    *    &lt;jc&gt;// A swapped value.&lt;/jc&gt;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    *    &lt;jk&gt;public class&lt;/jk&gt; BeanWithDynaFieldWithSwappedValues {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    *<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(name=&lt;js&gt;"*"&lt;/js&gt;, swap=CalendarSwap.&lt;jsf&gt;ISO8601DTZ&lt;/jsf&gt;.&lt;jk&gt;class&lt;/jk&gt;)<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    *       &lt;jk&gt;public&lt;/jk&gt; Map&amp;lt;String,Calendar&amp;gt; getMyExtraStuff() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    *          ...<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    *       }<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    *    }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    * &lt;/p&gt;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    *<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    * &lt;ul class='doctree'&gt;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    *    &lt;li class='info'&gt;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    *       Note that if you're not interested in these additional properties, you can also use the<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    *       {@link BeanContext#BEAN_ignoreUnknownBeanProperties} setting to ignore values that don't fit into existing<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    *       properties.<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    * &lt;/ul&gt;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    */<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   String name() default "";<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span>   /**<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    * A synonym for {@link #name()}.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    *<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    * &lt;p&gt;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    * The following annotations are equivalent:<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    *<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    * &lt;p class='bcode'&gt;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    *    &lt;ja&gt;@BeanProperty&lt;/ja&gt;(name=&lt;js&gt;"foo"&lt;/js&gt;)<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    *<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    *    &lt;ja&gt;@BeanProperty&lt;/ja&gt;(&lt;js&gt;"foo"&lt;/js&gt;)<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    * &lt;/p&gt;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    */<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   String value() default "";<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span>   /**<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    * Identifies a specialized class type for the property.<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    *<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    * &lt;p&gt;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    * Normally this can be inferred through reflection of the field type or getter return type.<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    * However, you'll want to specify this value if you're parsing beans where the bean property class is an interface<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    * or abstract class to identify the bean type to instantiate.<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    * Otherwise, you may cause an {@link InstantiationException} when trying to set these fields.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    *<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    * &lt;p&gt;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    * This property must denote a concrete bean class with a no-arg constructor.<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    *<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    * &lt;p class='bcode'&gt;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    *    &lt;jk&gt;public class&lt;/jk&gt; MyBean {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    *<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    *       &lt;jc&gt;// Identify concrete map type.&lt;/jc&gt;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(type=HashMap.&lt;jk&gt;class&lt;/jk&gt;)<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    *       &lt;jk&gt;public&lt;/jk&gt; Map &lt;jf&gt;p1&lt;/jf&gt;;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    *    }<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    * &lt;/p&gt;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    */<a name="line.187"></a>
-<span class="sourceLineNo">188</span>   Class&lt;?&gt; type() default Object.class;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>   /**<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    * For bean properties of maps and collections, this annotation can be used to identify the class types of the<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    * contents of the bean property object when the generic parameter types are interfaces or abstract classes.<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    *<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    * &lt;p class='bcode'&gt;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    *    &lt;jk&gt;public class&lt;/jk&gt; MyBean {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    *<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    *       &lt;jc&gt;// Identify concrete map type with String keys and Integer values.&lt;/jc&gt;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(type=HashMap.&lt;jk&gt;class&lt;/jk&gt;, params={String.&lt;jk&gt;class&lt;/jk&gt;,Integer.&lt;jk&gt;class&lt;/jk&gt;})<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    *       &lt;jk&gt;public&lt;/jk&gt; Map &lt;jf&gt;p1&lt;/jf&gt;;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    *    }<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    * &lt;/p&gt;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    */<a name="line.203"></a>
-<span class="sourceLineNo">204</span>   Class&lt;?&gt;[] params() default {};<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>   /**<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    * Associates a {@link PojoSwap} or {@link SurrogateSwap} with this bean property that will swap the value object<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    * with another object during serialization and parsing.<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    *<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    * &lt;p&gt;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    * This annotation supersedes any swaps associated with the bean property type class itself.<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    *<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    * &lt;p&gt;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    * Typically used for rendering {@link Date Dates} and {@link Calendar Calendars} as a particular string format.<a name="line.214"></a>
+<span class="sourceLineNo">047</span> *       Identify a property as the ID for a bean.<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * &lt;/ul&gt;<a name="line.48"></a>
+<span class="sourceLineNo">049</span> *<a name="line.49"></a>
+<span class="sourceLineNo">050</span> * &lt;p&gt;<a name="line.50"></a>
+<span class="sourceLineNo">051</span> * This annotation is applied to public fields and public getter/setter methods of beans.<a name="line.51"></a>
+<span class="sourceLineNo">052</span> */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>@Documented<a name="line.53"></a>
+<span class="sourceLineNo">054</span>@Target({FIELD,METHOD})<a name="line.54"></a>
+<span class="sourceLineNo">055</span>@Retention(RUNTIME)<a name="line.55"></a>
+<span class="sourceLineNo">056</span>@Inherited<a name="line.56"></a>
+<span class="sourceLineNo">057</span>public @interface BeanProperty {<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>   /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    * Identifies the name of the property.<a name="line.60"></a>
+<span class="sourceLineNo">061</span>    *<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    * &lt;p&gt;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    * Normally, this is automatically inferred from the field name or getter method name of the property.<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    * However, this property can be used to assign a different property name from the automatically inferred value.<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    *<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    * &lt;p&gt;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    * If the {@link BeanContext#BEAN_beanFieldVisibility} setting on the bean context excludes this field (e.g. the<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    * visibility is set to PUBLIC, but the field is PROTECTED), this annotation can be used to force the field to be<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    * identified as a property.<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    *<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    * &lt;h6 class='topic'&gt;Dynamic beans&lt;/h6&gt;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    * &lt;p&gt;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    * The bean property named &lt;js&gt;"*"&lt;/js&gt; is the designated "dynamic property" which allows for "extra" bean<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    * properties not otherwise defined.<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    * This is similar in concept to the Jackson &lt;ja&gt;@JsonGetterAll&lt;/ja&gt; and &lt;ja&gt;@JsonSetterAll&lt;/ja&gt; annotations.<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    * The primary purpose is for backwards compatibility in parsing newer streams with addition information into older<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    * beans.<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    *<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    * &lt;p&gt;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    * The following examples show how to define dynamic bean properties.<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    * &lt;p class='bcode'&gt;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    *    &lt;jc&gt;// Option #1 - A simple public Map field.<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    *    // The field name can be anything.&lt;/jc&gt;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    *    &lt;jk&gt;public class&lt;/jk&gt; BeanWithDynaField {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    *<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(name=&lt;js&gt;"*"&lt;/js&gt;)<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    *       &lt;jk&gt;public&lt;/jk&gt; Map&amp;lt;String,Object&amp;gt; extraStuff = &lt;jk&gt;new&lt;/jk&gt; LinkedHashMap&amp;lt;String,Object&amp;gt;();<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    *    }<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    *<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    *    &lt;jc&gt;// Option #2 - Getters and setters.<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    *    // Method names can be anything.<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    *    // Getter must return a Map with String keys.<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    *    // Setter must take in two arguments.&lt;/jc&gt;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    *    &lt;jk&gt;public class&lt;/jk&gt; BeanWithDynaMethods {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    *<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(name=&lt;js&gt;"*"&lt;/js&gt;)<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    *       &lt;jk&gt;public&lt;/jk&gt; Map&amp;lt;String,Object&amp;gt; getMyExtraStuff() {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    *          ...<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    *       }<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    *<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(name=&lt;js&gt;"*"&lt;/js&gt;)<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    *       &lt;jk&gt;public void&lt;/jk&gt; setAnExtraField(String name, Object value) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    *          ...<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    *       }<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    *    }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    *<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    *    &lt;jc&gt;// Option #3 - Getter only.<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    *    // Properties will be added through the getter.&lt;/jc&gt;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    *    &lt;jk&gt;public class&lt;/jk&gt; BeanWithDynaGetterOnly {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    *<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(name=&lt;js&gt;"*"&lt;/js&gt;)<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    *       &lt;jk&gt;public&lt;/jk&gt; Map&amp;lt;String,Object&amp;gt; getMyExtraStuff() {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    *          ...<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    *       }<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    *    }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    * &lt;/p&gt;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    *<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    *&lt;p&gt;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    * Similar rules apply for value types and swaps.<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    * The property values optionally can be any serializable type or use swaps.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    * &lt;p class='bcode'&gt;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    *    &lt;jc&gt;// A serializable type other than Object.&lt;/jc&gt;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    *    &lt;jk&gt;public class&lt;/jk&gt; BeanWithDynaFieldWithListValues {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    *<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(name=&lt;js&gt;"*"&lt;/js&gt;)<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    *       &lt;jk&gt;public&lt;/jk&gt; Map&amp;lt;String,List&amp;lt;String&amp;gt;&amp;gt; getMyExtraStuff() {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    *          ...<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    *       }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    *    }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    *<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    *    &lt;jc&gt;// A swapped value.&lt;/jc&gt;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    *    &lt;jk&gt;public class&lt;/jk&gt; BeanWithDynaFieldWithSwappedValues {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    *<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(name=&lt;js&gt;"*"&lt;/js&gt;, swap=CalendarSwap.&lt;jsf&gt;ISO8601DTZ&lt;/jsf&gt;.&lt;jk&gt;class&lt;/jk&gt;)<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    *       &lt;jk&gt;public&lt;/jk&gt; Map&amp;lt;String,Calendar&amp;gt; getMyExtraStuff() {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    *          ...<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    *       }<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    *    }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    * &lt;/p&gt;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    *<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    * &lt;ul class='doctree'&gt;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    *    &lt;li class='info'&gt;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    *       Note that if you're not interested in these additional properties, you can also use the<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    *       {@link BeanContext#BEAN_ignoreUnknownBeanProperties} setting to ignore values that don't fit into existing<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    *       properties.<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    * &lt;/ul&gt;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    */<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   String name() default "";<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>   /**<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    * A synonym for {@link #name()}.<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    *<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    * &lt;p&gt;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    * The following annotations are equivalent:<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    *<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    * &lt;p class='bcode'&gt;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    *    &lt;ja&gt;@BeanProperty&lt;/ja&gt;(name=&lt;js&gt;"foo"&lt;/js&gt;)<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    *<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    *    &lt;ja&gt;@BeanProperty&lt;/ja&gt;(&lt;js&gt;"foo"&lt;/js&gt;)<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    * &lt;/p&gt;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    */<a name="line.161"></a>
+<span class="sourceLineNo">162</span>   String value() default "";<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>   /**<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    * Identifies a specialized class type for the property.<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    *<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    * &lt;p&gt;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    * Normally this can be inferred through reflection of the field type or getter return type.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    * However, you'll want to specify this value if you're parsing beans where the bean property class is an interface<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    * or abstract class to identify the bean type to instantiate.<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    * Otherwise, you may cause an {@link InstantiationException} when trying to set these fields.<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    *<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    * &lt;p&gt;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    * This property must denote a concrete bean class with a no-arg constructor.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    *<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    * &lt;p class='bcode'&gt;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    *    &lt;jk&gt;public class&lt;/jk&gt; MyBean {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    *<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    *       &lt;jc&gt;// Identify concrete map type.&lt;/jc&gt;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(type=HashMap.&lt;jk&gt;class&lt;/jk&gt;)<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    *       &lt;jk&gt;public&lt;/jk&gt; Map &lt;jf&gt;p1&lt;/jf&gt;;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    *    }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    * &lt;/p&gt;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    */<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   Class&lt;?&gt; type() default Object.class;<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>   /**<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    * For bean properties of maps and collections, this annotation can be used to identify the class types of the<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    * contents of the bean property object when the generic parameter types are interfaces or abstract classes.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    *<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    * &lt;p class='bcode'&gt;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    *    &lt;jk&gt;public class&lt;/jk&gt; MyBean {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    *<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    *       &lt;jc&gt;// Identify concrete map type with String keys and Integer values.&lt;/jc&gt;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(type=HashMap.&lt;jk&gt;class&lt;/jk&gt;, params={String.&lt;jk&gt;class&lt;/jk&gt;,Integer.&lt;jk&gt;class&lt;/jk&gt;})<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    *       &lt;jk&gt;public&lt;/jk&gt; Map &lt;jf&gt;p1&lt;/jf&gt;;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    *    }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    * &lt;/p&gt;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    */<a name="line.201"></a>
+<span class="sourceLineNo">202</span>   Class&lt;?&gt;[] params() default {};<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>   /**<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    * Used to limit which child properties are rendered by the serializers.<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    *<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    * &lt;p&gt;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    * Can be used on any of the following bean property types:<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    * &lt;ul class='spaced-list'&gt;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    *    &lt;li&gt;Beans - Only render the specified properties of the bean.<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    *    &lt;li&gt;Maps - Only render the specified entries in the map.<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    *    &lt;li&gt;Bean/Map arrays - Same, but applied to each element in the array.<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    *    &lt;li&gt;Bean/Map collections - Same, but applied to each element in the collection.<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    * &lt;/ul&gt;<a name="line.214"></a>
 <span class="sourceLineNo">215</span>    *<a name="line.215"></a>
 <span class="sourceLineNo">216</span>    * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.216"></a>
 <span class="sourceLineNo">217</span>    * &lt;p class='bcode'&gt;<a name="line.217"></a>
 <span class="sourceLineNo">218</span>    *    &lt;jk&gt;public class&lt;/jk&gt; MyClass {<a name="line.218"></a>
 <span class="sourceLineNo">219</span>    *<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    *       &lt;jc&gt;// During serialization, convert to ISO8601 date-time string.&lt;/jc&gt;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(pojoSwap=CalendarSwap.ISO8601DT.&lt;jk&gt;class&lt;/jk&gt;)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    *       &lt;jk&gt;public&lt;/jk&gt; Calendar getTime();<a name="line.222"></a>
+<span class="sourceLineNo">220</span>    *       &lt;jc&gt;// Only render 'f1' when serializing this bean property.&lt;/jc&gt;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(properties=&lt;js&gt;"f1"&lt;/js&gt;)<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    *       &lt;jk&gt;public&lt;/jk&gt; MyChildClass x1 = &lt;jk&gt;new&lt;/jk&gt; MyChildClass();<a name="line.222"></a>
 <span class="sourceLineNo">223</span>    *    }<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    * &lt;/p&gt;<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    */<a name="line.225"></a>
-<span class="sourceLineNo">226</span>   Class&lt;?&gt; swap() default Null.class;<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>   /**<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    * Used to limit which child properties are rendered by the serializers.<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    *<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    * &lt;p&gt;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    * Can be used on any of the following bean property types:<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    * &lt;ul class='spaced-list'&gt;<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    *    &lt;li&gt;Beans - Only render the specified properties of the bean.<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    *    &lt;li&gt;Maps - Only render the specified entries in the map.<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    *    &lt;li&gt;Bean/Map arrays - Same, but applied to each element in the array.<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    *    &lt;li&gt;Bean/Map collections - Same, but applied to each element in the collection.<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    * &lt;/ul&gt;<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    *<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    * &lt;p class='bcode'&gt;<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    *    &lt;jk&gt;public class&lt;/jk&gt; MyClass {<a name="line.242"></a>
+<span class="sourceLineNo">224</span>    *<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    *    &lt;jk&gt;public class&lt;/jk&gt; MyChildClass {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    *       &lt;jk&gt;public int&lt;/jk&gt; f1 = 1;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    *       &lt;jk&gt;public int&lt;/jk&gt; f2 = 2;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    *    }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    *<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    *    &lt;jc&gt;// Renders "{x1:{f1:1}}"&lt;/jc&gt;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    *    String json = JsonSerializer.&lt;jsf&gt;DEFAULT&lt;/jsf&gt;.serialize(&lt;jk&gt;new&lt;/jk&gt; MyClass());<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    * &lt;/p&gt;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    */<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   String properties() default "";<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>   /**<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    * The list of classes that make up the bean dictionary for this bean property.<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    *<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    * &lt;p&gt;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    * The dictionary is a name/class mapping used to find class types during parsing when they cannot be inferred<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    * through reflection.<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    * The names are defined through the {@link Bean#typeName()} annotation defined on the bean class.<a name="line.242"></a>
 <span class="sourceLineNo">243</span>    *<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    *       &lt;jc&gt;// Only render 'f1' when serializing this bean property.&lt;/jc&gt;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    *       &lt;ja&gt;@BeanProperty&lt;/ja&gt;(properties=&lt;js&gt;"f1"&lt;/js&gt;)<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    *       &lt;jk&gt;public&lt;/jk&gt; MyChildClass x1 = &lt;jk&gt;new&lt;/jk&gt; MyChildClass();<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    *    }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    *<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    *    &lt;jk&gt;public class&lt;/jk&gt; MyChildClass {<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    *       &lt;jk&gt;public int&lt;/jk&gt; f1 = 1;<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    *       &lt;jk&gt;public int&lt;/jk&gt; f2 = 2;<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    *    }<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    *<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    *    &lt;jc&gt;// Renders "{x1:{f1:1}}"&lt;/jc&gt;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    *    String json = JsonSerializer.&lt;jsf&gt;DEFAULT&lt;/jsf&gt;.serialize(&lt;jk&gt;new&lt;/jk&gt; MyClass());<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    * &lt;/p&gt;<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    */<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   String properties() default "";<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>   /**<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    * The list of classes that make up the bean dictionary for this bean property.<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    *<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    * &lt;p&gt;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    * The dictionary is a name/class mapping used to find class types during parsing when they cannot be inferred<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    * through reflection.<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    * The names are defined through the {@link Bean#typeName()} annotation defined on the bean class.<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    *<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    * &lt;p&gt;<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    * This list can consist of the following class types:<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    * &lt;ul&gt;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    *    &lt;li&gt;Any bean class that specifies a value for {@link Bean#typeName() @Bean.name()};<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    *    &lt;li&gt;Any subclass of {@link BeanDictionaryList} that defines an entire set of mappings.<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    *       Note that the subclass MUST implement a no-arg constructor so that it can be instantiated.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    *    &lt;li&gt;Any subclass of {@link BeanDictionaryMap} that defines an entire set of mappings.<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    *       Note that the subclass MUST implement a no-arg constructor so that it can be instantiated.<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    * &lt;/ul&gt;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    */<a name="line.277"></a>
-<span class="sourceLineNo">278</span>   Class&lt;?&gt;[] beanDictionary() default {};<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>   /**<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    * Specifies a String format for converting the bean property value to a formatted string.<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    *<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    * &lt;p&gt;<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    * Note that this is usually a one-way conversion during serialization.<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    *<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    * &lt;p&gt;<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    * During parsing, we will attempt to convert the value to the original form by using the<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    * {@link BeanSession#convertToType(Object, Class)} but there is no guarantee that this will succeed.<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    *<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    * &lt;p class='bcode'&gt;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    *    &lt;ja&gt;@BeanProperty&lt;/ja&gt;(format=&lt;js&gt;"$%.2f"&lt;/js&gt;)<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    *    &lt;jk&gt;public float&lt;/jk&gt; &lt;jf&gt;price&lt;/jf&gt;;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    * &lt;/p&gt;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    */<a name="line.295"></a>
-<span class="sourceLineNo">296</span>   String format() default "";<a name="line.296"></a>
-<span class="sourceLineNo">297</span>}<a name="line.297"></a>
+<span class="sourceLineNo">244</span>    * &lt;p&gt;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    * This list can consist of the following class types:<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    * &lt;ul&gt;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    *    &lt;li&gt;Any bean class that specifies a value for {@link Bean#typeName() @Bean.name()};<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    *    &lt;li&gt;Any subclass of {@link BeanDictionaryList} that defines an entire set of mappings.<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    *       Note that the subclass MUST implement a no-arg constructor so that it can be instantiated.<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    *    &lt;li&gt;Any subclass of {@link BeanDictionaryMap} that defines an entire set of mappings.<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    *       Note that the subclass MUST implement a no-arg constructor so that it can be instantiated.<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    * &lt;/ul&gt;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    */<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   Class&lt;?&gt;[] beanDictionary() default {};<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>   /**<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    * Specifies a String format for converting the bean property value to a formatted string.<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    *<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    * &lt;p&gt;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    * Note that this is usually a one-way conversion during serialization.<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    *<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    * &lt;p&gt;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    * During parsing, we will attempt to convert the value to the original form by using the<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    * {@link BeanSession#convertToType(Object, Class)} but there is no guarantee that this will succeed.<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    *<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    * &lt;p class='bcode'&gt;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    *    &lt;ja&gt;@BeanProperty&lt;/ja&gt;(format=&lt;js&gt;"$%.2f"&lt;/js&gt;)<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    *    &lt;jk&gt;public float&lt;/jk&gt; &lt;jf&gt;price&lt;/jf&gt;;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    * &lt;/p&gt;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    */<a name="line.271"></a>
+<span class="sourceLineNo">272</span>   String format() default "";<a name="line.272"></a>
+<span class="sourceLineNo">273</span>}<a name="line.273"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/annotation/Pojo.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/annotation/Pojo.html b/content/site/apidocs/src-html/org/apache/juneau/annotation/Pojo.html
deleted file mode 100644
index 3d1bb57..0000000
--- a/content/site/apidocs/src-html/org/apache/juneau/annotation/Pojo.html
+++ /dev/null
@@ -1,156 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
-<title>Source code</title>
-<link rel="stylesheet" type="text/css" href="../../../../../javadoc.css" title="Style">
-</head>
-<body>
-<div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>// ***************************************************************************************************************************<a name="line.1"></a>
-<span class="sourceLineNo">002</span>// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *<a name="line.2"></a>
-<span class="sourceLineNo">003</span>// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *<a name="line.3"></a>
-<span class="sourceLineNo">004</span>// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *<a name="line.4"></a>
-<span class="sourceLineNo">005</span>// * with the License.  You may obtain a copy of the License at                                                              *<a name="line.5"></a>
-<span class="sourceLineNo">006</span>// *                                                                                                                         *<a name="line.6"></a>
-<span class="sourceLineNo">007</span>// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *<a name="line.7"></a>
-<span class="sourceLineNo">008</span>// *                                                                                                                         *<a name="line.8"></a>
-<span class="sourceLineNo">009</span>// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *<a name="line.9"></a>
-<span class="sourceLineNo">010</span>// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *<a name="line.10"></a>
-<span class="sourceLineNo">011</span>// * specific language governing permissions and limitations under the License.                                              *<a name="line.11"></a>
-<span class="sourceLineNo">012</span>// ***************************************************************************************************************************<a name="line.12"></a>
-<span class="sourceLineNo">013</span>package org.apache.juneau.annotation;<a name="line.13"></a>
-<span class="sourceLineNo">014</span><a name="line.14"></a>
-<span class="sourceLineNo">015</span>import static java.lang.annotation.ElementType.*;<a name="line.15"></a>
-<span class="sourceLineNo">016</span>import static java.lang.annotation.RetentionPolicy.*;<a name="line.16"></a>
-<span class="sourceLineNo">017</span><a name="line.17"></a>
-<span class="sourceLineNo">018</span>import java.lang.annotation.*;<a name="line.18"></a>
-<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import org.apache.juneau.transform.*;<a name="line.20"></a>
-<span class="sourceLineNo">021</span><a name="line.21"></a>
-<span class="sourceLineNo">022</span>/**<a name="line.22"></a>
-<span class="sourceLineNo">023</span> * Used to tailor how POJOs get interpreted by the framework.<a name="line.23"></a>
-<span class="sourceLineNo">024</span> */<a name="line.24"></a>
-<span class="sourceLineNo">025</span>@Documented<a name="line.25"></a>
-<span class="sourceLineNo">026</span>@Target(TYPE)<a name="line.26"></a>
-<span class="sourceLineNo">027</span>@Retention(RUNTIME)<a name="line.27"></a>
-<span class="sourceLineNo">028</span>@Inherited<a name="line.28"></a>
-<span class="sourceLineNo">029</span>public @interface Pojo {<a name="line.29"></a>
-<span class="sourceLineNo">030</span><a name="line.30"></a>
-<span class="sourceLineNo">031</span>   /**<a name="line.31"></a>
-<span class="sourceLineNo">032</span>    * Associate a {@link PojoSwap} or {@link SurrogateSwap} with this class type.<a name="line.32"></a>
-<span class="sourceLineNo">033</span>    *<a name="line.33"></a>
-<span class="sourceLineNo">034</span>    * &lt;p&gt;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>    * Supports the following class types:<a name="line.35"></a>
-<span class="sourceLineNo">036</span>    * &lt;ul&gt;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>    *    &lt;li&gt;Subclasses of {@link PojoSwap}.<a name="line.37"></a>
-<span class="sourceLineNo">038</span>    *    &lt;li&gt;Any other class.  Will get interpreted as a {@link SurrogateSwap}.<a name="line.38"></a>
-<span class="sourceLineNo">039</span>    * &lt;/ul&gt;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    *<a name="line.40"></a>
-<span class="sourceLineNo">041</span>    * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>    * &lt;p&gt;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    * In this case, a swap is being applied to a bean that will force it to be serialized as a &lt;code&gt;String&lt;/code&gt;:<a name="line.43"></a>
-<span class="sourceLineNo">044</span>    * &lt;p class='bcode'&gt;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>    *    &lt;jc&gt;// Our bean class&lt;/jc&gt;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>    *    &lt;ja&gt;@Pojo&lt;/ja&gt;(swap=BSwap.&lt;jk&gt;class&lt;/jk&gt;)<a name="line.46"></a>
-<span class="sourceLineNo">047</span>    *    &lt;jk&gt;public class&lt;/jk&gt; B {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    *       &lt;jk&gt;public&lt;/jk&gt; String &lt;jf&gt;f1&lt;/jf&gt;;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    *    }<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    *<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    *    &lt;jc&gt;// Our POJO swap to force the bean to be serialized as a String&lt;/jc&gt;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    *    &lt;jk&gt;public class&lt;/jk&gt; BSwap &lt;jk&gt;extends&lt;/jk&gt; PojoSwap&amp;lt;B,String&amp;gt; {<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    *       &lt;jk&gt;public&lt;/jk&gt; String swap(BeanSession s, B o) &lt;jk&gt;throws&lt;/jk&gt; SerializeException {<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    *          &lt;jk&gt;return&lt;/jk&gt; o.f1;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>    *       }<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    *       &lt;jk&gt;public&lt;/jk&gt; B unswap(BeanSession s, String f) &lt;jk&gt;throws&lt;/jk&gt; ParseException { {<a name="line.56"></a>
-<span class="sourceLineNo">057</span>    *          B b1 = &lt;jk&gt;new&lt;/jk&gt; B();<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    *          b1.&lt;jf&gt;f1&lt;/jf&gt; = f;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    *          &lt;jk&gt;return&lt;/jk&gt; b1;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    *       }<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    *    }<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    *<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    *    &lt;jk&gt;public void&lt;/jk&gt; test() &lt;jk&gt;throws&lt;/jk&gt; Exception {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    *       WriterSerializer s = JsonSerializer.&lt;jsf&gt;DEFAULT&lt;/jsf&gt;;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    *       B b = &lt;jk&gt;new&lt;/jk&gt; B();<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    *       b.&lt;jf&gt;f1&lt;/jf&gt; = &lt;js&gt;"bar"&lt;/js&gt;;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    *       String json = s.serialize(b);<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    *       &lt;jsm&gt;assertEquals&lt;/jsm&gt;(&lt;js&gt;"\"bar\""&lt;/js&gt;, json);<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    *<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    *       ReaderParser p = JsonParser.&lt;jsf&gt;DEFAULT&lt;/jsf&gt;;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    *       b = p.parse(json, B.&lt;jk&gt;class&lt;/jk&gt;);<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    *       &lt;jsm&gt;assertEquals&lt;/jsm&gt;(&lt;js&gt;"bar"&lt;/js&gt;, b.&lt;jf&gt;f1&lt;/jf&gt;);<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    *    }<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    * &lt;/p&gt;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    *<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    * &lt;p&gt;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    * Note that using this annotation is functionally equivalent to adding swaps to the serializers and parsers:<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    * &lt;p class='bcode'&gt;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    *    WriterSerializer s = &lt;jk&gt;new&lt;/jk&gt; JsonSerializerBuilder().pojoSwaps(BSwap.&lt;jk&gt;class&lt;/jk&gt;).build();<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    *    ReaderParser p = &lt;jk&gt;new&lt;/jk&gt; JsonParserBuilder().pojoSwaps(BSwap.&lt;jk&gt;class&lt;/jk&gt;).build();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    * &lt;/p&gt;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    */<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   Class&lt;?&gt; swap() default Null.class;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>}<a name="line.84"></a>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</div>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/dto/atom/CommonEntry.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/dto/atom/CommonEntry.html b/content/site/apidocs/src-html/org/apache/juneau/dto/atom/CommonEntry.html
index f38c0a4..33645ae 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/dto/atom/CommonEntry.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/dto/atom/CommonEntry.html
@@ -279,7 +279,7 @@
 <span class="sourceLineNo">271</span>    *<a name="line.271"></a>
 <span class="sourceLineNo">272</span>    * @return The update timestamp of this object.<a name="line.272"></a>
 <span class="sourceLineNo">273</span>    */<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   @BeanProperty(swap=CalendarSwap.ISO8601DT.class)<a name="line.274"></a>
+<span class="sourceLineNo">274</span>   @Swap(CalendarSwap.ISO8601DT.class)<a name="line.274"></a>
 <span class="sourceLineNo">275</span>   public Calendar getUpdated() {<a name="line.275"></a>
 <span class="sourceLineNo">276</span>      return updated;<a name="line.276"></a>
 <span class="sourceLineNo">277</span>   }<a name="line.277"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/dto/atom/Entry.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/dto/atom/Entry.html b/content/site/apidocs/src-html/org/apache/juneau/dto/atom/Entry.html
index 1bd78b7..98f662f 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/dto/atom/Entry.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/dto/atom/Entry.html
@@ -131,7 +131,7 @@
 <span class="sourceLineNo">123</span>    *<a name="line.123"></a>
 <span class="sourceLineNo">124</span>    * @return The publish timestamp of this entry.<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    */<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   @BeanProperty(swap=CalendarSwap.ISO8601DT.class)<a name="line.126"></a>
+<span class="sourceLineNo">126</span>   @Swap(CalendarSwap.ISO8601DT.class)<a name="line.126"></a>
 <span class="sourceLineNo">127</span>   public Calendar getPublished() {<a name="line.127"></a>
 <span class="sourceLineNo">128</span>      return published;<a name="line.128"></a>
 <span class="sourceLineNo">129</span>   }<a name="line.129"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaArraySwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaArraySwap.html b/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaArraySwap.html
index 3f8181a..023c575 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaArraySwap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaArraySwap.html
@@ -234,7 +234,7 @@
 <span class="sourceLineNo">226</span>    *    The value of the &lt;property&gt;type&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.<a name="line.226"></a>
 <span class="sourceLineNo">227</span>    *    Can be either a {@link JsonType} or {@link JsonTypeArray} depending on what value was used to set it.<a name="line.227"></a>
 <span class="sourceLineNo">228</span>    */<a name="line.228"></a>
-<span class="sourceLineNo">229</span>   @BeanProperty(swap=JsonTypeOrJsonTypeArraySwap.class)<a name="line.229"></a>
+<span class="sourceLineNo">229</span>   @Swap(JsonTypeOrJsonTypeArraySwap.class)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>   public Object getType() {<a name="line.230"></a>
 <span class="sourceLineNo">231</span>      if (typeJsonType != null)<a name="line.231"></a>
 <span class="sourceLineNo">232</span>         return typeJsonType;<a name="line.232"></a>
@@ -558,7 +558,7 @@
 <span class="sourceLineNo">550</span>    *    The value of the &lt;property&gt;items&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.<a name="line.550"></a>
 <span class="sourceLineNo">551</span>    *    Can be either a {@link Schema} or {@link SchemaArray} depending on what value was used to set it.<a name="line.551"></a>
 <span class="sourceLineNo">552</span>    */<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   @BeanProperty(swap=SchemaOrSchemaArraySwap.class)<a name="line.553"></a>
+<span class="sourceLineNo">553</span>   @Swap(SchemaOrSchemaArraySwap.class)<a name="line.553"></a>
 <span class="sourceLineNo">554</span>   public Object getItems() {<a name="line.554"></a>
 <span class="sourceLineNo">555</span>      if (itemsSchema != null)<a name="line.555"></a>
 <span class="sourceLineNo">556</span>         return itemsSchema;<a name="line.556"></a>
@@ -835,7 +835,7 @@
 <span class="sourceLineNo">827</span>    *    not set.<a name="line.827"></a>
 <span class="sourceLineNo">828</span>    *    Can be either a {@link Boolean} or {@link SchemaArray} depending on what value was used to set it.<a name="line.828"></a>
 <span class="sourceLineNo">829</span>    */<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   @BeanProperty(swap=BooleanOrSchemaArraySwap.class)<a name="line.830"></a>
+<span class="sourceLineNo">830</span>   @Swap(BooleanOrSchemaArraySwap.class)<a name="line.830"></a>
 <span class="sourceLineNo">831</span>   public Object getAdditionalItems() {<a name="line.831"></a>
 <span class="sourceLineNo">832</span>      if (additionalItemsBoolean != null)<a name="line.832"></a>
 <span class="sourceLineNo">833</span>         return additionalItemsBoolean;<a name="line.833"></a>
@@ -1115,7 +1115,7 @@
 <span class="sourceLineNo">1107</span>    *    is not set.<a name="line.1107"></a>
 <span class="sourceLineNo">1108</span>    *    Can be either a {@link Boolean} or {@link SchemaArray} depending on what value was used to set it.<a name="line.1108"></a>
 <span class="sourceLineNo">1109</span>    */<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>   @BeanProperty(swap=BooleanOrSchemaSwap.class)<a name="line.1110"></a>
+<span class="sourceLineNo">1110</span>   @Swap(BooleanOrSchemaSwap.class)<a name="line.1110"></a>
 <span class="sourceLineNo">1111</span>   public Object getAdditionalProperties() {<a name="line.1111"></a>
 <span class="sourceLineNo">1112</span>      if (additionalPropertiesBoolean != null)<a name="line.1112"></a>
 <span class="sourceLineNo">1113</span>         return additionalItemsBoolean;<a name="line.1113"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaSwap.html b/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaSwap.html
index 3f8181a..023c575 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaSwap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaSwap.html
@@ -234,7 +234,7 @@
 <span class="sourceLineNo">226</span>    *    The value of the &lt;property&gt;type&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.<a name="line.226"></a>
 <span class="sourceLineNo">227</span>    *    Can be either a {@link JsonType} or {@link JsonTypeArray} depending on what value was used to set it.<a name="line.227"></a>
 <span class="sourceLineNo">228</span>    */<a name="line.228"></a>
-<span class="sourceLineNo">229</span>   @BeanProperty(swap=JsonTypeOrJsonTypeArraySwap.class)<a name="line.229"></a>
+<span class="sourceLineNo">229</span>   @Swap(JsonTypeOrJsonTypeArraySwap.class)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>   public Object getType() {<a name="line.230"></a>
 <span class="sourceLineNo">231</span>      if (typeJsonType != null)<a name="line.231"></a>
 <span class="sourceLineNo">232</span>         return typeJsonType;<a name="line.232"></a>
@@ -558,7 +558,7 @@
 <span class="sourceLineNo">550</span>    *    The value of the &lt;property&gt;items&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.<a name="line.550"></a>
 <span class="sourceLineNo">551</span>    *    Can be either a {@link Schema} or {@link SchemaArray} depending on what value was used to set it.<a name="line.551"></a>
 <span class="sourceLineNo">552</span>    */<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   @BeanProperty(swap=SchemaOrSchemaArraySwap.class)<a name="line.553"></a>
+<span class="sourceLineNo">553</span>   @Swap(SchemaOrSchemaArraySwap.class)<a name="line.553"></a>
 <span class="sourceLineNo">554</span>   public Object getItems() {<a name="line.554"></a>
 <span class="sourceLineNo">555</span>      if (itemsSchema != null)<a name="line.555"></a>
 <span class="sourceLineNo">556</span>         return itemsSchema;<a name="line.556"></a>
@@ -835,7 +835,7 @@
 <span class="sourceLineNo">827</span>    *    not set.<a name="line.827"></a>
 <span class="sourceLineNo">828</span>    *    Can be either a {@link Boolean} or {@link SchemaArray} depending on what value was used to set it.<a name="line.828"></a>
 <span class="sourceLineNo">829</span>    */<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   @BeanProperty(swap=BooleanOrSchemaArraySwap.class)<a name="line.830"></a>
+<span class="sourceLineNo">830</span>   @Swap(BooleanOrSchemaArraySwap.class)<a name="line.830"></a>
 <span class="sourceLineNo">831</span>   public Object getAdditionalItems() {<a name="line.831"></a>
 <span class="sourceLineNo">832</span>      if (additionalItemsBoolean != null)<a name="line.832"></a>
 <span class="sourceLineNo">833</span>         return additionalItemsBoolean;<a name="line.833"></a>
@@ -1115,7 +1115,7 @@
 <span class="sourceLineNo">1107</span>    *    is not set.<a name="line.1107"></a>
 <span class="sourceLineNo">1108</span>    *    Can be either a {@link Boolean} or {@link SchemaArray} depending on what value was used to set it.<a name="line.1108"></a>
 <span class="sourceLineNo">1109</span>    */<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>   @BeanProperty(swap=BooleanOrSchemaSwap.class)<a name="line.1110"></a>
+<span class="sourceLineNo">1110</span>   @Swap(BooleanOrSchemaSwap.class)<a name="line.1110"></a>
 <span class="sourceLineNo">1111</span>   public Object getAdditionalProperties() {<a name="line.1111"></a>
 <span class="sourceLineNo">1112</span>      if (additionalPropertiesBoolean != null)<a name="line.1112"></a>
 <span class="sourceLineNo">1113</span>         return additionalItemsBoolean;<a name="line.1113"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.JsonTypeOrJsonTypeArraySwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.JsonTypeOrJsonTypeArraySwap.html b/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.JsonTypeOrJsonTypeArraySwap.html
index 3f8181a..023c575 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.JsonTypeOrJsonTypeArraySwap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.JsonTypeOrJsonTypeArraySwap.html
@@ -234,7 +234,7 @@
 <span class="sourceLineNo">226</span>    *    The value of the &lt;property&gt;type&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.<a name="line.226"></a>
 <span class="sourceLineNo">227</span>    *    Can be either a {@link JsonType} or {@link JsonTypeArray} depending on what value was used to set it.<a name="line.227"></a>
 <span class="sourceLineNo">228</span>    */<a name="line.228"></a>
-<span class="sourceLineNo">229</span>   @BeanProperty(swap=JsonTypeOrJsonTypeArraySwap.class)<a name="line.229"></a>
+<span class="sourceLineNo">229</span>   @Swap(JsonTypeOrJsonTypeArraySwap.class)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>   public Object getType() {<a name="line.230"></a>
 <span class="sourceLineNo">231</span>      if (typeJsonType != null)<a name="line.231"></a>
 <span class="sourceLineNo">232</span>         return typeJsonType;<a name="line.232"></a>
@@ -558,7 +558,7 @@
 <span class="sourceLineNo">550</span>    *    The value of the &lt;property&gt;items&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.<a name="line.550"></a>
 <span class="sourceLineNo">551</span>    *    Can be either a {@link Schema} or {@link SchemaArray} depending on what value was used to set it.<a name="line.551"></a>
 <span class="sourceLineNo">552</span>    */<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   @BeanProperty(swap=SchemaOrSchemaArraySwap.class)<a name="line.553"></a>
+<span class="sourceLineNo">553</span>   @Swap(SchemaOrSchemaArraySwap.class)<a name="line.553"></a>
 <span class="sourceLineNo">554</span>   public Object getItems() {<a name="line.554"></a>
 <span class="sourceLineNo">555</span>      if (itemsSchema != null)<a name="line.555"></a>
 <span class="sourceLineNo">556</span>         return itemsSchema;<a name="line.556"></a>
@@ -835,7 +835,7 @@
 <span class="sourceLineNo">827</span>    *    not set.<a name="line.827"></a>
 <span class="sourceLineNo">828</span>    *    Can be either a {@link Boolean} or {@link SchemaArray} depending on what value was used to set it.<a name="line.828"></a>
 <span class="sourceLineNo">829</span>    */<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   @BeanProperty(swap=BooleanOrSchemaArraySwap.class)<a name="line.830"></a>
+<span class="sourceLineNo">830</span>   @Swap(BooleanOrSchemaArraySwap.class)<a name="line.830"></a>
 <span class="sourceLineNo">831</span>   public Object getAdditionalItems() {<a name="line.831"></a>
 <span class="sourceLineNo">832</span>      if (additionalItemsBoolean != null)<a name="line.832"></a>
 <span class="sourceLineNo">833</span>         return additionalItemsBoolean;<a name="line.833"></a>
@@ -1115,7 +1115,7 @@
 <span class="sourceLineNo">1107</span>    *    is not set.<a name="line.1107"></a>
 <span class="sourceLineNo">1108</span>    *    Can be either a {@link Boolean} or {@link SchemaArray} depending on what value was used to set it.<a name="line.1108"></a>
 <span class="sourceLineNo">1109</span>    */<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>   @BeanProperty(swap=BooleanOrSchemaSwap.class)<a name="line.1110"></a>
+<span class="sourceLineNo">1110</span>   @Swap(BooleanOrSchemaSwap.class)<a name="line.1110"></a>
 <span class="sourceLineNo">1111</span>   public Object getAdditionalProperties() {<a name="line.1111"></a>
 <span class="sourceLineNo">1112</span>      if (additionalPropertiesBoolean != null)<a name="line.1112"></a>
 <span class="sourceLineNo">1113</span>         return additionalItemsBoolean;<a name="line.1113"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.SchemaOrSchemaArraySwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.SchemaOrSchemaArraySwap.html b/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.SchemaOrSchemaArraySwap.html
index 3f8181a..023c575 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.SchemaOrSchemaArraySwap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.SchemaOrSchemaArraySwap.html
@@ -234,7 +234,7 @@
 <span class="sourceLineNo">226</span>    *    The value of the &lt;property&gt;type&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.<a name="line.226"></a>
 <span class="sourceLineNo">227</span>    *    Can be either a {@link JsonType} or {@link JsonTypeArray} depending on what value was used to set it.<a name="line.227"></a>
 <span class="sourceLineNo">228</span>    */<a name="line.228"></a>
-<span class="sourceLineNo">229</span>   @BeanProperty(swap=JsonTypeOrJsonTypeArraySwap.class)<a name="line.229"></a>
+<span class="sourceLineNo">229</span>   @Swap(JsonTypeOrJsonTypeArraySwap.class)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>   public Object getType() {<a name="line.230"></a>
 <span class="sourceLineNo">231</span>      if (typeJsonType != null)<a name="line.231"></a>
 <span class="sourceLineNo">232</span>         return typeJsonType;<a name="line.232"></a>
@@ -558,7 +558,7 @@
 <span class="sourceLineNo">550</span>    *    The value of the &lt;property&gt;items&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.<a name="line.550"></a>
 <span class="sourceLineNo">551</span>    *    Can be either a {@link Schema} or {@link SchemaArray} depending on what value was used to set it.<a name="line.551"></a>
 <span class="sourceLineNo">552</span>    */<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   @BeanProperty(swap=SchemaOrSchemaArraySwap.class)<a name="line.553"></a>
+<span class="sourceLineNo">553</span>   @Swap(SchemaOrSchemaArraySwap.class)<a name="line.553"></a>
 <span class="sourceLineNo">554</span>   public Object getItems() {<a name="line.554"></a>
 <span class="sourceLineNo">555</span>      if (itemsSchema != null)<a name="line.555"></a>
 <span class="sourceLineNo">556</span>         return itemsSchema;<a name="line.556"></a>
@@ -835,7 +835,7 @@
 <span class="sourceLineNo">827</span>    *    not set.<a name="line.827"></a>
 <span class="sourceLineNo">828</span>    *    Can be either a {@link Boolean} or {@link SchemaArray} depending on what value was used to set it.<a name="line.828"></a>
 <span class="sourceLineNo">829</span>    */<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   @BeanProperty(swap=BooleanOrSchemaArraySwap.class)<a name="line.830"></a>
+<span class="sourceLineNo">830</span>   @Swap(BooleanOrSchemaArraySwap.class)<a name="line.830"></a>
 <span class="sourceLineNo">831</span>   public Object getAdditionalItems() {<a name="line.831"></a>
 <span class="sourceLineNo">832</span>      if (additionalItemsBoolean != null)<a name="line.832"></a>
 <span class="sourceLineNo">833</span>         return additionalItemsBoolean;<a name="line.833"></a>
@@ -1115,7 +1115,7 @@
 <span class="sourceLineNo">1107</span>    *    is not set.<a name="line.1107"></a>
 <span class="sourceLineNo">1108</span>    *    Can be either a {@link Boolean} or {@link SchemaArray} depending on what value was used to set it.<a name="line.1108"></a>
 <span class="sourceLineNo">1109</span>    */<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>   @BeanProperty(swap=BooleanOrSchemaSwap.class)<a name="line.1110"></a>
+<span class="sourceLineNo">1110</span>   @Swap(BooleanOrSchemaSwap.class)<a name="line.1110"></a>
 <span class="sourceLineNo">1111</span>   public Object getAdditionalProperties() {<a name="line.1111"></a>
 <span class="sourceLineNo">1112</span>      if (additionalPropertiesBoolean != null)<a name="line.1112"></a>
 <span class="sourceLineNo">1113</span>         return additionalItemsBoolean;<a name="line.1113"></a>


[33/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/BeanMap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/BeanMap.html b/content/site/apidocs/org/apache/juneau/BeanMap.html
index f682882..273a8da 100644
--- a/content/site/apidocs/org/apache/juneau/BeanMap.html
+++ b/content/site/apidocs/org/apache/juneau/BeanMap.html
@@ -578,7 +578,7 @@ implements <a href="../../../org/apache/juneau/Delegate.html" title="interface i
  in a transformed value.
  For example, if the bean property type class is a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a> and the bean property has the
  <a href="../../../org/apache/juneau/transforms/DateSwap.ISO8601DT.html" title="class in org.apache.juneau.transforms"><code>DateSwap.ISO8601DT</code></a> swap associated with it through the
- <a href="../../../org/apache/juneau/annotation/BeanProperty.html#swap--"><code>@BeanProperty.swap()</code></a> annotation, the value being passed in must be
+ <a href="../../../org/apache/juneau/annotation/Swap.html#value--"><code>@Swap.value()</code></a> annotation, the value being passed in must be
  a String containing an ISO8601 date-time string value.
 
  <h5 class='section'>Example:</h5>
@@ -651,7 +651,7 @@ implements <a href="../../../org/apache/juneau/Delegate.html" title="interface i
  will return the transformed value.
  For example, if the bean property type class is a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a> and the bean property has the
  <a href="../../../org/apache/juneau/transforms/DateSwap.ISO8601DT.html" title="class in org.apache.juneau.transforms"><code>DateSwap.ISO8601DT</code></a> swap associated with it through the
- <a href="../../../org/apache/juneau/annotation/BeanProperty.html#swap--"><code>@BeanProperty.swap()</code></a> annotation, this method will return a String containing an
+ <a href="../../../org/apache/juneau/annotation/Swap.html#value--"><code>@Swap.value()</code></a> annotation, this method will return a String containing an
  ISO8601 date-time string value.
 
  <h5 class='section'>Example:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/BeanMapEntry.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/BeanMapEntry.html b/content/site/apidocs/org/apache/juneau/BeanMapEntry.html
index 1cc3a1b..a6ed2e6 100644
--- a/content/site/apidocs/org/apache/juneau/BeanMapEntry.html
+++ b/content/site/apidocs/org/apache/juneau/BeanMapEntry.html
@@ -292,7 +292,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.Entry
  will return the transformed value.
  For example, if the bean property type class is a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a> and the bean property has the
  <a href="../../../org/apache/juneau/transforms/DateSwap.ISO8601DT.html" title="class in org.apache.juneau.transforms"><code>DateSwap.ISO8601DT</code></a> swap associated with it through the
- <a href="../../../org/apache/juneau/annotation/BeanProperty.html#swap--"><code>@BeanProperty.swap()</code></a> annotation, this method will return a String containing an
+ <a href="../../../org/apache/juneau/annotation/Swap.html#value--"><code>@Swap.value()</code></a> annotation, this method will return a String containing an
  ISO8601 date-time string value.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -321,7 +321,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.Entry
  in a transformed value.
  For example, if the bean property type class is a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a> and the bean property has the
  <a href="../../../org/apache/juneau/transforms/DateSwap.ISO8601DT.html" title="class in org.apache.juneau.transforms"><code>DateSwap.ISO8601DT</code></a> swap associated with it through the
- <a href="../../../org/apache/juneau/annotation/BeanProperty.html#swap--"><code>@BeanProperty.swap()</code></a> annotation, the value being passed in must be a String
+ <a href="../../../org/apache/juneau/annotation/Swap.html#value--"><code>@Swap.value()</code></a> annotation, the value being passed in must be a String
  containing an ISO8601 date-time string value.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.Builder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.Builder.html b/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.Builder.html
index 130bcf0..eaea951 100644
--- a/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.Builder.html
+++ b/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.Builder.html
@@ -215,7 +215,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>build</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/BeanPropertyMeta.html" title="class in org.apache.juneau">BeanPropertyMeta</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.Builder.html#line.223">build</a>()</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/BeanPropertyMeta.html" title="class in org.apache.juneau">BeanPropertyMeta</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.Builder.html#line.232">build</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>A new BeanPropertyMeta object using this builder.</dd>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.html b/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.html
index 9c31668..a1ce3ba 100644
--- a/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.html
+++ b/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.html
@@ -343,7 +343,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BeanPropertyMeta</h4>
-<pre>protected&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.268">BeanPropertyMeta</a>(<a href="../../../org/apache/juneau/BeanPropertyMeta.Builder.html" title="class in org.apache.juneau">BeanPropertyMeta.Builder</a>&nbsp;b)</pre>
+<pre>protected&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.291">BeanPropertyMeta</a>(<a href="../../../org/apache/juneau/BeanPropertyMeta.Builder.html" title="class in org.apache.juneau">BeanPropertyMeta.Builder</a>&nbsp;b)</pre>
 <div class="block">Creates a new BeanPropertyMeta using the contents of the specified builder.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -365,7 +365,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getName</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.292">getName</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.315">getName</a>()</pre>
 <div class="block">Returns the name of this bean property.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -380,7 +380,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <li class="blockList">
 <h4>getBeanMeta</h4>
 <pre><a href="../../../org/apache/juneau/annotation/BeanIgnore.html" title="annotation in org.apache.juneau.annotation">@BeanIgnore</a>
-public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in org.apache.juneau">BeanMeta</a>&lt;?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.302">getBeanMeta</a>()</pre>
+public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in org.apache.juneau">BeanMeta</a>&lt;?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.325">getBeanMeta</a>()</pre>
 <div class="block">Returns the bean meta that this property belongs to.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -394,7 +394,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>getGetter</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.311">getGetter</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.334">getGetter</a>()</pre>
 <div class="block">Returns the getter method for this property.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -408,7 +408,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>getSetter</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.320">getSetter</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.343">getSetter</a>()</pre>
 <div class="block">Returns the setter method for this property.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -422,7 +422,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>getField</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.329">getField</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.352">getField</a>()</pre>
 <div class="block">Returns the field for this property.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -436,7 +436,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>getClassMeta</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.344">getClassMeta</a>()</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.367">getClassMeta</a>()</pre>
 <div class="block">Returns the <a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau"><code>ClassMeta</code></a> of the class of this property.
 
  <p>
@@ -456,7 +456,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>getBeanRegistry</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/BeanRegistry.html" title="class in org.apache.juneau">BeanRegistry</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.360">getBeanRegistry</a>()</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/BeanRegistry.html" title="class in org.apache.juneau">BeanRegistry</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.383">getBeanRegistry</a>()</pre>
 <div class="block">Returns the bean dictionary in use for this bean property.
 
  <p>
@@ -477,7 +477,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>isUri</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.377">isUri</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.400">isUri</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this bean property is a URI.
 
  <p>
@@ -499,7 +499,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>isDyna</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.386">isDyna</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.409">isDyna</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this bean property is named <js>"*"</js>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -513,7 +513,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>getProperties</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.396">getProperties</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.419">getProperties</a>()</pre>
 <div class="block">Returns the override list of properties defined through a <a href="../../../org/apache/juneau/annotation/BeanProperty.html#properties--"><code>BeanProperty.properties()</code></a> annotation
  on this property.</div>
 <dl>
@@ -528,7 +528,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>getExtendedMeta</h4>
-<pre>public&nbsp;&lt;M extends <a href="../../../org/apache/juneau/BeanPropertyMetaExtended.html" title="class in org.apache.juneau">BeanPropertyMetaExtended</a>&gt;&nbsp;M&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.406">getExtendedMeta</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;M&gt;&nbsp;c)</pre>
+<pre>public&nbsp;&lt;M extends <a href="../../../org/apache/juneau/BeanPropertyMetaExtended.html" title="class in org.apache.juneau">BeanPropertyMetaExtended</a>&gt;&nbsp;M&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.429">getExtendedMeta</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;M&gt;&nbsp;c)</pre>
 <div class="block">Returns the language-specified extended metadata on this bean property.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -544,7 +544,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.419">get</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a>&lt;?&gt;&nbsp;m,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.442">get</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a>&lt;?&gt;&nbsp;m,
                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;pName)</pre>
 <div class="block">Equivalent to calling <a href="../../../org/apache/juneau/BeanMap.html#get-java.lang.Object-"><code>BeanMap.get(Object)</code></a>, but is faster since it avoids looking up the property meta.</div>
 <dl>
@@ -562,7 +562,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>getRaw</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.448">getRaw</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a>&lt;?&gt;&nbsp;m,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.471">getRaw</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a>&lt;?&gt;&nbsp;m,
                      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;pName)</pre>
 <div class="block">Equivalent to calling <a href="../../../org/apache/juneau/BeanMap.html#getRaw-java.lang.Object-"><code>BeanMap.getRaw(Object)</code></a>, but is faster since it avoids looking up the property meta.</div>
 <dl>
@@ -580,7 +580,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>set</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.511">set</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a>&lt;?&gt;&nbsp;m,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.534">set</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a>&lt;?&gt;&nbsp;m,
                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;pName,
                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value)
            throws <a href="../../../org/apache/juneau/BeanRuntimeException.html" title="class in org.apache.juneau">BeanRuntimeException</a></pre>
@@ -604,7 +604,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>getDynaMap</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.736">getDynaMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;bean)
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.759">getDynaMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;bean)
                               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a>,
                                      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalAccessException.html?is-external=true" title="class or interface in java.lang">IllegalAccessException</a>,
                                      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/InvocationTargetException.html?is-external=true" title="class or interface in java.lang.reflect">InvocationTargetException</a></pre>
@@ -632,7 +632,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>setArray</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.759">setArray</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;bean,
+<pre>protected&nbsp;void&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.782">setArray</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;bean,
                         <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&nbsp;l)
                  throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a>,
                         <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalAccessException.html?is-external=true" title="class or interface in java.lang">IllegalAccessException</a>,
@@ -658,7 +658,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>add</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.776">add</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a>&lt;?&gt;&nbsp;m,
+<pre>public&nbsp;void&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.799">add</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a>&lt;?&gt;&nbsp;m,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;pName,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value)
          throws <a href="../../../org/apache/juneau/BeanRuntimeException.html" title="class in org.apache.juneau">BeanRuntimeException</a></pre>
@@ -683,7 +683,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>add</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.853">add</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a>&lt;?&gt;&nbsp;m,
+<pre>public&nbsp;void&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.876">add</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a>&lt;?&gt;&nbsp;m,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;pName,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value)
@@ -706,7 +706,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>findAnnotations</h4>
-<pre>public&nbsp;&lt;A extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;A&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.931">findAnnotations</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;A&gt;&nbsp;a)</pre>
+<pre>public&nbsp;&lt;A extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;A&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.954">findAnnotations</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;A&gt;&nbsp;a)</pre>
 <div class="block">Returns all instances of the specified annotation in the hierarchy of this bean property.
 
  <p>
@@ -726,7 +726,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockList">
 <li class="blockList">
 <h4>getAnnotation</h4>
-<pre>public&nbsp;&lt;A extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>&gt;&nbsp;A&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.960">getAnnotation</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;A&gt;&nbsp;a)</pre>
+<pre>public&nbsp;&lt;A extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>&gt;&nbsp;A&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.983">getAnnotation</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;A&gt;&nbsp;a)</pre>
 <div class="block">Returns the specified annotation on the field or methods that define this property.
 
  <p>
@@ -746,7 +746,7 @@ public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.1037">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.1060">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>


[05/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.PlainText.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.PlainText.html b/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.PlainText.html
index b0ee597..a58cf63 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.PlainText.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.PlainText.html
@@ -28,95 +28,87 @@
 <span class="sourceLineNo">020</span>import org.apache.juneau.html.*;<a name="line.20"></a>
 <span class="sourceLineNo">021</span>import org.apache.juneau.json.*;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import org.apache.juneau.parser.*;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.juneau.serializer.*;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.juneau.transform.*;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.juneau.xml.*;<a name="line.25"></a>
-<span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * Transforms the contents of a {@link Reader} into an {@code Object}.<a name="line.28"></a>
-<span class="sourceLineNo">029</span> *<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * &lt;h5 class='section'&gt;Description:&lt;/h5&gt;<a name="line.30"></a>
-<span class="sourceLineNo">031</span> *<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * The {@code Reader} must contain JSON, Juneau-generated XML (output from {@link XmlSerializer}), or Juneau-generated<a name="line.32"></a>
-<span class="sourceLineNo">033</span> * HTML (output from {@link JsonSerializer}) in order to be parsed correctly.<a name="line.33"></a>
-<span class="sourceLineNo">034</span> *<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * &lt;p&gt;<a name="line.35"></a>
-<span class="sourceLineNo">036</span> * Useful for serializing models that contain {@code Readers} created by {@code RestCall} instances.<a name="line.36"></a>
-<span class="sourceLineNo">037</span> *<a name="line.37"></a>
-<span class="sourceLineNo">038</span> * &lt;p&gt;<a name="line.38"></a>
-<span class="sourceLineNo">039</span> * This is a one-way transform, since {@code Readers} cannot be reconstituted.<a name="line.39"></a>
-<span class="sourceLineNo">040</span> *<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * &lt;h6 class='topic'&gt;Behavior-specific subclasses&lt;/h6&gt;<a name="line.41"></a>
-<span class="sourceLineNo">042</span> *<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * The following direct subclasses are provided for convenience:<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * &lt;ul&gt;<a name="line.44"></a>
-<span class="sourceLineNo">045</span> *    &lt;li&gt;{@link Json} - Parses JSON text.<a name="line.45"></a>
-<span class="sourceLineNo">046</span> *    &lt;li&gt;{@link Xml} - Parses XML text.<a name="line.46"></a>
-<span class="sourceLineNo">047</span> *    &lt;li&gt;{@link Html} - Parses HTML text.<a name="line.47"></a>
-<span class="sourceLineNo">048</span> *    &lt;li&gt;{@link PlainText} - Parses plain text.<a name="line.48"></a>
-<span class="sourceLineNo">049</span> * &lt;/ul&gt;<a name="line.49"></a>
-<span class="sourceLineNo">050</span> */<a name="line.50"></a>
-<span class="sourceLineNo">051</span>public class ReaderSwap extends PojoSwap&lt;Reader,Object&gt; {<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>   /** Reader transform for reading JSON text. */<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   public static class Json extends ReaderSwap {<a name="line.54"></a>
-<span class="sourceLineNo">055</span>      /** Constructor */<a name="line.55"></a>
-<span class="sourceLineNo">056</span>      public Json() {<a name="line.56"></a>
-<span class="sourceLineNo">057</span>         super(JsonParser.DEFAULT);<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      }<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   }<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>   /** Reader transform for reading XML text. */<a name="line.61"></a>
-<span class="sourceLineNo">062</span>   public static class Xml extends ReaderSwap {<a name="line.62"></a>
-<span class="sourceLineNo">063</span>      /** Constructor */<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      public Xml() {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>         super(XmlParser.DEFAULT);<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      }<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>   /** Reader transform for reading HTML text. */<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   public static class Html extends ReaderSwap {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>      /** Constructor */<a name="line.71"></a>
-<span class="sourceLineNo">072</span>      public Html() {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>         super(HtmlParser.DEFAULT);<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      }<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>   /** Reader transform for reading plain text. */<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   public static class PlainText extends ReaderSwap {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      /** Constructor */<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      public PlainText() {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>         super(null);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>   /** The parser to use to parse the contents of the Reader. */<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   private ReaderParser parser;<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>   /**<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    * @param parser The parser to use to convert the contents of the reader to Java objects.<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    */<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   public ReaderSwap(ReaderParser parser) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      this.parser = parser;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   }<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>   /**<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    * Converts the specified {@link Reader} to an {@link Object} whose type is determined by the contents of the reader.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   @Override /* PojoSwap */<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   public Object swap(BeanSession session, Reader o) throws SerializeException {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      try {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>         if (parser == null)<a name="line.101"></a>
-<span class="sourceLineNo">102</span>            return read(o);<a name="line.102"></a>
-<span class="sourceLineNo">103</span>         return parser.parse(o, Object.class);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      } catch (IOException e) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>         return e.getLocalizedMessage();<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      } catch (Exception e) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>         throw new SerializeException("ReaderSwap could not transform object of type ''{0}''",<a name="line.107"></a>
-<span class="sourceLineNo">108</span>            o == null ? null : o.getClass().getName()).initCause(e);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      }<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   }<a name="line.110"></a>
-<span class="sourceLineNo">111</span>}<a name="line.111"></a>
+<span class="sourceLineNo">023</span>import org.apache.juneau.transform.*;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.juneau.xml.*;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>/**<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Transforms the contents of a {@link Reader} into an {@code Object}.<a name="line.27"></a>
+<span class="sourceLineNo">028</span> *<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * &lt;h5 class='section'&gt;Description:&lt;/h5&gt;<a name="line.29"></a>
+<span class="sourceLineNo">030</span> *<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * The {@code Reader} must contain JSON, Juneau-generated XML (output from {@link XmlSerializer}), or Juneau-generated<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * HTML (output from {@link JsonSerializer}) in order to be parsed correctly.<a name="line.32"></a>
+<span class="sourceLineNo">033</span> *<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * &lt;p&gt;<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * Useful for serializing models that contain {@code Readers} created by {@code RestCall} instances.<a name="line.35"></a>
+<span class="sourceLineNo">036</span> *<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * &lt;p&gt;<a name="line.37"></a>
+<span class="sourceLineNo">038</span> * This is a one-way transform, since {@code Readers} cannot be reconstituted.<a name="line.38"></a>
+<span class="sourceLineNo">039</span> *<a name="line.39"></a>
+<span class="sourceLineNo">040</span> * &lt;h6 class='topic'&gt;Behavior-specific subclasses&lt;/h6&gt;<a name="line.40"></a>
+<span class="sourceLineNo">041</span> *<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * The following direct subclasses are provided for convenience:<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * &lt;ul&gt;<a name="line.43"></a>
+<span class="sourceLineNo">044</span> *    &lt;li&gt;{@link Json} - Parses JSON text.<a name="line.44"></a>
+<span class="sourceLineNo">045</span> *    &lt;li&gt;{@link Xml} - Parses XML text.<a name="line.45"></a>
+<span class="sourceLineNo">046</span> *    &lt;li&gt;{@link Html} - Parses HTML text.<a name="line.46"></a>
+<span class="sourceLineNo">047</span> *    &lt;li&gt;{@link PlainText} - Parses plain text.<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * &lt;/ul&gt;<a name="line.48"></a>
+<span class="sourceLineNo">049</span> */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>public class ReaderSwap extends PojoSwap&lt;Reader,Object&gt; {<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>   /** Reader transform for reading JSON text. */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>   public static class Json extends ReaderSwap {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      /** Constructor */<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      public Json() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         super(JsonParser.DEFAULT);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      }<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>   /** Reader transform for reading XML text. */<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   public static class Xml extends ReaderSwap {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>      /** Constructor */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      public Xml() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         super(XmlParser.DEFAULT);<a name="line.64"></a>
+<span class="sourceLineNo">065</span>      }<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>   /** Reader transform for reading HTML text. */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   public static class Html extends ReaderSwap {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      /** Constructor */<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      public Html() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         super(HtmlParser.DEFAULT);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>   /** Reader transform for reading plain text. */<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   public static class PlainText extends ReaderSwap {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      /** Constructor */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      public PlainText() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         super(null);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>   }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>   /** The parser to use to parse the contents of the Reader. */<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   private ReaderParser parser;<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>   /**<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    * @param parser The parser to use to convert the contents of the reader to Java objects.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   public ReaderSwap(ReaderParser parser) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      this.parser = parser;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>   }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>   /**<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    * Converts the specified {@link Reader} to an {@link Object} whose type is determined by the contents of the reader.<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    */<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   @Override /* PojoSwap */<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   public Object swap(BeanSession session, Reader o) throws Exception {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      if (parser == null)<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         return read(o);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      return parser.parse(o, Object.class);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>}<a name="line.103"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.Xml.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.Xml.html b/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.Xml.html
index b0ee597..a58cf63 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.Xml.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.Xml.html
@@ -28,95 +28,87 @@
 <span class="sourceLineNo">020</span>import org.apache.juneau.html.*;<a name="line.20"></a>
 <span class="sourceLineNo">021</span>import org.apache.juneau.json.*;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import org.apache.juneau.parser.*;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.juneau.serializer.*;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.juneau.transform.*;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.juneau.xml.*;<a name="line.25"></a>
-<span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * Transforms the contents of a {@link Reader} into an {@code Object}.<a name="line.28"></a>
-<span class="sourceLineNo">029</span> *<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * &lt;h5 class='section'&gt;Description:&lt;/h5&gt;<a name="line.30"></a>
-<span class="sourceLineNo">031</span> *<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * The {@code Reader} must contain JSON, Juneau-generated XML (output from {@link XmlSerializer}), or Juneau-generated<a name="line.32"></a>
-<span class="sourceLineNo">033</span> * HTML (output from {@link JsonSerializer}) in order to be parsed correctly.<a name="line.33"></a>
-<span class="sourceLineNo">034</span> *<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * &lt;p&gt;<a name="line.35"></a>
-<span class="sourceLineNo">036</span> * Useful for serializing models that contain {@code Readers} created by {@code RestCall} instances.<a name="line.36"></a>
-<span class="sourceLineNo">037</span> *<a name="line.37"></a>
-<span class="sourceLineNo">038</span> * &lt;p&gt;<a name="line.38"></a>
-<span class="sourceLineNo">039</span> * This is a one-way transform, since {@code Readers} cannot be reconstituted.<a name="line.39"></a>
-<span class="sourceLineNo">040</span> *<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * &lt;h6 class='topic'&gt;Behavior-specific subclasses&lt;/h6&gt;<a name="line.41"></a>
-<span class="sourceLineNo">042</span> *<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * The following direct subclasses are provided for convenience:<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * &lt;ul&gt;<a name="line.44"></a>
-<span class="sourceLineNo">045</span> *    &lt;li&gt;{@link Json} - Parses JSON text.<a name="line.45"></a>
-<span class="sourceLineNo">046</span> *    &lt;li&gt;{@link Xml} - Parses XML text.<a name="line.46"></a>
-<span class="sourceLineNo">047</span> *    &lt;li&gt;{@link Html} - Parses HTML text.<a name="line.47"></a>
-<span class="sourceLineNo">048</span> *    &lt;li&gt;{@link PlainText} - Parses plain text.<a name="line.48"></a>
-<span class="sourceLineNo">049</span> * &lt;/ul&gt;<a name="line.49"></a>
-<span class="sourceLineNo">050</span> */<a name="line.50"></a>
-<span class="sourceLineNo">051</span>public class ReaderSwap extends PojoSwap&lt;Reader,Object&gt; {<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>   /** Reader transform for reading JSON text. */<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   public static class Json extends ReaderSwap {<a name="line.54"></a>
-<span class="sourceLineNo">055</span>      /** Constructor */<a name="line.55"></a>
-<span class="sourceLineNo">056</span>      public Json() {<a name="line.56"></a>
-<span class="sourceLineNo">057</span>         super(JsonParser.DEFAULT);<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      }<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   }<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>   /** Reader transform for reading XML text. */<a name="line.61"></a>
-<span class="sourceLineNo">062</span>   public static class Xml extends ReaderSwap {<a name="line.62"></a>
-<span class="sourceLineNo">063</span>      /** Constructor */<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      public Xml() {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>         super(XmlParser.DEFAULT);<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      }<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>   /** Reader transform for reading HTML text. */<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   public static class Html extends ReaderSwap {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>      /** Constructor */<a name="line.71"></a>
-<span class="sourceLineNo">072</span>      public Html() {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>         super(HtmlParser.DEFAULT);<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      }<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>   /** Reader transform for reading plain text. */<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   public static class PlainText extends ReaderSwap {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      /** Constructor */<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      public PlainText() {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>         super(null);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>   /** The parser to use to parse the contents of the Reader. */<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   private ReaderParser parser;<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>   /**<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    * @param parser The parser to use to convert the contents of the reader to Java objects.<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    */<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   public ReaderSwap(ReaderParser parser) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      this.parser = parser;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   }<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>   /**<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    * Converts the specified {@link Reader} to an {@link Object} whose type is determined by the contents of the reader.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   @Override /* PojoSwap */<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   public Object swap(BeanSession session, Reader o) throws SerializeException {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      try {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>         if (parser == null)<a name="line.101"></a>
-<span class="sourceLineNo">102</span>            return read(o);<a name="line.102"></a>
-<span class="sourceLineNo">103</span>         return parser.parse(o, Object.class);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      } catch (IOException e) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>         return e.getLocalizedMessage();<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      } catch (Exception e) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>         throw new SerializeException("ReaderSwap could not transform object of type ''{0}''",<a name="line.107"></a>
-<span class="sourceLineNo">108</span>            o == null ? null : o.getClass().getName()).initCause(e);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      }<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   }<a name="line.110"></a>
-<span class="sourceLineNo">111</span>}<a name="line.111"></a>
+<span class="sourceLineNo">023</span>import org.apache.juneau.transform.*;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.juneau.xml.*;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>/**<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Transforms the contents of a {@link Reader} into an {@code Object}.<a name="line.27"></a>
+<span class="sourceLineNo">028</span> *<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * &lt;h5 class='section'&gt;Description:&lt;/h5&gt;<a name="line.29"></a>
+<span class="sourceLineNo">030</span> *<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * The {@code Reader} must contain JSON, Juneau-generated XML (output from {@link XmlSerializer}), or Juneau-generated<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * HTML (output from {@link JsonSerializer}) in order to be parsed correctly.<a name="line.32"></a>
+<span class="sourceLineNo">033</span> *<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * &lt;p&gt;<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * Useful for serializing models that contain {@code Readers} created by {@code RestCall} instances.<a name="line.35"></a>
+<span class="sourceLineNo">036</span> *<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * &lt;p&gt;<a name="line.37"></a>
+<span class="sourceLineNo">038</span> * This is a one-way transform, since {@code Readers} cannot be reconstituted.<a name="line.38"></a>
+<span class="sourceLineNo">039</span> *<a name="line.39"></a>
+<span class="sourceLineNo">040</span> * &lt;h6 class='topic'&gt;Behavior-specific subclasses&lt;/h6&gt;<a name="line.40"></a>
+<span class="sourceLineNo">041</span> *<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * The following direct subclasses are provided for convenience:<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * &lt;ul&gt;<a name="line.43"></a>
+<span class="sourceLineNo">044</span> *    &lt;li&gt;{@link Json} - Parses JSON text.<a name="line.44"></a>
+<span class="sourceLineNo">045</span> *    &lt;li&gt;{@link Xml} - Parses XML text.<a name="line.45"></a>
+<span class="sourceLineNo">046</span> *    &lt;li&gt;{@link Html} - Parses HTML text.<a name="line.46"></a>
+<span class="sourceLineNo">047</span> *    &lt;li&gt;{@link PlainText} - Parses plain text.<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * &lt;/ul&gt;<a name="line.48"></a>
+<span class="sourceLineNo">049</span> */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>public class ReaderSwap extends PojoSwap&lt;Reader,Object&gt; {<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>   /** Reader transform for reading JSON text. */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>   public static class Json extends ReaderSwap {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      /** Constructor */<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      public Json() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         super(JsonParser.DEFAULT);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      }<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>   /** Reader transform for reading XML text. */<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   public static class Xml extends ReaderSwap {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>      /** Constructor */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      public Xml() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         super(XmlParser.DEFAULT);<a name="line.64"></a>
+<span class="sourceLineNo">065</span>      }<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>   /** Reader transform for reading HTML text. */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   public static class Html extends ReaderSwap {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      /** Constructor */<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      public Html() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         super(HtmlParser.DEFAULT);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>   /** Reader transform for reading plain text. */<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   public static class PlainText extends ReaderSwap {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      /** Constructor */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      public PlainText() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         super(null);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>   }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>   /** The parser to use to parse the contents of the Reader. */<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   private ReaderParser parser;<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>   /**<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    * @param parser The parser to use to convert the contents of the reader to Java objects.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   public ReaderSwap(ReaderParser parser) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      this.parser = parser;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>   }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>   /**<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    * Converts the specified {@link Reader} to an {@link Object} whose type is determined by the contents of the reader.<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    */<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   @Override /* PojoSwap */<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   public Object swap(BeanSession session, Reader o) throws Exception {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      if (parser == null)<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         return read(o);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      return parser.parse(o, Object.class);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>}<a name="line.103"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.html b/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.html
index b0ee597..a58cf63 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/transforms/ReaderSwap.html
@@ -28,95 +28,87 @@
 <span class="sourceLineNo">020</span>import org.apache.juneau.html.*;<a name="line.20"></a>
 <span class="sourceLineNo">021</span>import org.apache.juneau.json.*;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import org.apache.juneau.parser.*;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.juneau.serializer.*;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.juneau.transform.*;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.juneau.xml.*;<a name="line.25"></a>
-<span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * Transforms the contents of a {@link Reader} into an {@code Object}.<a name="line.28"></a>
-<span class="sourceLineNo">029</span> *<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * &lt;h5 class='section'&gt;Description:&lt;/h5&gt;<a name="line.30"></a>
-<span class="sourceLineNo">031</span> *<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * The {@code Reader} must contain JSON, Juneau-generated XML (output from {@link XmlSerializer}), or Juneau-generated<a name="line.32"></a>
-<span class="sourceLineNo">033</span> * HTML (output from {@link JsonSerializer}) in order to be parsed correctly.<a name="line.33"></a>
-<span class="sourceLineNo">034</span> *<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * &lt;p&gt;<a name="line.35"></a>
-<span class="sourceLineNo">036</span> * Useful for serializing models that contain {@code Readers} created by {@code RestCall} instances.<a name="line.36"></a>
-<span class="sourceLineNo">037</span> *<a name="line.37"></a>
-<span class="sourceLineNo">038</span> * &lt;p&gt;<a name="line.38"></a>
-<span class="sourceLineNo">039</span> * This is a one-way transform, since {@code Readers} cannot be reconstituted.<a name="line.39"></a>
-<span class="sourceLineNo">040</span> *<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * &lt;h6 class='topic'&gt;Behavior-specific subclasses&lt;/h6&gt;<a name="line.41"></a>
-<span class="sourceLineNo">042</span> *<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * The following direct subclasses are provided for convenience:<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * &lt;ul&gt;<a name="line.44"></a>
-<span class="sourceLineNo">045</span> *    &lt;li&gt;{@link Json} - Parses JSON text.<a name="line.45"></a>
-<span class="sourceLineNo">046</span> *    &lt;li&gt;{@link Xml} - Parses XML text.<a name="line.46"></a>
-<span class="sourceLineNo">047</span> *    &lt;li&gt;{@link Html} - Parses HTML text.<a name="line.47"></a>
-<span class="sourceLineNo">048</span> *    &lt;li&gt;{@link PlainText} - Parses plain text.<a name="line.48"></a>
-<span class="sourceLineNo">049</span> * &lt;/ul&gt;<a name="line.49"></a>
-<span class="sourceLineNo">050</span> */<a name="line.50"></a>
-<span class="sourceLineNo">051</span>public class ReaderSwap extends PojoSwap&lt;Reader,Object&gt; {<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>   /** Reader transform for reading JSON text. */<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   public static class Json extends ReaderSwap {<a name="line.54"></a>
-<span class="sourceLineNo">055</span>      /** Constructor */<a name="line.55"></a>
-<span class="sourceLineNo">056</span>      public Json() {<a name="line.56"></a>
-<span class="sourceLineNo">057</span>         super(JsonParser.DEFAULT);<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      }<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   }<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>   /** Reader transform for reading XML text. */<a name="line.61"></a>
-<span class="sourceLineNo">062</span>   public static class Xml extends ReaderSwap {<a name="line.62"></a>
-<span class="sourceLineNo">063</span>      /** Constructor */<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      public Xml() {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>         super(XmlParser.DEFAULT);<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      }<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>   /** Reader transform for reading HTML text. */<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   public static class Html extends ReaderSwap {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>      /** Constructor */<a name="line.71"></a>
-<span class="sourceLineNo">072</span>      public Html() {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>         super(HtmlParser.DEFAULT);<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      }<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>   /** Reader transform for reading plain text. */<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   public static class PlainText extends ReaderSwap {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      /** Constructor */<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      public PlainText() {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>         super(null);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>   /** The parser to use to parse the contents of the Reader. */<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   private ReaderParser parser;<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>   /**<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    * @param parser The parser to use to convert the contents of the reader to Java objects.<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    */<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   public ReaderSwap(ReaderParser parser) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      this.parser = parser;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   }<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>   /**<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    * Converts the specified {@link Reader} to an {@link Object} whose type is determined by the contents of the reader.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   @Override /* PojoSwap */<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   public Object swap(BeanSession session, Reader o) throws SerializeException {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      try {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>         if (parser == null)<a name="line.101"></a>
-<span class="sourceLineNo">102</span>            return read(o);<a name="line.102"></a>
-<span class="sourceLineNo">103</span>         return parser.parse(o, Object.class);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      } catch (IOException e) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>         return e.getLocalizedMessage();<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      } catch (Exception e) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>         throw new SerializeException("ReaderSwap could not transform object of type ''{0}''",<a name="line.107"></a>
-<span class="sourceLineNo">108</span>            o == null ? null : o.getClass().getName()).initCause(e);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      }<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   }<a name="line.110"></a>
-<span class="sourceLineNo">111</span>}<a name="line.111"></a>
+<span class="sourceLineNo">023</span>import org.apache.juneau.transform.*;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.juneau.xml.*;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>/**<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Transforms the contents of a {@link Reader} into an {@code Object}.<a name="line.27"></a>
+<span class="sourceLineNo">028</span> *<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * &lt;h5 class='section'&gt;Description:&lt;/h5&gt;<a name="line.29"></a>
+<span class="sourceLineNo">030</span> *<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * The {@code Reader} must contain JSON, Juneau-generated XML (output from {@link XmlSerializer}), or Juneau-generated<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * HTML (output from {@link JsonSerializer}) in order to be parsed correctly.<a name="line.32"></a>
+<span class="sourceLineNo">033</span> *<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * &lt;p&gt;<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * Useful for serializing models that contain {@code Readers} created by {@code RestCall} instances.<a name="line.35"></a>
+<span class="sourceLineNo">036</span> *<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * &lt;p&gt;<a name="line.37"></a>
+<span class="sourceLineNo">038</span> * This is a one-way transform, since {@code Readers} cannot be reconstituted.<a name="line.38"></a>
+<span class="sourceLineNo">039</span> *<a name="line.39"></a>
+<span class="sourceLineNo">040</span> * &lt;h6 class='topic'&gt;Behavior-specific subclasses&lt;/h6&gt;<a name="line.40"></a>
+<span class="sourceLineNo">041</span> *<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * The following direct subclasses are provided for convenience:<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * &lt;ul&gt;<a name="line.43"></a>
+<span class="sourceLineNo">044</span> *    &lt;li&gt;{@link Json} - Parses JSON text.<a name="line.44"></a>
+<span class="sourceLineNo">045</span> *    &lt;li&gt;{@link Xml} - Parses XML text.<a name="line.45"></a>
+<span class="sourceLineNo">046</span> *    &lt;li&gt;{@link Html} - Parses HTML text.<a name="line.46"></a>
+<span class="sourceLineNo">047</span> *    &lt;li&gt;{@link PlainText} - Parses plain text.<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * &lt;/ul&gt;<a name="line.48"></a>
+<span class="sourceLineNo">049</span> */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>public class ReaderSwap extends PojoSwap&lt;Reader,Object&gt; {<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>   /** Reader transform for reading JSON text. */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>   public static class Json extends ReaderSwap {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      /** Constructor */<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      public Json() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         super(JsonParser.DEFAULT);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      }<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>   /** Reader transform for reading XML text. */<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   public static class Xml extends ReaderSwap {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>      /** Constructor */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      public Xml() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         super(XmlParser.DEFAULT);<a name="line.64"></a>
+<span class="sourceLineNo">065</span>      }<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>   /** Reader transform for reading HTML text. */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   public static class Html extends ReaderSwap {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      /** Constructor */<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      public Html() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         super(HtmlParser.DEFAULT);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>   /** Reader transform for reading plain text. */<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   public static class PlainText extends ReaderSwap {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      /** Constructor */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      public PlainText() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         super(null);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>   }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>   /** The parser to use to parse the contents of the Reader. */<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   private ReaderParser parser;<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>   /**<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    * @param parser The parser to use to convert the contents of the reader to Java objects.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   public ReaderSwap(ReaderParser parser) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      this.parser = parser;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>   }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>   /**<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    * Converts the specified {@link Reader} to an {@link Object} whose type is determined by the contents of the reader.<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    */<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   @Override /* PojoSwap */<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   public Object swap(BeanSession session, Reader o) throws Exception {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      if (parser == null)<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         return read(o);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      return parser.parse(o, Object.class);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>}<a name="line.103"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/transforms/StringFormatSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/transforms/StringFormatSwap.html b/content/site/apidocs/src-html/org/apache/juneau/transforms/StringFormatSwap.html
index 3f94c3b..d31b965 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/transforms/StringFormatSwap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/transforms/StringFormatSwap.html
@@ -22,36 +22,34 @@
 <span class="sourceLineNo">014</span><a name="line.14"></a>
 <span class="sourceLineNo">015</span>import org.apache.juneau.*;<a name="line.15"></a>
 <span class="sourceLineNo">016</span>import org.apache.juneau.annotation.*;<a name="line.16"></a>
-<span class="sourceLineNo">017</span>import org.apache.juneau.parser.*;<a name="line.17"></a>
-<span class="sourceLineNo">018</span>import org.apache.juneau.serializer.*;<a name="line.18"></a>
-<span class="sourceLineNo">019</span>import org.apache.juneau.transform.*;<a name="line.19"></a>
-<span class="sourceLineNo">020</span><a name="line.20"></a>
-<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
-<span class="sourceLineNo">022</span> * Built-in POJO swap implementation class for the {@link BeanProperty#format()} annotation.<a name="line.22"></a>
-<span class="sourceLineNo">023</span> */<a name="line.23"></a>
-<span class="sourceLineNo">024</span>public class StringFormatSwap extends StringSwap&lt;Object&gt; {<a name="line.24"></a>
+<span class="sourceLineNo">017</span>import org.apache.juneau.transform.*;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>/**<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * Built-in POJO swap implementation class for the {@link BeanProperty#format()} annotation.<a name="line.20"></a>
+<span class="sourceLineNo">021</span> */<a name="line.21"></a>
+<span class="sourceLineNo">022</span>public class StringFormatSwap extends StringSwap&lt;Object&gt; {<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>   private final String format;<a name="line.24"></a>
 <span class="sourceLineNo">025</span><a name="line.25"></a>
-<span class="sourceLineNo">026</span>   private final String format;<a name="line.26"></a>
-<span class="sourceLineNo">027</span><a name="line.27"></a>
-<span class="sourceLineNo">028</span>   /**<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    * Constructor.<a name="line.29"></a>
-<span class="sourceLineNo">030</span>    *<a name="line.30"></a>
-<span class="sourceLineNo">031</span>    * @param format The string format string.<a name="line.31"></a>
-<span class="sourceLineNo">032</span>    */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>   public StringFormatSwap(String format) {<a name="line.33"></a>
-<span class="sourceLineNo">034</span>      this.format = format;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>   }<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>   @Override /* PojoSwap */<a name="line.37"></a>
-<span class="sourceLineNo">038</span>   public String swap(BeanSession session, Object o) throws SerializeException {<a name="line.38"></a>
-<span class="sourceLineNo">039</span>      return String.format(format, o);<a name="line.39"></a>
-<span class="sourceLineNo">040</span>   }<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>   @Override /* PojoSwap */<a name="line.42"></a>
-<span class="sourceLineNo">043</span>   public Object unswap(BeanSession session, String f, ClassMeta&lt;?&gt; hint) throws ParseException {<a name="line.43"></a>
-<span class="sourceLineNo">044</span>      return session.convertToType(f, hint);<a name="line.44"></a>
-<span class="sourceLineNo">045</span>   }<a name="line.45"></a>
-<span class="sourceLineNo">046</span>}<a name="line.46"></a>
+<span class="sourceLineNo">026</span>   /**<a name="line.26"></a>
+<span class="sourceLineNo">027</span>    * Constructor.<a name="line.27"></a>
+<span class="sourceLineNo">028</span>    *<a name="line.28"></a>
+<span class="sourceLineNo">029</span>    * @param format The string format string.<a name="line.29"></a>
+<span class="sourceLineNo">030</span>    */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>   public StringFormatSwap(String format) {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>      this.format = format;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>   }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>   @Override /* PojoSwap */<a name="line.35"></a>
+<span class="sourceLineNo">036</span>   public String swap(BeanSession session, Object o) throws Exception {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>      return String.format(format, o);<a name="line.37"></a>
+<span class="sourceLineNo">038</span>   }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>   @Override /* PojoSwap */<a name="line.40"></a>
+<span class="sourceLineNo">041</span>   public Object unswap(BeanSession session, String f, ClassMeta&lt;?&gt; hint) throws Exception {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>      return session.convertToType(f, hint);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>   }<a name="line.43"></a>
+<span class="sourceLineNo">044</span>}<a name="line.44"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html b/content/site/apidocs/src-html/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html
index 5343fc7..3239ffd 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/transforms/XMLGregorianCalendarSwap.html
@@ -25,52 +25,50 @@
 <span class="sourceLineNo">017</span>import javax.xml.datatype.*;<a name="line.17"></a>
 <span class="sourceLineNo">018</span><a name="line.18"></a>
 <span class="sourceLineNo">019</span>import org.apache.juneau.*;<a name="line.19"></a>
-<span class="sourceLineNo">020</span>import org.apache.juneau.parser.*;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import org.apache.juneau.serializer.*;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.apache.juneau.transform.*;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>/**<a name="line.24"></a>
-<span class="sourceLineNo">025</span> * Transforms {@link XMLGregorianCalendar XMLGregorianCalendars} to ISO8601 date-time {@link String Strings}.<a name="line.25"></a>
-<span class="sourceLineNo">026</span> *<a name="line.26"></a>
-<span class="sourceLineNo">027</span> * &lt;p&gt;<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * Objects are converted to strings using {@link XMLGregorianCalendar#toXMLFormat()}.<a name="line.28"></a>
-<span class="sourceLineNo">029</span> *<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * &lt;p&gt;<a name="line.30"></a>
-<span class="sourceLineNo">031</span> * Strings are converted to objects using {@link DatatypeFactory#newXMLGregorianCalendar(String)}.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>public class XMLGregorianCalendarSwap extends StringSwap&lt;XMLGregorianCalendar&gt; {<a name="line.33"></a>
+<span class="sourceLineNo">020</span>import org.apache.juneau.transform.*;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>/**<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * Transforms {@link XMLGregorianCalendar XMLGregorianCalendars} to ISO8601 date-time {@link String Strings}.<a name="line.23"></a>
+<span class="sourceLineNo">024</span> *<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * &lt;p&gt;<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * Objects are converted to strings using {@link XMLGregorianCalendar#toXMLFormat()}.<a name="line.26"></a>
+<span class="sourceLineNo">027</span> *<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * &lt;p&gt;<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * Strings are converted to objects using {@link DatatypeFactory#newXMLGregorianCalendar(String)}.<a name="line.29"></a>
+<span class="sourceLineNo">030</span> */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>public class XMLGregorianCalendarSwap extends StringSwap&lt;XMLGregorianCalendar&gt; {<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>   private DatatypeFactory dtf;<a name="line.33"></a>
 <span class="sourceLineNo">034</span><a name="line.34"></a>
-<span class="sourceLineNo">035</span>   private DatatypeFactory dtf;<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>   /**<a name="line.37"></a>
-<span class="sourceLineNo">038</span>    * Constructor.<a name="line.38"></a>
-<span class="sourceLineNo">039</span>    */<a name="line.39"></a>
-<span class="sourceLineNo">040</span>   public XMLGregorianCalendarSwap() {<a name="line.40"></a>
-<span class="sourceLineNo">041</span>      try {<a name="line.41"></a>
-<span class="sourceLineNo">042</span>         this.dtf = DatatypeFactory.newInstance();<a name="line.42"></a>
-<span class="sourceLineNo">043</span>      } catch (DatatypeConfigurationException e) {<a name="line.43"></a>
-<span class="sourceLineNo">044</span>         throw new RuntimeException(e);<a name="line.44"></a>
-<span class="sourceLineNo">045</span>      }<a name="line.45"></a>
-<span class="sourceLineNo">046</span>   }<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>   /**<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    * Converts the specified &lt;code&gt;XMLGregorianCalendar&lt;/code&gt; to a {@link String}.<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    */<a name="line.50"></a>
-<span class="sourceLineNo">051</span>   @Override /* PojoSwap */<a name="line.51"></a>
-<span class="sourceLineNo">052</span>   public String swap(BeanSession session, XMLGregorianCalendar b) throws SerializeException {<a name="line.52"></a>
-<span class="sourceLineNo">053</span>      return b.toXMLFormat();<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   }<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>   /**<a name="line.56"></a>
-<span class="sourceLineNo">057</span>    * Converts the specified {@link String} to an &lt;code&gt;XMLGregorianCalendar&lt;/code&gt;.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    */<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   @Override /* PojoSwap */<a name="line.59"></a>
-<span class="sourceLineNo">060</span>   public XMLGregorianCalendar unswap(BeanSession session, String s, ClassMeta&lt;?&gt; hint) throws ParseException {<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      if (isEmpty(s))<a name="line.61"></a>
-<span class="sourceLineNo">062</span>         return null;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>      return dtf.newXMLGregorianCalendar(s);<a name="line.63"></a>
-<span class="sourceLineNo">064</span>   }<a name="line.64"></a>
-<span class="sourceLineNo">065</span>}<a name="line.65"></a>
+<span class="sourceLineNo">035</span>   /**<a name="line.35"></a>
+<span class="sourceLineNo">036</span>    * Constructor.<a name="line.36"></a>
+<span class="sourceLineNo">037</span>    */<a name="line.37"></a>
+<span class="sourceLineNo">038</span>   public XMLGregorianCalendarSwap() {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>      try {<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         this.dtf = DatatypeFactory.newInstance();<a name="line.40"></a>
+<span class="sourceLineNo">041</span>      } catch (DatatypeConfigurationException e) {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         throw new RuntimeException(e);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>      }<a name="line.43"></a>
+<span class="sourceLineNo">044</span>   }<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>   /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    * Converts the specified &lt;code&gt;XMLGregorianCalendar&lt;/code&gt; to a {@link String}.<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    */<a name="line.48"></a>
+<span class="sourceLineNo">049</span>   @Override /* PojoSwap */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>   public String swap(BeanSession session, XMLGregorianCalendar b) throws Exception {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      return b.toXMLFormat();<a name="line.51"></a>
+<span class="sourceLineNo">052</span>   }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>   /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    * Converts the specified {@link String} to an &lt;code&gt;XMLGregorianCalendar&lt;/code&gt;.<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   @Override /* PojoSwap */<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   public XMLGregorianCalendar unswap(BeanSession session, String s, ClassMeta&lt;?&gt; hint) throws Exception {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>      if (isEmpty(s))<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         return null;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      return dtf.newXMLGregorianCalendar(s);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   }<a name="line.62"></a>
+<span class="sourceLineNo">063</span>}<a name="line.63"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/uon/UonParserSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/uon/UonParserSession.html b/content/site/apidocs/src-html/org/apache/juneau/uon/UonParserSession.html
index eb343d0..a153d1d 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/uon/UonParserSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/uon/UonParserSession.html
@@ -130,8 +130,8 @@
 <span class="sourceLineNo">122</span><a name="line.122"></a>
 <span class="sourceLineNo">123</span>      if (eType == null)<a name="line.123"></a>
 <span class="sourceLineNo">124</span>         eType = (ClassMeta&lt;T&gt;)object();<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      PojoSwap&lt;T,Object&gt; transform = (PojoSwap&lt;T,Object&gt;)eType.getPojoSwap();<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      ClassMeta&lt;?&gt; sType = eType.getSerializedClassMeta();<a name="line.126"></a>
+<span class="sourceLineNo">125</span>      PojoSwap&lt;T,Object&gt; swap = (PojoSwap&lt;T,Object&gt;)eType.getPojoSwap(this);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      ClassMeta&lt;?&gt; sType = swap == null ? eType : swap.getSwapClassMeta(this);<a name="line.126"></a>
 <span class="sourceLineNo">127</span><a name="line.127"></a>
 <span class="sourceLineNo">128</span>      Object o = null;<a name="line.128"></a>
 <span class="sourceLineNo">129</span><a name="line.129"></a>
@@ -256,8 +256,8 @@
 <span class="sourceLineNo">248</span><a name="line.248"></a>
 <span class="sourceLineNo">249</span>      if (o == null &amp;&amp; sType.isPrimitive())<a name="line.249"></a>
 <span class="sourceLineNo">250</span>         o = sType.getPrimitiveDefault();<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      if (transform != null &amp;&amp; o != null)<a name="line.251"></a>
-<span class="sourceLineNo">252</span>         o = transform.unswap(this, o, eType);<a name="line.252"></a>
+<span class="sourceLineNo">251</span>      if (swap != null &amp;&amp; o != null)<a name="line.251"></a>
+<span class="sourceLineNo">252</span>         o = swap.unswap(this, o, eType);<a name="line.252"></a>
 <span class="sourceLineNo">253</span><a name="line.253"></a>
 <span class="sourceLineNo">254</span>      if (outer != null)<a name="line.254"></a>
 <span class="sourceLineNo">255</span>         setParent(eType, o, outer);<a name="line.255"></a>


[34/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
Update javadocs

Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/commit/62afb533
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/tree/62afb533
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/diff/62afb533

Branch: refs/heads/asf-site
Commit: 62afb533d8930c1c86e4aba0380e47756ec66a0b
Parents: 1019556
Author: JamesBognar <ja...@apache.org>
Authored: Sun Sep 10 16:31:57 2017 -0400
Committer: JamesBognar <ja...@apache.org>
Committed: Sun Sep 10 16:31:57 2017 -0400

----------------------------------------------------------------------
 content/site/apidocs/allclasses-frame.html      |    4 +-
 content/site/apidocs/allclasses-noframe.html    |    4 +-
 content/site/apidocs/index-all.html             |   97 +-
 .../apidocs/org/apache/juneau/BeanContext.html  |   93 +-
 .../site/apidocs/org/apache/juneau/BeanMap.html |    4 +-
 .../apidocs/org/apache/juneau/BeanMapEntry.html |    4 +-
 .../apache/juneau/BeanPropertyMeta.Builder.html |    2 +-
 .../org/apache/juneau/BeanPropertyMeta.html     |   44 +-
 .../apidocs/org/apache/juneau/ClassMeta.html    |  179 +-
 .../org/apache/juneau/CoreObjectBuilder.html    |    2 +-
 .../apache/juneau/annotation/BeanProperty.html  |   59 +-
 .../juneau/annotation/ParentProperty.html       |    4 +-
 .../org/apache/juneau/annotation/Pojo.html      |  271 --
 .../apache/juneau/annotation/ThreadSafe.html    |    4 +-
 .../apache/juneau/annotation/package-frame.html |    3 +-
 .../juneau/annotation/package-summary.html      |   12 +-
 .../apache/juneau/annotation/package-tree.html  |    3 +-
 .../org/apache/juneau/csv/CsvParserBuilder.html |    2 +-
 .../apache/juneau/csv/CsvSerializerBuilder.html |    2 +-
 .../org/apache/juneau/dto/atom/CommonEntry.html |    2 +-
 .../org/apache/juneau/dto/atom/Entry.html       |    2 +-
 .../Schema.BooleanOrSchemaArraySwap.html        |    2 +-
 .../jsonschema/Schema.BooleanOrSchemaSwap.html  |    2 +-
 .../Schema.JsonTypeOrJsonTypeArraySwap.html     |    2 +-
 .../Schema.SchemaOrSchemaArraySwap.html         |    2 +-
 .../apache/juneau/dto/jsonschema/Schema.html    |    8 +-
 .../apache/juneau/html/HtmlParserBuilder.html   |    2 +-
 .../juneau/html/HtmlSerializerBuilder.html      |    2 +-
 .../apidocs/org/apache/juneau/http/Accept.html  |    4 +-
 .../org/apache/juneau/http/ContentType.html     |    2 +-
 .../org/apache/juneau/http/MediaType.html       |  158 +-
 .../org/apache/juneau/http/MediaTypeRange.html  |   30 +-
 .../org/apache/juneau/internal/ArrayUtils.html  |   51 +-
 .../juneau/internal/ClassUtils.MethodInfo.html  |    8 +-
 .../org/apache/juneau/internal/ClassUtils.html  |   34 +-
 .../apache/juneau/internal/DelegateBeanMap.html |    4 +-
 .../apache/juneau/jena/RdfParserBuilder.html    |    2 +-
 .../juneau/jena/RdfSerializerBuilder.html       |    2 +-
 .../org/apache/juneau/jso/JsoParserBuilder.html |    2 +-
 .../apache/juneau/jso/JsoSerializerBuilder.html |    2 +-
 .../apache/juneau/json/JsonParserBuilder.html   |    2 +-
 .../json/JsonSchemaSerializerBuilder.html       |    2 +-
 .../juneau/json/JsonSerializerBuilder.html      |    2 +-
 .../juneau/json/JsonSerializerSession.html      |    4 +-
 .../DirectoryResource.FileResource.html         |    2 +-
 .../resources/LogsResource.FileResource.html    |    2 +-
 .../juneau/msgpack/MsgPackParserBuilder.html    |    2 +-
 .../msgpack/MsgPackSerializerBuilder.html       |    2 +-
 .../org/apache/juneau/parser/ParserBuilder.html |    2 +-
 .../plaintext/PlainTextParserBuilder.html       |    2 +-
 .../plaintext/PlainTextSerializerBuilder.html   |    2 +-
 .../juneau/rest/client/RestClientBuilder.html   |    2 +-
 .../juneau/rest/converters/Introspectable.html  |    6 +-
 .../juneau/rest/converters/Traversable.html     |    6 +-
 .../juneau/serializer/SerializerBuilder.html    |    2 +-
 .../juneau/serializer/SerializerGroup.html      |  115 +-
 .../juneau/soap/SoapXmlSerializerBuilder.html   |    2 +-
 .../org/apache/juneau/transform/MapSwap.html    |    2 +-
 .../org/apache/juneau/transform/PojoSwap.html   |  485 ++-
 .../org/apache/juneau/transform/StringSwap.html |    6 +-
 .../apache/juneau/transform/SurrogateSwap.html  |  127 +-
 .../apache/juneau/transform/package-frame.html  |    4 +
 .../juneau/transform/package-summary.html       |   24 +-
 .../apache/juneau/transform/package-tree.html   |    4 +
 .../juneau/transforms/BeanStringSwap.html       |    2 +-
 .../juneau/transforms/ByteArrayBase64Swap.html  |   18 +-
 .../juneau/transforms/CalendarLongSwap.html     |   14 +-
 .../juneau/transforms/CalendarMapSwap.html      |   14 +-
 .../transforms/CalendarSwap.DateFull.html       |    2 +-
 .../transforms/CalendarSwap.DateLong.html       |    2 +-
 .../transforms/CalendarSwap.DateMedium.html     |    2 +-
 .../transforms/CalendarSwap.DateShort.html      |    2 +-
 .../transforms/CalendarSwap.DateSimple.html     |    2 +-
 .../transforms/CalendarSwap.DateTimeFull.html   |    2 +-
 .../transforms/CalendarSwap.DateTimeLong.html   |    2 +-
 .../transforms/CalendarSwap.DateTimeMedium.html |    2 +-
 .../transforms/CalendarSwap.DateTimeShort.html  |    2 +-
 .../transforms/CalendarSwap.DateTimeSimple.html |    2 +-
 .../transforms/CalendarSwap.ISO8601D.html       |    2 +-
 .../transforms/CalendarSwap.ISO8601DT.html      |    2 +-
 .../transforms/CalendarSwap.ISO8601DTL.html     |    2 +-
 .../transforms/CalendarSwap.ISO8601DTP.html     |    2 +-
 .../transforms/CalendarSwap.ISO8601DTPZ.html    |    2 +-
 .../transforms/CalendarSwap.ISO8601DTZ.html     |    2 +-
 .../transforms/CalendarSwap.RFC2822D.html       |    2 +-
 .../transforms/CalendarSwap.RFC2822DT.html      |    2 +-
 .../transforms/CalendarSwap.RFC2822DTZ.html     |    2 +-
 .../transforms/CalendarSwap.TimeFull.html       |    2 +-
 .../transforms/CalendarSwap.TimeLong.html       |    2 +-
 .../transforms/CalendarSwap.TimeMedium.html     |    2 +-
 .../transforms/CalendarSwap.TimeShort.html      |    2 +-
 .../transforms/CalendarSwap.TimeSimple.html     |    2 +-
 .../transforms/CalendarSwap.ToString.html       |    2 +-
 .../apache/juneau/transforms/CalendarSwap.html  |    2 +-
 .../apache/juneau/transforms/DateLongSwap.html  |    6 +-
 .../apache/juneau/transforms/DateMapSwap.html   |    6 +-
 .../juneau/transforms/DateSwap.DateFull.html    |    2 +-
 .../juneau/transforms/DateSwap.DateLong.html    |    2 +-
 .../juneau/transforms/DateSwap.DateMedium.html  |    2 +-
 .../juneau/transforms/DateSwap.DateShort.html   |    2 +-
 .../juneau/transforms/DateSwap.DateSimple.html  |    2 +-
 .../transforms/DateSwap.DateTimeFull.html       |    2 +-
 .../transforms/DateSwap.DateTimeLong.html       |    2 +-
 .../transforms/DateSwap.DateTimeMedium.html     |    2 +-
 .../transforms/DateSwap.DateTimeShort.html      |    2 +-
 .../transforms/DateSwap.DateTimeSimple.html     |    2 +-
 .../juneau/transforms/DateSwap.ISO8601D.html    |    2 +-
 .../juneau/transforms/DateSwap.ISO8601DT.html   |    2 +-
 .../juneau/transforms/DateSwap.ISO8601DTL.html  |    2 +-
 .../juneau/transforms/DateSwap.ISO8601DTP.html  |    2 +-
 .../juneau/transforms/DateSwap.ISO8601DTPZ.html |    2 +-
 .../juneau/transforms/DateSwap.ISO8601DTZ.html  |    2 +-
 .../juneau/transforms/DateSwap.RFC2822D.html    |    2 +-
 .../juneau/transforms/DateSwap.RFC2822DT.html   |    2 +-
 .../juneau/transforms/DateSwap.RFC2822DTZ.html  |    2 +-
 .../juneau/transforms/DateSwap.TimeFull.html    |    2 +-
 .../juneau/transforms/DateSwap.TimeLong.html    |    2 +-
 .../juneau/transforms/DateSwap.TimeMedium.html  |    2 +-
 .../juneau/transforms/DateSwap.TimeShort.html   |    2 +-
 .../juneau/transforms/DateSwap.TimeSimple.html  |    2 +-
 .../juneau/transforms/DateSwap.ToString.html    |    2 +-
 .../org/apache/juneau/transforms/DateSwap.html  |    2 +-
 .../juneau/transforms/EnumerationSwap.html      |    2 +-
 .../apache/juneau/transforms/IteratorSwap.html  |    2 +-
 .../juneau/transforms/ReaderSwap.Html.html      |    6 +-
 .../juneau/transforms/ReaderSwap.Json.html      |    6 +-
 .../juneau/transforms/ReaderSwap.PlainText.html |    6 +-
 .../juneau/transforms/ReaderSwap.Xml.html       |    6 +-
 .../apache/juneau/transforms/ReaderSwap.html    |   12 +-
 .../juneau/transforms/StringFormatSwap.html     |   18 +-
 .../transforms/XMLGregorianCalendarSwap.html    |   18 +-
 .../org/apache/juneau/uon/UonParserBuilder.html |    2 +-
 .../apache/juneau/uon/UonSerializerBuilder.html |    2 +-
 .../urlencoding/UrlEncodingParserBuilder.html   |    2 +-
 .../UrlEncodingSerializerBuilder.html           |    2 +-
 .../org/apache/juneau/xml/XmlParserBuilder.html |    2 +-
 .../juneau/xml/XmlSchemaSerializerBuilder.html  |    2 +-
 .../apache/juneau/xml/XmlSerializerBuilder.html |    2 +-
 content/site/apidocs/overview-summary.html      |  138 +-
 content/site/apidocs/overview-tree.html         |    4 +-
 .../src-html/org/apache/juneau/BeanContext.html | 2188 ++++++------
 .../src-html/org/apache/juneau/BeanMap.html     |    4 +-
 .../org/apache/juneau/BeanMapEntry.html         |    4 +-
 .../apache/juneau/BeanPropertyMeta.Builder.html | 1783 +++++-----
 .../org/apache/juneau/BeanPropertyMeta.html     | 1783 +++++-----
 .../src-html/org/apache/juneau/BeanSession.html |   16 +-
 .../src-html/org/apache/juneau/ClassMeta.html   | 3250 +++++++++---------
 .../org/apache/juneau/CoreObjectBuilder.html    |    2 +-
 .../apache/juneau/annotation/BeanProperty.html  |  508 ++-
 .../org/apache/juneau/annotation/Pojo.html      |  156 -
 .../org/apache/juneau/dto/atom/CommonEntry.html |    2 +-
 .../org/apache/juneau/dto/atom/Entry.html       |    2 +-
 .../Schema.BooleanOrSchemaArraySwap.html        |    8 +-
 .../jsonschema/Schema.BooleanOrSchemaSwap.html  |    8 +-
 .../Schema.JsonTypeOrJsonTypeArraySwap.html     |    8 +-
 .../Schema.SchemaOrSchemaArraySwap.html         |    8 +-
 .../apache/juneau/dto/jsonschema/Schema.html    |    8 +-
 .../apache/juneau/html/HtmlParserSession.html   |    4 +-
 .../html/HtmlSchemaDocSerializerSession.html    |    4 +-
 .../juneau/html/HtmlSerializerSession.html      | 1067 +++---
 .../src-html/org/apache/juneau/http/Accept.html |   75 +-
 .../org/apache/juneau/http/ContentType.html     |    2 +-
 .../org/apache/juneau/http/MediaType.html       |  646 ++--
 .../org/apache/juneau/http/MediaTypeRange.html  |   15 +-
 .../org/apache/juneau/internal/ArrayUtils.html  |   18 +-
 .../internal/ClassUtils.ClassComparator.html    | 1294 +++----
 .../juneau/internal/ClassUtils.MethodInfo.html  | 1294 +++----
 .../org/apache/juneau/internal/ClassUtils.html  | 1294 +++----
 .../apache/juneau/jena/RdfParserSession.html    |    8 +-
 .../juneau/jena/RdfSerializerSession.html       |  403 +--
 .../apache/juneau/json/JsonParserSession.html   |    8 +-
 .../json/JsonSchemaSerializerSession.html       |    4 +-
 .../juneau/json/JsonSerializer.Readable.html    |    4 +-
 .../juneau/json/JsonSerializer.Simple.html      |    4 +-
 .../json/JsonSerializer.SimpleReadable.html     |    4 +-
 .../json/JsonSerializer.SimpleReadableSafe.html |    4 +-
 .../org/apache/juneau/json/JsonSerializer.html  |    4 +-
 .../juneau/json/JsonSerializerSession.html      |  321 +-
 .../DirectoryResource.FileResource.html         |    2 +-
 .../resources/DirectoryResource.html            |    2 +-
 .../resources/LogsResource.FileResource.html    |    2 +-
 .../microservice/resources/LogsResource.html    |    2 +-
 .../juneau/msgpack/MsgPackParserSession.html    |    8 +-
 .../msgpack/MsgPackSerializerSession.html       |  235 +-
 .../org/apache/juneau/parser/ParserSession.html |    8 +-
 .../juneau/rest/converters/Introspectable.html  |  101 +-
 .../juneau/rest/converters/Traversable.html     |  105 +-
 ...BeanDescription.BeanPropertyDescription.html |    2 +-
 .../juneau/rest/labels/BeanDescription.html     |    2 +-
 .../juneau/serializer/SerializerGroup.html      |  405 ++-
 .../juneau/serializer/SerializerSession.html    |    6 +-
 .../org/apache/juneau/transform/PojoSwap.html   |  841 +++--
 .../apache/juneau/transform/SurrogateSwap.html  |  285 +-
 .../juneau/transforms/ByteArrayBase64Swap.html  |   56 +-
 .../juneau/transforms/CalendarLongSwap.html     |   65 +-
 .../juneau/transforms/CalendarMapSwap.html      |   81 +-
 .../apache/juneau/transforms/DateLongSwap.html  |    2 +-
 .../apache/juneau/transforms/DateMapSwap.html   |    2 +-
 .../juneau/transforms/ReaderSwap.Html.html      |  170 +-
 .../juneau/transforms/ReaderSwap.Json.html      |  170 +-
 .../juneau/transforms/ReaderSwap.PlainText.html |  170 +-
 .../juneau/transforms/ReaderSwap.Xml.html       |  170 +-
 .../apache/juneau/transforms/ReaderSwap.html    |  170 +-
 .../juneau/transforms/StringFormatSwap.html     |   56 +-
 .../transforms/XMLGregorianCalendarSwap.html    |   88 +-
 .../org/apache/juneau/uon/UonParserSession.html |    8 +-
 .../apache/juneau/uon/UonSerializerSession.html |  277 +-
 .../urlencoding/UrlEncodingParserSession.html   |   10 +-
 .../UrlEncodingSerializerSession.html           |  294 +-
 .../org/apache/juneau/xml/XmlParserSession.html |    8 +-
 .../juneau/xml/XmlSchemaSerializerSession.html  |  798 ++---
 .../apache/juneau/xml/XmlSerializerSession.html |  859 ++---
 content/site/apidocs/stylesheet.css             |  574 ----
 213 files changed, 12247 insertions(+), 12323 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/allclasses-frame.html b/content/site/apidocs/allclasses-frame.html
index 98c1eda..1eb8c4d 100644
--- a/content/site/apidocs/allclasses-frame.html
+++ b/content/site/apidocs/allclasses-frame.html
@@ -473,7 +473,6 @@
 <li><a href="org/apache/juneau/plaintext/PlainTextSerializer.html" title="class in org.apache.juneau.plaintext" target="classFrame">PlainTextSerializer</a></li>
 <li><a href="org/apache/juneau/plaintext/PlainTextSerializerBuilder.html" title="class in org.apache.juneau.plaintext" target="classFrame">PlainTextSerializerBuilder</a></li>
 <li><a href="org/apache/juneau/plaintext/PlainTextSerializerSession.html" title="class in org.apache.juneau.plaintext" target="classFrame">PlainTextSerializerSession</a></li>
-<li><a href="org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation" target="classFrame">Pojo</a></li>
 <li><a href="org/apache/juneau/utils/PojoIntrospector.html" title="class in org.apache.juneau.utils" target="classFrame">PojoIntrospector</a></li>
 <li><a href="org/apache/juneau/utils/PojoMerge.html" title="class in org.apache.juneau.utils" target="classFrame">PojoMerge</a></li>
 <li><a href="org/apache/juneau/utils/PojoQuery.html" title="class in org.apache.juneau.utils" target="classFrame">PojoQuery</a></li>
@@ -689,10 +688,13 @@
 <li><a href="org/apache/juneau/rest/widget/StyleMenuItem.html" title="class in org.apache.juneau.rest.widget" target="classFrame">StyleMenuItem</a></li>
 <li><a href="org/apache/juneau/dto/html5/Sub.html" title="class in org.apache.juneau.dto.html5" target="classFrame">Sub</a></li>
 <li><a href="org/apache/juneau/dto/html5/Sup.html" title="class in org.apache.juneau.dto.html5" target="classFrame">Sup</a></li>
+<li><a href="org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform" target="classFrame"><span class="interfaceName">Surrogate</span></a></li>
 <li><a href="org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform" target="classFrame">SurrogateSwap</a></li>
 <li><a href="org/apache/juneau/dto/swagger/Swagger.html" title="class in org.apache.juneau.dto.swagger" target="classFrame">Swagger</a></li>
 <li><a href="org/apache/juneau/dto/swagger/SwaggerBuilder.html" title="class in org.apache.juneau.dto.swagger" target="classFrame">SwaggerBuilder</a></li>
 <li><a href="org/apache/juneau/dto/swagger/SwaggerElement.html" title="class in org.apache.juneau.dto.swagger" target="classFrame">SwaggerElement</a></li>
+<li><a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation" target="classFrame">Swap</a></li>
+<li><a href="org/apache/juneau/annotation/Swaps.html" title="annotation in org.apache.juneau.annotation" target="classFrame">Swaps</a></li>
 <li><a href="org/apache/juneau/svl/vars/SwitchVar.html" title="class in org.apache.juneau.svl.vars" target="classFrame">SwitchVar</a></li>
 <li><a href="org/apache/juneau/svl/vars/SystemPropertiesVar.html" title="class in org.apache.juneau.svl.vars" target="classFrame">SystemPropertiesVar</a></li>
 <li><a href="org/apache/juneau/dto/html5/Table.html" title="class in org.apache.juneau.dto.html5" target="classFrame">Table</a></li>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/allclasses-noframe.html b/content/site/apidocs/allclasses-noframe.html
index 372b262..0488195 100644
--- a/content/site/apidocs/allclasses-noframe.html
+++ b/content/site/apidocs/allclasses-noframe.html
@@ -473,7 +473,6 @@
 <li><a href="org/apache/juneau/plaintext/PlainTextSerializer.html" title="class in org.apache.juneau.plaintext">PlainTextSerializer</a></li>
 <li><a href="org/apache/juneau/plaintext/PlainTextSerializerBuilder.html" title="class in org.apache.juneau.plaintext">PlainTextSerializerBuilder</a></li>
 <li><a href="org/apache/juneau/plaintext/PlainTextSerializerSession.html" title="class in org.apache.juneau.plaintext">PlainTextSerializerSession</a></li>
-<li><a href="org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation">Pojo</a></li>
 <li><a href="org/apache/juneau/utils/PojoIntrospector.html" title="class in org.apache.juneau.utils">PojoIntrospector</a></li>
 <li><a href="org/apache/juneau/utils/PojoMerge.html" title="class in org.apache.juneau.utils">PojoMerge</a></li>
 <li><a href="org/apache/juneau/utils/PojoQuery.html" title="class in org.apache.juneau.utils">PojoQuery</a></li>
@@ -689,10 +688,13 @@
 <li><a href="org/apache/juneau/rest/widget/StyleMenuItem.html" title="class in org.apache.juneau.rest.widget">StyleMenuItem</a></li>
 <li><a href="org/apache/juneau/dto/html5/Sub.html" title="class in org.apache.juneau.dto.html5">Sub</a></li>
 <li><a href="org/apache/juneau/dto/html5/Sup.html" title="class in org.apache.juneau.dto.html5">Sup</a></li>
+<li><a href="org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><span class="interfaceName">Surrogate</span></a></li>
 <li><a href="org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform">SurrogateSwap</a></li>
 <li><a href="org/apache/juneau/dto/swagger/Swagger.html" title="class in org.apache.juneau.dto.swagger">Swagger</a></li>
 <li><a href="org/apache/juneau/dto/swagger/SwaggerBuilder.html" title="class in org.apache.juneau.dto.swagger">SwaggerBuilder</a></li>
 <li><a href="org/apache/juneau/dto/swagger/SwaggerElement.html" title="class in org.apache.juneau.dto.swagger">SwaggerElement</a></li>
+<li><a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation">Swap</a></li>
+<li><a href="org/apache/juneau/annotation/Swaps.html" title="annotation in org.apache.juneau.annotation">Swaps</a></li>
 <li><a href="org/apache/juneau/svl/vars/SwitchVar.html" title="class in org.apache.juneau.svl.vars">SwitchVar</a></li>
 <li><a href="org/apache/juneau/svl/vars/SystemPropertiesVar.html" title="class in org.apache.juneau.svl.vars">SystemPropertiesVar</a></li>
 <li><a href="org/apache/juneau/dto/html5/Table.html" title="class in org.apache.juneau.dto.html5">Table</a></li>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/index-all.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/index-all.html b/content/site/apidocs/index-all.html
index 5eeb8b5..d904b06 100644
--- a/content/site/apidocs/index-all.html
+++ b/content/site/apidocs/index-all.html
@@ -6745,6 +6745,10 @@
 <div class="block">Returns <jk>true</jk> if the specified object is also a <code>MediaType</code>, and has the same qValue, type,
  parameters, and extensions.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/internal/ArrayUtils.html#equals-java.lang.String:A-java.lang.String:A-">equals(String[], String[])</a></span> - Static method in class org.apache.juneau.internal.<a href="org/apache/juneau/internal/ArrayUtils.html" title="class in org.apache.juneau.internal">ArrayUtils</a></dt>
+<dd>
+<div class="block">Returns <jk>true</jk> if the following sorted arrays are equals.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/internal/ObjectUtils.html#equals-java.lang.Object-java.lang.Object-">equals(Object, Object)</a></span> - Static method in class org.apache.juneau.internal.<a href="org/apache/juneau/internal/ObjectUtils.html" title="class in org.apache.juneau.internal">ObjectUtils</a></dt>
 <dd>
 <div class="block">Returns <jk>true</jk> if the specified objects are equal.</div>
@@ -7616,6 +7620,14 @@
 <dd>
 <div class="block">Adds form data parameters to the request for any parameters that aren't null/empty.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes()</a></span> - Method in class org.apache.juneau.transform.<a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></dt>
+<dd>
+<div class="block">Returns the media types that this swap is applicable to.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes(MediaType[])</a></span> - Method in class org.apache.juneau.transform.<a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></dt>
+<dd>
+<div class="block">Sets the media types that this swap is associated with.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/dto/html5/Button.html#formenctype-java.lang.String-">formenctype(String)</a></span> - Method in class org.apache.juneau.dto.html5.<a href="org/apache/juneau/dto/html5/Button.html" title="class in org.apache.juneau.dto.html5">Button</a></dt>
 <dd>
 <div class="block"><a class="./org/apache/juneau/dto/html5/doclink" href="https://www.w3.org/TR/html5/forms.html#attr-fs-formenctype">formenctype</a> attribute.</div>
@@ -7842,6 +7854,11 @@
 <dd>
 <div class="block">Returns a parsed <code>WWW-Authenticate</code> header.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/http/MediaType.html#forStrings-java.lang.String...-">forStrings(String...)</a></span> - Static method in class org.apache.juneau.http.<a href="org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/http/MediaType.html#forString-java.lang.String-"><code>MediaType.forString(String)</code></a> but allows you to construct an array of <code>MediaTypes</code> from an
+ array of strings.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/rest/client/RestCall.html#forwarded-java.lang.Object-">forwarded(Object)</a></span> - Method in class org.apache.juneau.rest.client.<a href="org/apache/juneau/rest/client/RestCall.html" title="class in org.apache.juneau.rest.client">RestCall</a></dt>
 <dd>
 <div class="block">Sets the value for the <code>Forwarded</code> request header.</div>
@@ -10680,9 +10697,9 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/xml/XmlReader.html#getPITarget--">getPITarget()</a></span> - Method in class org.apache.juneau.xml.<a href="org/apache/juneau/xml/XmlReader.html" title="class in org.apache.juneau.xml">XmlReader</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/ClassMeta.html#getPojoSwap--">getPojoSwap()</a></span> - Method in class org.apache.juneau.<a href="org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/ClassMeta.html#getPojoSwap-org.apache.juneau.BeanSession-">getPojoSwap(BeanSession)</a></span> - Method in class org.apache.juneau.<a href="org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a></dt>
 <dd>
-<div class="block">Returns the <a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> associated with this class.</div>
+<div class="block">Returns the <a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> associated with this class that's the best match for the specified session.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RestContext.html#getPojoSwaps--">getPojoSwaps()</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest">RestContext</a></dt>
 <dd>
@@ -11368,7 +11385,7 @@
 <dd>
 <div class="block">Bean property getter:  <property>securityDefinitions</property>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/ClassMeta.html#getSerializedClassMeta--">getSerializedClassMeta()</a></span> - Method in class org.apache.juneau.<a href="org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/ClassMeta.html#getSerializedClassMeta-org.apache.juneau.BeanSession-">getSerializedClassMeta(BeanSession)</a></span> - Method in class org.apache.juneau.<a href="org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a></dt>
 <dd>
 <div class="block">Returns the serialized (swapped) form of this class if there is an <a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> associated with it.</div>
 </dd>
@@ -11496,6 +11513,14 @@
 <dd>
 <div class="block">Returns the stop class associated with this class.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/serializer/SerializerGroup.html#getStreamSerializer-java.lang.String-">getStreamSerializer(String)</a></span> - Method in class org.apache.juneau.serializer.<a href="org/apache/juneau/serializer/SerializerGroup.html" title="class in org.apache.juneau.serializer">SerializerGroup</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/serializer/SerializerGroup.html#getSerializer-java.lang.String-"><code>SerializerGroup.getSerializer(String)</code></a>, but casts it to an <a href="org/apache/juneau/serializer/OutputStreamSerializer.html" title="class in org.apache.juneau.serializer"><code>OutputStreamSerializer</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/serializer/SerializerGroup.html#getStreamSerializer-org.apache.juneau.http.MediaType-">getStreamSerializer(MediaType)</a></span> - Method in class org.apache.juneau.serializer.<a href="org/apache/juneau/serializer/SerializerGroup.html" title="class in org.apache.juneau.serializer">SerializerGroup</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/serializer/SerializerGroup.html#getSerializer-org.apache.juneau.http.MediaType-"><code>SerializerGroup.getSerializer(MediaType)</code></a>, but casts it to a <a href="org/apache/juneau/serializer/OutputStreamSerializer.html" title="class in org.apache.juneau.serializer"><code>OutputStreamSerializer</code></a>.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/ini/ConfigFile.html#getString-java.lang.String-java.lang.String-">getString(String, String)</a></span> - Method in class org.apache.juneau.ini.<a href="org/apache/juneau/ini/ConfigFile.html" title="class in org.apache.juneau.ini">ConfigFile</a></dt>
 <dd>
 <div class="block">Returns the specified value as a string from the config file.</div>
@@ -11695,7 +11720,7 @@
 <dd>
 <div class="block">Returns the G class, the generalized form of the class.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta(BeanContext)</a></span> - Method in class org.apache.juneau.transform.<a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta(BeanSession)</a></span> - Method in class org.apache.juneau.transform.<a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></dt>
 <dd>
 <div class="block">Returns the <a href="org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau"><code>ClassMeta</code></a> of the transformed class type.</div>
 </dd>
@@ -12156,6 +12181,14 @@
 <dd>
 <div class="block">Wraps the specified output object inside a writer.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/serializer/SerializerGroup.html#getWriterSerializer-java.lang.String-">getWriterSerializer(String)</a></span> - Method in class org.apache.juneau.serializer.<a href="org/apache/juneau/serializer/SerializerGroup.html" title="class in org.apache.juneau.serializer">SerializerGroup</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/serializer/SerializerGroup.html#getSerializer-java.lang.String-"><code>SerializerGroup.getSerializer(String)</code></a>, but casts it to a <a href="org/apache/juneau/serializer/WriterSerializer.html" title="class in org.apache.juneau.serializer"><code>WriterSerializer</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/serializer/SerializerGroup.html#getWriterSerializer-org.apache.juneau.http.MediaType-">getWriterSerializer(MediaType)</a></span> - Method in class org.apache.juneau.serializer.<a href="org/apache/juneau/serializer/SerializerGroup.html" title="class in org.apache.juneau.serializer">SerializerGroup</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/serializer/SerializerGroup.html#getSerializer-org.apache.juneau.http.MediaType-"><code>SerializerGroup.getSerializer(MediaType)</code></a>, but casts it to a <a href="org/apache/juneau/serializer/WriterSerializer.html" title="class in org.apache.juneau.serializer"><code>WriterSerializer</code></a>.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/dto/swagger/SchemaInfo.html#getXml--">getXml()</a></span> - Method in class org.apache.juneau.dto.swagger.<a href="org/apache/juneau/dto/swagger/SchemaInfo.html" title="class in org.apache.juneau.dto.swagger">SchemaInfo</a></dt>
 <dd>
 <div class="block">Bean property getter:  <property>xml</property>.</div>
@@ -14830,6 +14863,10 @@
 <dd>
 <div class="block">Returns <jk>true</jk> if this class is an inner class.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/http/MediaType.html#isMeta--">isMeta()</a></span> - Method in class org.apache.juneau.http.<a href="org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a></dt>
+<dd>
+<div class="block">Returns <jk>true</jk> if this media type contains the <js>'*'</js> meta character.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/ClassMeta.html#isMethod--">isMethod()</a></span> - Method in class org.apache.juneau.<a href="org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a></dt>
 <dd>
 <div class="block">Returns <jk>true</jk> if this class is <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect"><code>Method</code></a>.</div>
@@ -16287,7 +16324,7 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/internal/CharSequenceReader.html#markSupported--">markSupported()</a></span> - Method in class org.apache.juneau.internal.<a href="org/apache/juneau/internal/CharSequenceReader.html" title="class in org.apache.juneau.internal">CharSequenceReader</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/http/MediaType.html#match-org.apache.juneau.http.MediaType-">match(MediaType)</a></span> - Method in class org.apache.juneau.http.<a href="org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/http/MediaType.html#match-org.apache.juneau.http.MediaType-boolean-">match(MediaType, boolean)</a></span> - Method in class org.apache.juneau.http.<a href="org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a></dt>
 <dd>
 <div class="block">Returns a match metric against the specified media type where a larger number represents a better match.</div>
 </dd>
@@ -16295,17 +16332,12 @@
 <dd>
 <div class="block">Returns a non-<jk>null</jk> value if the specified path matches this pattern.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/ProcBuilder.Matcher.html#Matcher--">Matcher()</a></span> - Constructor for class org.apache.juneau.utils.<a href="org/apache/juneau/utils/ProcBuilder.Matcher.html" title="class in org.apache.juneau.utils">ProcBuilder.Matcher</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/http/MediaType.html#matches-org.apache.juneau.http.MediaType-">matches(MediaType)</a></span> - Method in class org.apache.juneau.http.<a href="org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a></dt>
-<dd>
-<div class="block">Returns <jk>true</jk> if this media type is a match for the specified media type.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/http/MediaTypeRange.html#matches-org.apache.juneau.http.MediaType-">matches(MediaType)</a></span> - Method in class org.apache.juneau.http.<a href="org/apache/juneau/http/MediaTypeRange.html" title="class in org.apache.juneau.http">MediaTypeRange</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match(BeanSession)</a></span> - Method in class org.apache.juneau.transform.<a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></dt>
 <dd>
-<div class="block">Matches the specified media type against this range and returns a q-value between 0 and 1 indicating the
- quality of the match.</div>
+<div class="block">Returns a number indicating how well this swap matches the specified session.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/ProcBuilder.Matcher.html#Matcher--">Matcher()</a></span> - Constructor for class org.apache.juneau.utils.<a href="org/apache/juneau/utils/ProcBuilder.Matcher.html" title="class in org.apache.juneau.utils">ProcBuilder.Matcher</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/http/StringRange.html#matches-java.lang.String-">matches(String)</a></span> - Method in class org.apache.juneau.http.<a href="org/apache/juneau/http/StringRange.html" title="class in org.apache.juneau.http">StringRange</a></dt>
 <dd>
 <div class="block">Checks if the specified type matches this range.</div>
@@ -19203,10 +19235,6 @@
 <dd>
 <div class="block">Create a new session using properties specified in the context.</div>
 </dd>
-<dt><a href="org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Pojo</span></a> - Annotation Type in <a href="org/apache/juneau/annotation/package-summary.html">org.apache.juneau.annotation</a></dt>
-<dd>
-<div class="block">Used to tailor how POJOs get interpreted by the framework.</div>
-</dd>
 <dt><a href="org/apache/juneau/utils/PojoIntrospector.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">PojoIntrospector</span></a> - Class in <a href="org/apache/juneau/utils/package-summary.html">org.apache.juneau.utils</a></dt>
 <dd>
 <div class="block">Used to invoke methods on <code>Objects</code> using arguments in serialized form.</div>
@@ -19255,7 +19283,8 @@
 </dd>
 <dt><a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><span class="typeNameLink">PojoSwap</span></a>&lt;<a href="org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">T</a>,<a href="org/apache/juneau/transform/PojoSwap.html" title="type parameter in PojoSwap">S</a>&gt; - Class in <a href="org/apache/juneau/transform/package-summary.html">org.apache.juneau.transform</a></dt>
 <dd>
-<div class="block">Used to swap out non-serializable objects with serializable replacements during serialization, and vis-versa during parsing.</div>
+<div class="block">Used to swap out non-serializable objects with serializable replacements during serialization, and vis-versa during
+ parsing.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/transform/PojoSwap.html#PojoSwap--">PojoSwap()</a></span> - Constructor for class org.apache.juneau.transform.<a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></dt>
 <dd>
@@ -26134,9 +26163,13 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/dto/html5/Sup.html#Sup--">Sup()</a></span> - Constructor for class org.apache.juneau.dto.html5.<a href="org/apache/juneau/dto/html5/Sup.html" title="class in org.apache.juneau.dto.html5">Sup</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><span class="typeNameLink">Surrogate</span></a> - Interface in <a href="org/apache/juneau/transform/package-summary.html">org.apache.juneau.transform</a></dt>
+<dd>
+<div class="block">Identifies a class as being a surrogate class.</div>
+</dd>
 <dt><a href="org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><span class="typeNameLink">SurrogateSwap</span></a>&lt;<a href="org/apache/juneau/transform/SurrogateSwap.html" title="type parameter in SurrogateSwap">T</a>,<a href="org/apache/juneau/transform/SurrogateSwap.html" title="type parameter in SurrogateSwap">F</a>&gt; - Class in <a href="org/apache/juneau/transform/package-summary.html">org.apache.juneau.transform</a></dt>
 <dd>
-<div class="block">Specialized <a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> for surrogate classes.</div>
+<div class="block">Specialized <a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> for <a href="org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a> classes.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/transform/SurrogateSwap.html#SurrogateSwap-java.lang.Class-java.lang.reflect.Constructor-java.lang.reflect.Method-">SurrogateSwap(Class&lt;T&gt;, Constructor&lt;F&gt;, Method)</a></span> - Constructor for class org.apache.juneau.transform.<a href="org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform">SurrogateSwap</a></dt>
 <dd>
@@ -26172,6 +26205,10 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/dto/swagger/SwaggerElement.html#SwaggerElement--">SwaggerElement()</a></span> - Constructor for class org.apache.juneau.dto.swagger.<a href="org/apache/juneau/dto/swagger/SwaggerElement.html" title="class in org.apache.juneau.dto.swagger">SwaggerElement</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Swap</span></a> - Annotation Type in <a href="org/apache/juneau/annotation/package-summary.html">org.apache.juneau.annotation</a></dt>
+<dd>
+<div class="block">Associates <a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> and <a href="org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a> classes with POJOs and bean properties.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaArraySwap.html#swap-org.apache.juneau.BeanSession-java.lang.Object-">swap(BeanSession, Object)</a></span> - Method in class org.apache.juneau.dto.jsonschema.<a href="org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaArraySwap.html" title="class in org.apache.juneau.dto.jsonschema">Schema.BooleanOrSchemaArraySwap</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaSwap.html#swap-org.apache.juneau.BeanSession-java.lang.Object-">swap(BeanSession, Object)</a></span> - Method in class org.apache.juneau.dto.jsonschema.<a href="org/apache/juneau/dto/jsonschema/Schema.BooleanOrSchemaSwap.html" title="class in org.apache.juneau.dto.jsonschema">Schema.BooleanOrSchemaSwap</a></dt>
@@ -26190,6 +26227,10 @@
 <dd>
 <div class="block">If this transform is to be used to serialize non-serializable POJOs, it must implement this method.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/transform/PojoSwap.html#swap-org.apache.juneau.BeanSession-T-java.lang.String-">swap(BeanSession, T, String)</a></span> - Method in class org.apache.juneau.transform.<a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/transform/PojoSwap.html#swap-org.apache.juneau.BeanSession-T-"><code>PojoSwap.swap(BeanSession, Object)</code></a>, but can be used if your swap has a template associated with it.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/transform/StringSwap.html#swap-org.apache.juneau.BeanSession-T-">swap(BeanSession, T)</a></span> - Method in class org.apache.juneau.transform.<a href="org/apache/juneau/transform/StringSwap.html" title="class in org.apache.juneau.transform">StringSwap</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/transform/SurrogateSwap.html#swap-org.apache.juneau.BeanSession-T-">swap(BeanSession, T)</a></span> - Method in class org.apache.juneau.transform.<a href="org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform">SurrogateSwap</a></dt>
@@ -26336,6 +26377,10 @@
 <dd>
 <div class="block">Converts the specified <code>XMLGregorianCalendar</code> to a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a>.</div>
 </dd>
+<dt><a href="org/apache/juneau/annotation/Swaps.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Swaps</span></a> - Annotation Type in <a href="org/apache/juneau/annotation/package-summary.html">org.apache.juneau.annotation</a></dt>
+<dd>
+<div class="block">Used to associate multiple swaps with the same POJO class.</div>
+</dd>
 <dt><a href="org/apache/juneau/svl/vars/SwitchVar.html" title="class in org.apache.juneau.svl.vars"><span class="typeNameLink">SwitchVar</span></a> - Class in <a href="org/apache/juneau/svl/vars/package-summary.html">org.apache.juneau.svl.vars</a></dt>
 <dd>
 <div class="block">A basic switch/case logic variable resolver.</div>
@@ -27623,6 +27668,10 @@
 <dd>
 <div class="block">If this transform is to be used to reconstitute POJOs that aren't true Java beans, it must implement this method.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap(BeanSession, S, ClassMeta&lt;?&gt;, String)</a></span> - Method in class org.apache.juneau.transform.<a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-"><code>PojoSwap.unswap(BeanSession, Object, ClassMeta)</code></a>, but can be used if your swap has a template associated with it.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/transform/StringSwap.html#unswap-org.apache.juneau.BeanSession-java.lang.String-org.apache.juneau.ClassMeta-">unswap(BeanSession, String, ClassMeta&lt;?&gt;)</a></span> - Method in class org.apache.juneau.transform.<a href="org/apache/juneau/transform/StringSwap.html" title="class in org.apache.juneau.transform">StringSwap</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/transform/SurrogateSwap.html#unswap-org.apache.juneau.BeanSession-F-org.apache.juneau.ClassMeta-">unswap(BeanSession, F, ClassMeta&lt;?&gt;)</a></span> - Method in class org.apache.juneau.transform.<a href="org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform">SurrogateSwap</a></dt>
@@ -28939,6 +28988,14 @@ the order they are declared.</div>
 <dd>
 <div class="block">Operating system matcher: Any Windows system.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate()</a></span> - Method in class org.apache.juneau.transform.<a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></dt>
+<dd>
+<div class="block">Returns additional context information for this swap.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate(String)</a></span> - Method in class org.apache.juneau.transform.<a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></dt>
+<dd>
+<div class="block">Sets the template string on this swap.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/juneau/dto/html5/Textarea.html#wrap-java.lang.String-">wrap(String)</a></span> - Method in class org.apache.juneau.dto.html5.<a href="org/apache/juneau/dto/html5/Textarea.html" title="class in org.apache.juneau.dto.html5">Textarea</a></dt>
 <dd>
 <div class="block"><a class="./org/apache/juneau/dto/html5/doclink" href="https://www.w3.org/TR/html5/forms.html#attr-textarea-wrap">wrap</a> attribute.</div>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/BeanContext.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/BeanContext.html b/content/site/apidocs/org/apache/juneau/BeanContext.html
index d1b2a42..5c60f8d 100644
--- a/content/site/apidocs/org/apache/juneau/BeanContext.html
+++ b/content/site/apidocs/org/apache/juneau/BeanContext.html
@@ -1444,7 +1444,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_pojoSwaps</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.648">BEAN_pojoSwaps</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.653">BEAN_pojoSwaps</a></pre>
 <div class="block"><b>Configuration property:</b>  POJO swaps to apply to Java objects.
 
  <ul>
@@ -1459,7 +1459,12 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
  <ul>
    <li>Subclasses of <a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
    <li>Surrogate classes.  A shortcut for defining a <a href="../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
- </ul></div>
+ </ul>
+
+ <p>
+ Multiple POJO swaps can be associated with a single class.
+ When multiple swaps are applicable to the same class, the media type pattern defined by
+ <a href="../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--"><code>PojoSwap.forMediaTypes()</code></a> or <a href="../../../org/apache/juneau/annotation/Swap.html#mediaTypes--"><code>Swap.mediaTypes()</code></a> are used to come up with the best match.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../constant-values.html#org.apache.juneau.BeanContext.BEAN_pojoSwaps">Constant Field Values</a></dd>
@@ -1472,7 +1477,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_pojoSwaps_add</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.653">BEAN_pojoSwaps_add</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.658">BEAN_pojoSwaps_add</a></pre>
 <div class="block"><b>Configuration property:</b>  Add to POJO swap classes.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -1486,7 +1491,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_pojoSwaps_remove</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.658">BEAN_pojoSwaps_remove</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.663">BEAN_pojoSwaps_remove</a></pre>
 <div class="block"><b>Configuration property:</b>  Remove from POJO swap classes.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -1500,7 +1505,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_implClasses</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.675">BEAN_implClasses</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.680">BEAN_implClasses</a></pre>
 <div class="block"><b>Configuration property:</b>  Implementation classes for interfaces and abstract classes.
 
  <ul>
@@ -1526,7 +1531,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_implClasses_put</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.680">BEAN_implClasses_put</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.685">BEAN_implClasses_put</a></pre>
 <div class="block"><b>Configuration property:</b>  Add an implementation class.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -1540,7 +1545,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_includeProperties</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.707">BEAN_includeProperties</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.712">BEAN_includeProperties</a></pre>
 <div class="block"><b>Configuration property:</b>  Explicitly specify visible bean properties.
 
  <ul>
@@ -1576,7 +1581,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_includeProperties_put</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.712">BEAN_includeProperties_put</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.717">BEAN_includeProperties_put</a></pre>
 <div class="block"><b>Configuration property:</b>  Explicitly specify visible bean properties.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -1590,7 +1595,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_excludeProperties</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.739">BEAN_excludeProperties</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.744">BEAN_excludeProperties</a></pre>
 <div class="block"><b>Configuration property:</b>  Exclude specified properties from beans.
 
  <ul>
@@ -1626,7 +1631,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_excludeProperties_put</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.744">BEAN_excludeProperties_put</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.749">BEAN_excludeProperties_put</a></pre>
 <div class="block"><b>Configuration property:</b>  Exclude specified properties from beans.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -1640,7 +1645,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_beanDictionary</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.766">BEAN_beanDictionary</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.771">BEAN_beanDictionary</a></pre>
 <div class="block"><b>Configuration property:</b>  Bean lookup dictionary.
 
  <ul>
@@ -1671,7 +1676,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_beanDictionary_add</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.771">BEAN_beanDictionary_add</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.776">BEAN_beanDictionary_add</a></pre>
 <div class="block"><b>Configuration property:</b>  Add to bean dictionary.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -1685,7 +1690,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_beanDictionary_remove</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.776">BEAN_beanDictionary_remove</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.781">BEAN_beanDictionary_remove</a></pre>
 <div class="block"><b>Configuration property:</b>  Remove from bean dictionary.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -1699,7 +1704,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_beanTypePropertyName</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.788">BEAN_beanTypePropertyName</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.793">BEAN_beanTypePropertyName</a></pre>
 <div class="block"><b>Configuration property:</b>  Name to use for the bean type properties used to represent a bean type.
 
  <ul>
@@ -1720,7 +1725,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_defaultParser</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.803">BEAN_defaultParser</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.808">BEAN_defaultParser</a></pre>
 <div class="block"><b>Configuration property:</b>  Default parser to use when converting <code>Strings</code> to POJOs.
 
  <ul>
@@ -1744,7 +1749,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_locale</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.818">BEAN_locale</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.823">BEAN_locale</a></pre>
 <div class="block"><b>Configuration property:</b>  Locale.
 
  <ul>
@@ -1768,7 +1773,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_timeZone</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.833">BEAN_timeZone</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.838">BEAN_timeZone</a></pre>
 <div class="block"><b>Configuration property:</b>  TimeZone.
 
  <ul>
@@ -1792,7 +1797,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_mediaType</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.848">BEAN_mediaType</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.853">BEAN_mediaType</a></pre>
 <div class="block"><b>Configuration property:</b>  Media type.
 
  <ul>
@@ -1816,7 +1821,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>BEAN_debug</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.878">BEAN_debug</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.883">BEAN_debug</a></pre>
 <div class="block"><b>Configuration property:</b>  Debug mode.
 
  <ul>
@@ -1855,7 +1860,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT</h4>
-<pre>public static final&nbsp;<a href="../../../org/apache/juneau/BeanContext.html" title="class in org.apache.juneau">BeanContext</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.925">DEFAULT</a></pre>
+<pre>public static final&nbsp;<a href="../../../org/apache/juneau/BeanContext.html" title="class in org.apache.juneau">BeanContext</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.930">DEFAULT</a></pre>
 <div class="block">Default config.  All default settings.</div>
 </li>
 </ul>
@@ -1865,7 +1870,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockListLast">
 <li class="blockList">
 <h4>DEFAULT_SORTED</h4>
-<pre>public static final&nbsp;<a href="../../../org/apache/juneau/BeanContext.html" title="class in org.apache.juneau">BeanContext</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.928">DEFAULT_SORTED</a></pre>
+<pre>public static final&nbsp;<a href="../../../org/apache/juneau/BeanContext.html" title="class in org.apache.juneau">BeanContext</a> <a href="../../../src-html/org/apache/juneau/BeanContext.html#line.933">DEFAULT_SORTED</a></pre>
 <div class="block">Default config.  All default settings except sort bean properties.</div>
 </li>
 </ul>
@@ -1883,7 +1888,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BeanContext</h4>
-<pre>public&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.985">BeanContext</a>(<a href="../../../org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau">PropertyStore</a>&nbsp;ps)</pre>
+<pre>public&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.990">BeanContext</a>(<a href="../../../org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau">PropertyStore</a>&nbsp;ps)</pre>
 <div class="block">Constructor.
 
  <p>
@@ -1908,7 +1913,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>createSession</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1086">createSession</a>(<a href="../../../org/apache/juneau/BeanSessionArgs.html" title="class in org.apache.juneau">BeanSessionArgs</a>&nbsp;args)</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1093">createSession</a>(<a href="../../../org/apache/juneau/BeanSessionArgs.html" title="class in org.apache.juneau">BeanSessionArgs</a>&nbsp;args)</pre>
 <div class="block">Create a new bean session based on the properties defined on this context.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1924,7 +1929,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>createSession</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1099">createSession</a>()</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1106">createSession</a>()</pre>
 <div class="block">Create a new bean session based on the properties defined on this context.
 
  <p>
@@ -1942,7 +1947,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>hasSameCache</h4>
-<pre>public final&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1112">hasSameCache</a>(<a href="../../../org/apache/juneau/BeanContext.html" title="class in org.apache.juneau">BeanContext</a>&nbsp;bc)</pre>
+<pre>public final&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1119">hasSameCache</a>(<a href="../../../org/apache/juneau/BeanContext.html" title="class in org.apache.juneau">BeanContext</a>&nbsp;bc)</pre>
 <div class="block">Returns <jk>true</jk> if the specified bean context shares the same cache as this bean context.
 
  <p>
@@ -1961,7 +1966,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>isNotABean</h4>
-<pre>protected final&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1123">isNotABean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c)</pre>
+<pre>protected final&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1130">isNotABean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c)</pre>
 <div class="block">Determines whether the specified class is ignored as a bean class based on the various exclusion parameters
  specified on this context class.</div>
 <dl>
@@ -1978,7 +1983,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>isBean</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1147">isBean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1154">isBean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
 <div class="block">Returns <jk>true</jk> if the specified object is a bean.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1994,7 +1999,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>dumpCacheStats</h4>
-<pre>protected static&nbsp;void&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1156">dumpCacheStats</a>()</pre>
+<pre>protected static&nbsp;void&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1163">dumpCacheStats</a>()</pre>
 <div class="block">Prints meta cache statistics to <code>System.out</code>.</div>
 </li>
 </ul>
@@ -2004,7 +2009,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>getBeanMeta</h4>
-<pre>public final&nbsp;&lt;T&gt;&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in org.apache.juneau">BeanMeta</a>&lt;T&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1176">getBeanMeta</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;c)</pre>
+<pre>public final&nbsp;&lt;T&gt;&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in org.apache.juneau">BeanMeta</a>&lt;T&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1183">getBeanMeta</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;c)</pre>
 <div class="block">Returns the <a href="../../../org/apache/juneau/BeanMeta.html" title="class in org.apache.juneau"><code>BeanMeta</code></a> class for the specified class.</div>
 <dl>
 <dt><span class="paramLabel">Type Parameters:</span></dt>
@@ -2023,7 +2028,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>getClassMeta</h4>
-<pre>public final&nbsp;&lt;T&gt;&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;T&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1191">getClassMeta</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;type)</pre>
+<pre>public final&nbsp;&lt;T&gt;&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;T&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1198">getClassMeta</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;type)</pre>
 <div class="block">Construct a <code>ClassMeta</code> wrapper around a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang"><code>Class</code></a> object.</div>
 <dl>
 <dt><span class="paramLabel">Type Parameters:</span></dt>
@@ -2042,7 +2047,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>getClassMeta</h4>
-<pre>public final&nbsp;&lt;T&gt;&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;T&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1273">getClassMeta</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>&nbsp;type,
+<pre>public final&nbsp;&lt;T&gt;&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;T&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1280">getClassMeta</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>&nbsp;type,
                                            <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>...&nbsp;args)</pre>
 <div class="block">Used to resolve <code>ClassMetas</code> of type <code>Collection</code> and <code>Map</code> that have
  <code>ClassMeta</code> values that themselves could be collections or maps.
@@ -2093,7 +2098,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>getClassMetaForObject</h4>
-<pre>public final&nbsp;&lt;T&gt;&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;T&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1457">getClassMetaForObject</a>(T&nbsp;o)</pre>
+<pre>public final&nbsp;&lt;T&gt;&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;T&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1464">getClassMetaForObject</a>(T&nbsp;o)</pre>
 <div class="block">Shortcut for calling <code>getClassMeta(o.getClass())</code>.</div>
 <dl>
 <dt><span class="paramLabel">Type Parameters:</span></dt>
@@ -2111,7 +2116,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>resolveClassMeta</h4>
-<pre>protected final&nbsp;&lt;T&gt;&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;T&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1476">resolveClassMeta</a>(<a href="../../../org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation">BeanProperty</a>&nbsp;p,
+<pre>protected final&nbsp;&lt;T&gt;&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;T&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1483">resolveClassMeta</a>(<a href="../../../org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation">BeanProperty</a>&nbsp;p,
                                                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>&nbsp;t,
                                                   <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;[]&gt;&nbsp;typeVarImpls)</pre>
 <div class="block">Used for determining the class type on a method or field where a <code>@BeanProperty</code> annotation may be present.</div>
@@ -2135,7 +2140,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>getBeanTypePropertyName</h4>
-<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1580">getBeanTypePropertyName</a>()</pre>
+<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1590">getBeanTypePropertyName</a>()</pre>
 <div class="block">Returns the type property name as defined by <a href="../../../org/apache/juneau/BeanContext.html#BEAN_beanTypePropertyName"><code>BEAN_beanTypePropertyName</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -2149,7 +2154,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>getBeanRegistry</h4>
-<pre>protected final&nbsp;<a href="../../../org/apache/juneau/BeanRegistry.html" title="class in org.apache.juneau">BeanRegistry</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1589">getBeanRegistry</a>()</pre>
+<pre>protected final&nbsp;<a href="../../../org/apache/juneau/BeanRegistry.html" title="class in org.apache.juneau">BeanRegistry</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1599">getBeanRegistry</a>()</pre>
 <div class="block">Returns the bean registry defined in this bean context defined by <a href="../../../org/apache/juneau/BeanContext.html#BEAN_beanDictionary"><code>BEAN_beanDictionary</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -2163,7 +2168,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>getImplClassConstructor</h4>
-<pre>protected final&nbsp;&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Constructor.html?is-external=true" title="class or interface in java.lang.reflect">Constructor</a>&lt;? extends T&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1601">getImplClassConstructor</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;c,
+<pre>protected final&nbsp;&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Constructor.html?is-external=true" title="class or interface in java.lang.reflect">Constructor</a>&lt;? extends T&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1611">getImplClassConstructor</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;c,
                                                                      <a href="../../../org/apache/juneau/Visibility.html" title="enum in org.apache.juneau">Visibility</a>&nbsp;v)</pre>
 <div class="block">Gets the no-arg constructor for the specified class.</div>
 <dl>
@@ -2183,7 +2188,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>getIncludeProperties</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1643">getIncludeProperties</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1653">getIncludeProperties</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c)</pre>
 <div class="block">Returns the <a href="../../../org/apache/juneau/BeanContext.html#BEAN_includeProperties"><code>BEAN_includeProperties</code></a> setting for the specified class.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2199,7 +2204,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>getExcludeProperties</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1665">getExcludeProperties</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1675">getExcludeProperties</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c)</pre>
 <div class="block">Returns the <a href="../../../org/apache/juneau/BeanContext.html#BEAN_excludeProperties"><code>BEAN_excludeProperties</code></a> setting for the specified class.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2215,7 +2220,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>object</h4>
-<pre>protected final&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1693">object</a>()</pre>
+<pre>protected final&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1703">object</a>()</pre>
 <div class="block">Returns a reusable <a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau"><code>ClassMeta</code></a> representation for the class <code>Object</code>.
 
  <p>
@@ -2236,7 +2241,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>string</h4>
-<pre>protected final&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1709">string</a>()</pre>
+<pre>protected final&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1719">string</a>()</pre>
 <div class="block">Returns a reusable <a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau"><code>ClassMeta</code></a> representation for the class <code>String</code>.
 
  <p>
@@ -2257,7 +2262,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>_class</h4>
-<pre>protected final&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1725">_class</a>()</pre>
+<pre>protected final&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1735">_class</a>()</pre>
 <div class="block">Returns a reusable <a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau"><code>ClassMeta</code></a> representation for the class <code>Class</code>.
 
  <p>
@@ -2278,7 +2283,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1730">hashCode</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1740">hashCode</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -2291,7 +2296,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1735">equals</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1745">equals</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -2304,7 +2309,7 @@ extends <a href="../../../org/apache/juneau/Context.html" title="class in org.ap
 <ul class="blockListLast">
 <li class="blockList">
 <h4>asMap</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1744">asMap</a>()</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a>&nbsp;<a href="../../../src-html/org/apache/juneau/BeanContext.html#line.1754">asMap</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/juneau/Context.html#asMap--">Context</a></code></span></div>
 <div class="block">Returns the properties defined on this bean context as a simple map for debugging purposes.</div>
 <dl>



[30/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/http/MediaType.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/http/MediaType.html b/content/site/apidocs/org/apache/juneau/http/MediaType.html
index fb8c4b8..34e256c 100644
--- a/content/site/apidocs/org/apache/juneau/http/MediaType.html
+++ b/content/site/apidocs/org/apache/juneau/http/MediaType.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
+var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre><a href="../../../../org/apache/juneau/annotation/BeanIgnore.html" title="annotation in org.apache.juneau.annotation">@BeanIgnore</a>
-public class <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.38">MediaType</a>
+public class <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.40">MediaType</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&gt;</pre>
 <div class="block">Describes a single media type used in content negotiation between an HTTP client and server, as described in
@@ -263,52 +263,60 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 </td>
 </tr>
 <tr id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/http/MediaType.html#forStrings-java.lang.String...-">forStrings</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;s)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/http/MediaType.html#forString-java.lang.String-"><code>forString(String)</code></a> but allows you to construct an array of <code>MediaTypes</code> from an
+ array of strings.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/http/MediaType.html#getParameters--">getParameters</a></span>()</code>
 <div class="block">Returns the additional parameters on this media type.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/http/MediaType.html#getSubType--">getSubType</a></span>()</code>
 <div class="block">Returns the <js>'subType'</js> fragment of the <js>'type/subType'</js> string.</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/http/MediaType.html#getSubTypes--">getSubTypes</a></span>()</code>
 <div class="block">Returns the subtypes broken down by fragments delimited by <js>"'"</js>.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/http/MediaType.html#getType--">getType</a></span>()</code>
 <div class="block">Returns the <js>'type'</js> fragment of the <js>'type/subType'</js> string.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/http/MediaType.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/http/MediaType.html#hasSubType-java.lang.String-">hasSubType</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;st)</code>
 <div class="block">Returns <jk>true</jk> if the subtype contains the specified <js>'+'</js> delimited subtype value.</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
-<td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/http/MediaType.html#match-org.apache.juneau.http.MediaType-">match</a></span>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;o)</code>
-<div class="block">Returns a match metric against the specified media type where a larger number represents a better match.</div>
-</td>
-</tr>
 <tr id="i10" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/http/MediaType.html#matches-org.apache.juneau.http.MediaType-">matches</a></span>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;o)</code>
-<div class="block">Returns <jk>true</jk> if this media type is a match for the specified media type.</div>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/http/MediaType.html#isMeta--">isMeta</a></span>()</code>
+<div class="block">Returns <jk>true</jk> if this media type contains the <js>'*'</js> meta character.</div>
 </td>
 </tr>
 <tr id="i11" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/http/MediaType.html#match-org.apache.juneau.http.MediaType-boolean-">match</a></span>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;o,
+     boolean&nbsp;allowExtraSubTypes)</code>
+<div class="block">Returns a match metric against the specified media type where a larger number represents a better match.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/http/MediaType.html#toString--">toString</a></span>()</code>&nbsp;</td>
 </tr>
@@ -340,7 +348,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>CSV</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.46">CSV</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.48">CSV</a></pre>
 <div class="block">Reusable predefined media type</div>
 </li>
 </ul>
@@ -350,7 +358,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>HTML</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.47">HTML</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.49">HTML</a></pre>
 <div class="block">Reusable predefined media type</div>
 </li>
 </ul>
@@ -360,7 +368,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>JSON</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.48">JSON</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.50">JSON</a></pre>
 <div class="block">Reusable predefined media type</div>
 </li>
 </ul>
@@ -370,7 +378,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>MSGPACK</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.49">MSGPACK</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.51">MSGPACK</a></pre>
 <div class="block">Reusable predefined media type</div>
 </li>
 </ul>
@@ -380,7 +388,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>PLAIN</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.50">PLAIN</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.52">PLAIN</a></pre>
 <div class="block">Reusable predefined media type</div>
 </li>
 </ul>
@@ -390,7 +398,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>UON</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.51">UON</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.53">UON</a></pre>
 <div class="block">Reusable predefined media type</div>
 </li>
 </ul>
@@ -400,7 +408,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>URLENCODING</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.52">URLENCODING</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.54">URLENCODING</a></pre>
 <div class="block">Reusable predefined media type</div>
 </li>
 </ul>
@@ -410,7 +418,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>XML</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.53">XML</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.55">XML</a></pre>
 <div class="block">Reusable predefined media type</div>
 </li>
 </ul>
@@ -420,7 +428,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>XMLSOAP</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.54">XMLSOAP</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.56">XMLSOAP</a></pre>
 <div class="block">Reusable predefined media type</div>
 </li>
 </ul>
@@ -430,7 +438,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>RDF</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.56">RDF</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.58">RDF</a></pre>
 <div class="block">Reusable predefined media type</div>
 </li>
 </ul>
@@ -440,7 +448,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>RDFABBREV</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.57">RDFABBREV</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.59">RDFABBREV</a></pre>
 <div class="block">Reusable predefined media type</div>
 </li>
 </ul>
@@ -450,7 +458,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>NTRIPLE</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.58">NTRIPLE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.60">NTRIPLE</a></pre>
 <div class="block">Reusable predefined media type</div>
 </li>
 </ul>
@@ -460,7 +468,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>TURTLE</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.59">TURTLE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.61">TURTLE</a></pre>
 <div class="block">Reusable predefined media type</div>
 </li>
 </ul>
@@ -470,7 +478,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockListLast">
 <li class="blockList">
 <h4>N3</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.60">N3</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> <a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.62">N3</a></pre>
 <div class="block">Reusable predefined media type</div>
 </li>
 </ul>
@@ -488,7 +496,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>forString</h4>
-<pre>public static&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.93">forString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;s)</pre>
+<pre>public static&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.96">forString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;s)</pre>
 <div class="block">Returns the media type for the specified string.
  The same media type strings always return the same objects so that these objects
  can be compared for equality using '=='.
@@ -507,19 +515,37 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>s</code> - The media type string.
    Will be lowercased.
-   Returns <jk>null</jk> if input is null.</dd>
+   Returns <jk>null</jk> if input is null or empty.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>A cached media type object.</dd>
 </dl>
 </li>
 </ul>
+<a name="forStrings-java.lang.String...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>forStrings</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>[]&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.119">forStrings</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;s)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/http/MediaType.html#forString-java.lang.String-"><code>forString(String)</code></a> but allows you to construct an array of <code>MediaTypes</code> from an
+ array of strings.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - The media type strings.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An array of <code>MediaType</code> objects.
+   <br>Always the same length as the input string array.</dd>
+</dl>
+</li>
+</ul>
 <a name="getType--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getType</h4>
-<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.160">getType</a>()</pre>
+<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.186">getType</a>()</pre>
 <div class="block">Returns the <js>'type'</js> fragment of the <js>'type/subType'</js> string.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -533,7 +559,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>getSubType</h4>
-<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.169">getSubType</a>()</pre>
+<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.195">getSubType</a>()</pre>
 <div class="block">Returns the <js>'subType'</js> fragment of the <js>'type/subType'</js> string.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -547,7 +573,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>hasSubType</h4>
-<pre>public final&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.181">hasSubType</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;st)</pre>
+<pre>public final&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.207">hasSubType</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;st)</pre>
 <div class="block">Returns <jk>true</jk> if the subtype contains the specified <js>'+'</js> delimited subtype value.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -564,7 +590,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>getSubTypes</h4>
-<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.198">getSubTypes</a>()</pre>
+<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.224">getSubTypes</a>()</pre>
 <div class="block">Returns the subtypes broken down by fragments delimited by <js>"'"</js>.
 
  <P>
@@ -576,56 +602,68 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 </dl>
 </li>
 </ul>
-<a name="matches-org.apache.juneau.http.MediaType-">
+<a name="isMeta--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>matches</h4>
-<pre>public final&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.217">matches</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;o)</pre>
-<div class="block">Returns <jk>true</jk> if this media type is a match for the specified media type.
-
- <p>
- Matches if any of the following is true:
- <ul>
-   <li>Both type and subtype are the same.
-   <li>One or both types are <js>'*'</js> and the subtypes are the same.
-   <li>One or both subtypes are <js>'*'</js> and the types are the same.
-   <li>Either is <js>'*\/*'</js>.
- </ul></div>
+<h4>isMeta</h4>
+<pre>public final&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.233">isMeta</a>()</pre>
+<div class="block">Returns <jk>true</jk> if this media type contains the <js>'*'</js> meta character.</div>
 <dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>o</code> - The media type to compare with.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd><jk>true</jk> if the media types match.</dd>
+<dd><jk>true</jk> if this media type contains the <js>'*'</js> meta character.</dd>
 </dl>
 </li>
 </ul>
-<a name="match-org.apache.juneau.http.MediaType-">
+<a name="match-org.apache.juneau.http.MediaType-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>match</h4>
-<pre>public final&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.241">match</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;o)</pre>
+<pre>public final&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.279">match</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;o,
+                       boolean&nbsp;allowExtraSubTypes)</pre>
 <div class="block">Returns a match metric against the specified media type where a larger number represents a better match.
 
+ <p>
+ This media type can contain <js>'*'</js> metacharacters.
+ <br>The comparison media type must not.
+
  <ul>
    <li>Exact matches (e.g. <js>"text/json"<js>/</js>"text/json"</js>) should match
       better than meta-character matches (e.g. <js>"text/*"<js>/</js>"text/json"</js>)
    <li>The comparison media type can have additional subtype tokens (e.g. <js>"text/json+foo"</js>)
-      that will not prevent a match.  The reverse is not true, e.g. the comparison media type
-      must contain all subtype tokens found in the comparing media type.
+      that will not prevent a match if the <code>allowExtraSubTypes</code> flag is set.
+      The reverse is not true, e.g. the comparison media type must contain all subtype tokens found in the
+      comparing media type.
       <ul>
          <li>We want the <a href="../../../../org/apache/juneau/json/JsonSerializer.html" title="class in org.apache.juneau.json"><code>JsonSerializer</code></a> (<js>"text/json"</js>) class to be able to handle requests for <js>"text/json+foo"</js>.
          <li>We want to make sure <a href="../../../../org/apache/juneau/json/JsonSerializer.Simple.html" title="class in org.apache.juneau.json"><code>JsonSerializer.Simple</code></a> (<js>"text/json+simple"</js>) does not handle
             requests for <js>"text/json"</js>.
       </ul>
       More token matches should result in a higher match number.
+ </ul>
+
+ The formula is as follows for <code>type/subTypes</code>:
+ <ul>
+   <li>An exact match is <code>100,000</code>.
+   <li>Add the following for type (assuming subtype match is &lt;0):
+   <ul>
+      <li><code>10,000</code> for an exact match (e.g. <js>"text"</js>==<js>"text"</js>).
+      <li><code>5,000</code> for a meta match (e.g. <js>"*"</js>==<js>"text"</js>).
+   <ul>
+   <li>Add the following for subtype (assuming type match is &lt;0):
+   <ul>
+      <li><code>7,500</code> for an exact match (e.g. <js>"json+foo"</js>==<js>"json+foo"</js> or <js>"json+foo"</js>==<js>"foo+json"</js>)
+      <li><code>100</code> for every subtype entry match (e.g. <js>"json"</js>/<js>"json+foo"</js>)
+      <li><code>10</code> for a subtype entry meta match (e.g. <js>"*"</js>/<js>"json"</js> or <js>"json+*"</js>/<js>"json+foo"</js>)
+   </ul>
  </ul></div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>o</code> - The media type to compare with.</dd>
+<dd><code>allowExtraSubTypes</code> - If <jk>true</jk>,</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd><jk>true</jk> if the media types match.</dd>
 </dl>
@@ -637,7 +675,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>getParameters</h4>
-<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.286">getParameters</a>()</pre>
+<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.334">getParameters</a>()</pre>
 <div class="block">Returns the additional parameters on this media type.
 
  <p>
@@ -655,7 +693,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.291">toString</a>()</pre>
+<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.339">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -668,7 +706,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public final&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.302">hashCode</a>()</pre>
+<pre>public final&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.350">hashCode</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -681,7 +719,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public final&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.307">equals</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre>public final&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.355">equals</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -694,7 +732,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <ul class="blockListLast">
 <li class="blockList">
 <h4>compareTo</h4>
-<pre>public final&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.312">compareTo</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;o)</pre>
+<pre>public final&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaType.html#line.360">compareTo</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true#compareTo-T-" title="class or interface in java.lang">compareTo</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&gt;</code></dd>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/http/MediaTypeRange.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/http/MediaTypeRange.html b/content/site/apidocs/org/apache/juneau/http/MediaTypeRange.html
index 529bde3..03bd570 100644
--- a/content/site/apidocs/org/apache/juneau/http/MediaTypeRange.html
+++ b/content/site/apidocs/org/apache/juneau/http/MediaTypeRange.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -183,19 +183,12 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 </td>
 </tr>
 <tr id="i6" class="altColor">
-<td class="colFirst"><code>float</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/http/MediaTypeRange.html#matches-org.apache.juneau.http.MediaType-">matches</a></span>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;o)</code>
-<div class="block">Matches the specified media type against this range and returns a q-value between 0 and 1 indicating the
- quality of the match.</div>
-</td>
-</tr>
-<tr id="i7" class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../org/apache/juneau/http/MediaTypeRange.html" title="class in org.apache.juneau.http">MediaTypeRange</a>[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/http/MediaTypeRange.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
 <div class="block">Parses an <code>Accept</code> header value into an array of media ranges.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/http/MediaTypeRange.html#toString--">toString</a></span>()</code>
 <div class="block">Provides a string representation of this media range, suitable for use as an <code>Accept</code> header value.</div>
@@ -375,7 +368,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 <a name="compareTo-org.apache.juneau.http.MediaTypeRange-">
 <!--   -->
 </a>
-<ul class="blockList">
+<ul class="blockListLast">
 <li class="blockList">
 <h4>compareTo</h4>
 <pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaTypeRange.html#line.269">compareTo</a>(<a href="../../../../org/apache/juneau/http/MediaTypeRange.html" title="class in org.apache.juneau.http">MediaTypeRange</a>&nbsp;o)</pre>
@@ -397,23 +390,6 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparabl
 </dl>
 </li>
 </ul>
-<a name="matches-org.apache.juneau.http.MediaType-">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>matches</h4>
-<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/apache/juneau/http/MediaTypeRange.html#line.289">matches</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;o)</pre>
-<div class="block">Matches the specified media type against this range and returns a q-value between 0 and 1 indicating the
- quality of the match.</div>
-<dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>o</code> - The media type to match against.</dd>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>A float between 0 and 1.  1 is a perfect match.  0 is no match at all.</dd>
-</dl>
-</li>
-</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/internal/ArrayUtils.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/internal/ArrayUtils.html b/content/site/apidocs/org/apache/juneau/internal/ArrayUtils.html
index 8093002..46190c3 100644
--- a/content/site/apidocs/org/apache/juneau/internal/ArrayUtils.html
+++ b/content/site/apidocs/org/apache/juneau/internal/ArrayUtils.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9};
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -196,77 +196,84 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 </td>
 </tr>
 <tr id="i7" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/ArrayUtils.html#equals-java.lang.String:A-java.lang.String:A-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;a1,
+      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;a2)</code>
+<div class="block">Returns <jk>true</jk> if the following sorted arrays are equals.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/ArrayUtils.html#getFirst-java.lang.Object-">getFirst</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;val)</code>
 <div class="block">Returns the first object in the specified collection or array.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/ArrayUtils.html#indexOf-java.lang.String-java.lang.String:A-">indexOf</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;element,
        <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;array)</code>
 <div class="block">Returns the index position of the element in the specified array using the <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang"><code>String.equals(Object)</code></a> method.</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>static &lt;T&gt;&nbsp;int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/ArrayUtils.html#indexOf-T-T:A-">indexOf</a></span>(T&nbsp;element,
        T[]&nbsp;array)</code>
 <div class="block">Returns the index position of the element in the specified array using the <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang"><code>Object.equals(Object)</code></a> method.</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/ArrayUtils.html#isArray-java.lang.Object-">isArray</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;array)</code>
 <div class="block">Returns <jk>true</jk> if the specified object is an array.</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/ArrayUtils.html#iterator-java.lang.Object-">iterator</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;array)</code>
 <div class="block">Returns an iterator against an array.</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>static &lt;T&gt;&nbsp;T[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/ArrayUtils.html#reverse-T:A-">reverse</a></span>(T[]&nbsp;array)</code>
 <div class="block">Creates a new array with reversed entries.</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/ArrayUtils.html#toArray-java.util.Collection-java.lang.Class-">toArray</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;?&gt;&nbsp;c,
        <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;componentType)</code>
 <div class="block">Converts the specified collection to an array.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;?&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/ArrayUtils.html#toList-java.lang.Iterable-">toList</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;?&gt;&nbsp;i)</code>
 <div class="block">Converts an Iterable to a list.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/ArrayUtils.html#toList-java.lang.Object-java.lang.Class-">toList</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;array,
       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;componentType)</code>
 <div class="block">Converts the specified array to an <code>ArrayList</code></div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>static &lt;T&gt;&nbsp;T[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/ArrayUtils.html#toObjectArray-java.util.Collection-java.lang.Class-">toObjectArray</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;?&gt;&nbsp;c,
              <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;componentType)</code>
 <div class="block">Shortcut for calling <code>myList.toArray(new T[myList.size()]);</code></div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/ArrayUtils.html#toPrimitiveArray-java.lang.Object-">toPrimitiveArray</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
 <div class="block">Converts a primitive wrapper array (e.g.</div>
 </td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/ArrayUtils.html#toStringArray-java.util.Collection-">toStringArray</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;?&gt;&nbsp;c)</code>
 <div class="block">Converts the specified collection to an array of strings.</div>
@@ -667,7 +674,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <a name="toStringArray-java.util.Collection-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>toStringArray</h4>
 <pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ArrayUtils.html#line.412">toStringArray</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;?&gt;&nbsp;c)</pre>
@@ -684,6 +691,24 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 </dl>
 </li>
 </ul>
+<a name="equals-java.lang.String:A-java.lang.String:A-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ArrayUtils.html#line.427">equals</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;a1,
+                             <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;a2)</pre>
+<div class="block">Returns <jk>true</jk> if the following sorted arrays are equals.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>a1</code> - Array #1.</dd>
+<dd><code>a2</code> - Array #2.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><jk>true</jk> if the following sorted arrays are equals.</dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/internal/ClassUtils.MethodInfo.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/internal/ClassUtils.MethodInfo.html b/content/site/apidocs/org/apache/juneau/internal/ClassUtils.MethodInfo.html
index aea5aea..7213011 100644
--- a/content/site/apidocs/org/apache/juneau/internal/ClassUtils.MethodInfo.html
+++ b/content/site/apidocs/org/apache/juneau/internal/ClassUtils.MethodInfo.html
@@ -106,7 +106,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.760">ClassUtils.MethodInfo</a>
+<pre>public static class <a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.766">ClassUtils.MethodInfo</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Simple bean that shows the name, parameter types, and return type of a method.</div>
 </li>
@@ -175,7 +175,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>methodName</h4>
-<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.MethodInfo.html#line.761">methodName</a></pre>
+<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.MethodInfo.html#line.767">methodName</a></pre>
 </li>
 </ul>
 <a name="parameterTypes">
@@ -184,7 +184,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>parameterTypes</h4>
-<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.MethodInfo.html#line.762">parameterTypes</a></pre>
+<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.MethodInfo.html#line.768">parameterTypes</a></pre>
 </li>
 </ul>
 <a name="returnType">
@@ -193,7 +193,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>returnType</h4>
-<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.MethodInfo.html#line.763">returnType</a></pre>
+<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.MethodInfo.html#line.769">returnType</a></pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/internal/ClassUtils.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/internal/ClassUtils.html b/content/site/apidocs/org/apache/juneau/internal/ClassUtils.html
index eec364a..b1a9144 100644
--- a/content/site/apidocs/org/apache/juneau/internal/ClassUtils.html
+++ b/content/site/apidocs/org/apache/juneau/internal/ClassUtils.html
@@ -967,7 +967,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>findPublicMethod</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.544">findPublicMethod</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c,
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.550">findPublicMethod</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c,
                                       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
                                       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;returnType,
                                       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;...&nbsp;parameterTypes)</pre>
@@ -995,7 +995,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>findPublicConstructor</h4>
-<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Constructor.html?is-external=true" title="class or interface in java.lang.reflect">Constructor</a>&lt;T&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.577">findPublicConstructor</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;c,
+<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Constructor.html?is-external=true" title="class or interface in java.lang.reflect">Constructor</a>&lt;T&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.583">findPublicConstructor</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;c,
                                                        <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;...&nbsp;parameterTypes)</pre>
 <div class="block">Finds a public constructor with the specified parameters without throwing an exception.</div>
 <dl>
@@ -1014,7 +1014,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>findPublicConstructor</h4>
-<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Constructor.html?is-external=true" title="class or interface in java.lang.reflect">Constructor</a>&lt;T&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.606">findPublicConstructor</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;c,
+<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Constructor.html?is-external=true" title="class or interface in java.lang.reflect">Constructor</a>&lt;T&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.612">findPublicConstructor</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;c,
                                                        <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;args)</pre>
 <div class="block">Finds the public constructor that can take in the specified arguments.</div>
 <dl>
@@ -1033,7 +1033,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getClasses</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;[]&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.616">getClasses</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;args)</pre>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;[]&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.622">getClasses</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;args)</pre>
 <div class="block">Returns the class types for the specified arguments.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1049,7 +1049,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMethodInfo</h4>
-<pre>public static&nbsp;<a href="../../../../org/apache/juneau/internal/ClassUtils.MethodInfo.html" title="class in org.apache.juneau.internal">ClassUtils.MethodInfo</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.738">getMethodInfo</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;m)</pre>
+<pre>public static&nbsp;<a href="../../../../org/apache/juneau/internal/ClassUtils.MethodInfo.html" title="class in org.apache.juneau.internal">ClassUtils.MethodInfo</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.744">getMethodInfo</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;m)</pre>
 <div class="block">Returns a <a href="../../../../org/apache/juneau/internal/ClassUtils.MethodInfo.html" title="class in org.apache.juneau.internal"><code>ClassUtils.MethodInfo</code></a> bean that describes the specified method.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1065,7 +1065,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMethodInfo</h4>
-<pre>public static&nbsp;<a href="../../../../org/apache/juneau/internal/ClassUtils.MethodInfo.html" title="class in org.apache.juneau.internal">ClassUtils.MethodInfo</a>[]&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.748">getMethodInfo</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&gt;&nbsp;m)</pre>
+<pre>public static&nbsp;<a href="../../../../org/apache/juneau/internal/ClassUtils.MethodInfo.html" title="class in org.apache.juneau.internal">ClassUtils.MethodInfo</a>[]&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.754">getMethodInfo</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&gt;&nbsp;m)</pre>
 <div class="block">Returns <a href="../../../../org/apache/juneau/internal/ClassUtils.MethodInfo.html" title="class in org.apache.juneau.internal"><code>ClassUtils.MethodInfo</code></a> beans that describe the specified methods.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1081,7 +1081,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>newInstance</h4>
-<pre>public static&nbsp;&lt;T&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.786">newInstance</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;c,
+<pre>public static&nbsp;&lt;T&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.792">newInstance</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;c,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;c2,
                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;args)</pre>
 <div class="block">Creates an instance of the specified class without throwing exceptions.</div>
@@ -1104,7 +1104,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>newInstanceFromOuter</h4>
-<pre>public static&nbsp;&lt;T&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.805">newInstanceFromOuter</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;outer,
+<pre>public static&nbsp;&lt;T&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.811">newInstanceFromOuter</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;outer,
                                          <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;c,
                                          <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;c2,
                                          <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;args)</pre>
@@ -1130,7 +1130,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getAllFields</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.844">getAllFields</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;c,
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.850">getAllFields</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;c,
                                            boolean&nbsp;parentFirst)</pre>
 <div class="block">Returns all the fields in the specified class and all parent classes.
 
@@ -1151,7 +1151,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getAllMethods</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.902">getAllMethods</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;c,
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.908">getAllMethods</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;c,
                                              boolean&nbsp;parentFirst)</pre>
 <div class="block">Returns all the methods in the specified class and all parent classes.
 
@@ -1172,7 +1172,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>sort</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>[]&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.972">sort</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>[]&nbsp;m)</pre>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>[]&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.978">sort</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>[]&nbsp;m)</pre>
 <div class="block">Sorts methods in alphabetical order.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1188,7 +1188,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>sort</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</a>[]&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.991">sort</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</a>[]&nbsp;m)</pre>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</a>[]&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.997">sort</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</a>[]&nbsp;m)</pre>
 <div class="block">Sorts methods in alphabetical order.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1204,7 +1204,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getParentClasses</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.1004">getParentClasses</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c,
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.1010">getParentClasses</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c,
                                                   boolean&nbsp;parentFirst,
                                                   boolean&nbsp;includeInterfaces)</pre>
 <div class="block">Returns a list of all the parent classes of the specified class including the class itself.</div>
@@ -1224,7 +1224,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getPrimitiveDefault</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.1034">getPrimitiveDefault</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;primitiveClass)</pre>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.1040">getPrimitiveDefault</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;primitiveClass)</pre>
 <div class="block">Returns the default value for the specified primitive class.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1240,7 +1240,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.1067">toString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;m)</pre>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.1073">toString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;m)</pre>
 <div class="block">Returns a readable representation of the specified method.
 
  <p>
@@ -1259,7 +1259,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.1087">toString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</a>&nbsp;f)</pre>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.1093">toString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</a>&nbsp;f)</pre>
 <div class="block">Returns a readable representation of the specified field.
 
  <p>
@@ -1278,7 +1278,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>assertArgsOfType</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.1098">assertArgsOfType</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;m,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/juneau/internal/ClassUtils.html#line.1104">assertArgsOfType</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;m,
                                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;...&nbsp;args)
                              throws <a href="../../../../org/apache/juneau/FormattedIllegalArgumentException.html" title="class in org.apache.juneau">FormattedIllegalArgumentException</a></pre>
 <div class="block">Throws an <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang"><code>IllegalArgumentException</code></a> if the parameters on the method are not in the specified list provided.</div>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/internal/DelegateBeanMap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/internal/DelegateBeanMap.html b/content/site/apidocs/org/apache/juneau/internal/DelegateBeanMap.html
index 4f3cbdd..0b2047c 100644
--- a/content/site/apidocs/org/apache/juneau/internal/DelegateBeanMap.html
+++ b/content/site/apidocs/org/apache/juneau/internal/DelegateBeanMap.html
@@ -361,7 +361,7 @@ extends <a href="../../../../org/apache/juneau/BeanMap.html" title="class in org
  in a transformed value.
  For example, if the bean property type class is a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a> and the bean property has the
  <a href="../../../../org/apache/juneau/transforms/DateSwap.ISO8601DT.html" title="class in org.apache.juneau.transforms"><code>DateSwap.ISO8601DT</code></a> swap associated with it through the
- <a href="../../../../org/apache/juneau/annotation/BeanProperty.html#swap--"><code>@BeanProperty.swap()</code></a> annotation, the value being passed in must be
+ <a href="../../../../org/apache/juneau/annotation/Swap.html#value--"><code>@Swap.value()</code></a> annotation, the value being passed in must be
  a String containing an ISO8601 date-time string value.
 
  <h5 class='section'>Example:</h5>
@@ -408,7 +408,7 @@ extends <a href="../../../../org/apache/juneau/BeanMap.html" title="class in org
  will return the transformed value.
  For example, if the bean property type class is a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a> and the bean property has the
  <a href="../../../../org/apache/juneau/transforms/DateSwap.ISO8601DT.html" title="class in org.apache.juneau.transforms"><code>DateSwap.ISO8601DT</code></a> swap associated with it through the
- <a href="../../../../org/apache/juneau/annotation/BeanProperty.html#swap--"><code>@BeanProperty.swap()</code></a> annotation, this method will return a String containing an
+ <a href="../../../../org/apache/juneau/annotation/Swap.html#value--"><code>@Swap.value()</code></a> annotation, this method will return a String containing an
  ISO8601 date-time string value.
 
  <h5 class='section'>Example:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/jena/RdfParserBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/jena/RdfParserBuilder.html b/content/site/apidocs/org/apache/juneau/jena/RdfParserBuilder.html
index e5fc98b..7102a7a 100644
--- a/content/site/apidocs/org/apache/juneau/jena/RdfParserBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/jena/RdfParserBuilder.html
@@ -2612,7 +2612,7 @@ extends <a href="../../../../org/apache/juneau/parser/ParserBuilder.html" title=
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/jena/RdfSerializerBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/jena/RdfSerializerBuilder.html b/content/site/apidocs/org/apache/juneau/jena/RdfSerializerBuilder.html
index 265eeed..25dc33d 100644
--- a/content/site/apidocs/org/apache/juneau/jena/RdfSerializerBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/jena/RdfSerializerBuilder.html
@@ -3393,7 +3393,7 @@ extends <a href="../../../../org/apache/juneau/serializer/SerializerBuilder.html
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/jso/JsoParserBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/jso/JsoParserBuilder.html b/content/site/apidocs/org/apache/juneau/jso/JsoParserBuilder.html
index 1df7da9..9b66b4a 100644
--- a/content/site/apidocs/org/apache/juneau/jso/JsoParserBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/jso/JsoParserBuilder.html
@@ -2172,7 +2172,7 @@ extends <a href="../../../../org/apache/juneau/parser/ParserBuilder.html" title=
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/jso/JsoSerializerBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/jso/JsoSerializerBuilder.html b/content/site/apidocs/org/apache/juneau/jso/JsoSerializerBuilder.html
index a615950..19e5b1e 100644
--- a/content/site/apidocs/org/apache/juneau/jso/JsoSerializerBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/jso/JsoSerializerBuilder.html
@@ -2856,7 +2856,7 @@ extends <a href="../../../../org/apache/juneau/serializer/SerializerBuilder.html
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/json/JsonParserBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/json/JsonParserBuilder.html b/content/site/apidocs/org/apache/juneau/json/JsonParserBuilder.html
index 926f7b8..d8baf01 100644
--- a/content/site/apidocs/org/apache/juneau/json/JsonParserBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/json/JsonParserBuilder.html
@@ -2172,7 +2172,7 @@ extends <a href="../../../../org/apache/juneau/parser/ParserBuilder.html" title=
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>



[32/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/ClassMeta.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/ClassMeta.html b/content/site/apidocs/org/apache/juneau/ClassMeta.html
index a1ca80e..65ccfc7 100644
--- a/content/site/apidocs/org/apache/juneau/ClassMeta.html
+++ b/content/site/apidocs/org/apache/juneau/ClassMeta.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre><a href="../../../org/apache/juneau/annotation/Bean.html" title="annotation in org.apache.juneau.annotation">@Bean</a>(<a href="../../../org/apache/juneau/annotation/Bean.html#properties--">properties</a>="innerClass,classCategory,elementType,keyType,valueType,notABeanReason,initException,beanMeta")
-public final class <a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.57">ClassMeta</a>&lt;T&gt;
+public final class <a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.59">ClassMeta</a>&lt;T&gt;
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a></pre>
 <div class="block">A wrapper class around the <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang"><code>Class</code></a> object that provides cached information about that class.
@@ -322,8 +322,8 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/T
 </tr>
 <tr id="i27" class="rowColor">
 <td class="colFirst"><code><a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a>&lt;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>,?&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/ClassMeta.html#getPojoSwap--">getPojoSwap</a></span>()</code>
-<div class="block">Returns the <a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> associated with this class.</div>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/ClassMeta.html#getPojoSwap-org.apache.juneau.BeanSession-">getPojoSwap</a></span>(<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session)</code>
+<div class="block">Returns the <a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> associated with this class that's the best match for the specified session.</div>
 </td>
 </tr>
 <tr id="i28" class="altColor">
@@ -359,7 +359,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/T
 </tr>
 <tr id="i33" class="rowColor">
 <td class="colFirst"><code><a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/ClassMeta.html#getSerializedClassMeta--">getSerializedClassMeta</a></span>()</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/ClassMeta.html#getSerializedClassMeta-org.apache.juneau.BeanSession-">getSerializedClassMeta</a></span>(<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session)</code>
 <div class="block">Returns the serialized (swapped) form of this class if there is an <a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> associated with it.</div>
 </td>
 </tr>
@@ -663,7 +663,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/T
 <ul class="blockList">
 <li class="blockList">
 <h4>getBeanTypePropertyName</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.703">getBeanTypePropertyName</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.721">getBeanTypePropertyName</a>()</pre>
 <div class="block">Returns the type property name associated with this class and subclasses.
 
  <p>
@@ -681,7 +681,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/T
 <ul class="blockList">
 <li class="blockList">
 <h4>getDictionaryName</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.717">getDictionaryName</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.735">getDictionaryName</a>()</pre>
 <div class="block">Returns the bean dictionary name associated with this class.
 
  <p>
@@ -699,7 +699,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/T
 <ul class="blockList">
 <li class="blockList">
 <h4>getBeanRegistry</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/BeanRegistry.html" title="class in org.apache.juneau">BeanRegistry</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.731">getBeanRegistry</a>()</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/BeanRegistry.html" title="class in org.apache.juneau">BeanRegistry</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.749">getBeanRegistry</a>()</pre>
 <div class="block">Returns the bean registry for this class.
 
  <p>
@@ -718,7 +718,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/T
 <ul class="blockList">
 <li class="blockList">
 <h4>getClassCategory</h4>
-<pre>public&nbsp;org.apache.juneau.ClassMeta.ClassCategory&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.740">getClassCategory</a>()</pre>
+<pre>public&nbsp;org.apache.juneau.ClassMeta.ClassCategory&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.758">getClassCategory</a>()</pre>
 <div class="block">Returns the category of this class.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -732,7 +732,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/T
 <ul class="blockList">
 <li class="blockList">
 <h4>isAssignableFrom</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.750">isAssignableFrom</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.768">isAssignableFrom</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c)</pre>
 <div class="block">Returns <jk>true</jk> if this class is a superclass of or the same as the specified class.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -748,7 +748,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/T
 <ul class="blockList">
 <li class="blockList">
 <h4>isInstanceOf</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.760">isInstanceOf</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.778">isInstanceOf</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c)</pre>
 <div class="block">Returns <jk>true</jk> if this class is a subclass of or the same as the specified class.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -764,7 +764,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/T
 <ul class="blockList">
 <li class="blockList">
 <h4>hasChildPojoSwaps</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.773">hasChildPojoSwaps</a>()</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.791">hasChildPojoSwaps</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class or any child classes has a <a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> associated with it.
 
  <p>
@@ -782,7 +782,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/T
 <ul class="blockList">
 <li class="blockList">
 <h4>getChildPojoSwapForSwap</h4>
-<pre>protected&nbsp;<a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a>&lt;?,?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.784">getChildPojoSwapForSwap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;normalClass)</pre>
+<pre>protected&nbsp;<a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a>&lt;?,?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.802">getChildPojoSwapForSwap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;normalClass)</pre>
 <div class="block">Returns the <a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> where the specified class is the same/subclass of the normal class of one of the
  child POJO swaps associated with this class.</div>
 <dl>
@@ -799,7 +799,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/T
 <ul class="blockList">
 <li class="blockList">
 <h4>getChildPojoSwapForUnswap</h4>
-<pre>protected&nbsp;<a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a>&lt;?,?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.811">getChildPojoSwapForUnswap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;swapClass)</pre>
+<pre>protected&nbsp;<a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a>&lt;?,?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.829">getChildPojoSwapForUnswap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;swapClass)</pre>
 <div class="block">Returns the <a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> where the specified class is the same/subclass of the swap class of one of the child
  POJO swaps associated with this class.</div>
 <dl>
@@ -816,7 +816,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/T
 <ul class="blockList">
 <li class="blockList">
 <h4>findNoArgConstructor</h4>
-<pre>protected static&nbsp;&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Constructor.html?is-external=true" title="class or interface in java.lang.reflect">Constructor</a>&lt;? extends T&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.844">findNoArgConstructor</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c,
+<pre>protected static&nbsp;&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Constructor.html?is-external=true" title="class or interface in java.lang.reflect">Constructor</a>&lt;? extends T&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.862">findNoArgConstructor</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c,
                                                                    <a href="../../../org/apache/juneau/Visibility.html" title="enum in org.apache.juneau">Visibility</a>&nbsp;v)</pre>
 <div class="block">Locates the no-arg constructor for the specified class.
 
@@ -839,7 +839,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/T
 <ul class="blockList">
 <li class="blockList">
 <h4>getInnerClass</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.862">getInnerClass</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.880">getInnerClass</a>()</pre>
 <div class="block">Returns the <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang"><code>Class</code></a> object that this class type wraps.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -847,16 +847,19 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/T
 </dl>
 </li>
 </ul>
-<a name="getSerializedClassMeta--">
+<a name="getSerializedClassMeta-org.apache.juneau.BeanSession-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getSerializedClassMeta</h4>
 <pre><a href="../../../org/apache/juneau/annotation/BeanIgnore.html" title="annotation in org.apache.juneau.annotation">@BeanIgnore</a>
-public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.872">getSerializedClassMeta</a>()</pre>
+public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.893">getSerializedClassMeta</a>(<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session)</pre>
 <div class="block">Returns the serialized (swapped) form of this class if there is an <a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> associated with it.</div>
 <dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - The bean session.
+   <br>Required because the swap used may depend on the media type being serialized or parsed.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The serialized class type, or this object if no swap is associated with the class.</dd>
 </dl>
@@ -868,7 +871,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getElementType</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.882">getElementType</a>()</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.904">getElementType</a>()</pre>
 <div class="block">For array and <code>Collection</code> types, returns the class type of the components of the array or
  <code>Collection</code>.</div>
 <dl>
@@ -883,7 +886,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getKeyType</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.891">getKeyType</a>()</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.913">getKeyType</a>()</pre>
 <div class="block">For <code>Map</code> types, returns the class type of the keys of the <code>Map</code>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -897,7 +900,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getValueType</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.900">getValueType</a>()</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.922">getValueType</a>()</pre>
 <div class="block">For <code>Map</code> types, returns the class type of the values of the <code>Map</code>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -911,7 +914,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isDelegate</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.910">isDelegate</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.932">isDelegate</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class implements <a href="../../../org/apache/juneau/Delegate.html" title="interface in org.apache.juneau"><code>Delegate</code></a>, meaning it's a representation of some other
  object.</div>
 <dl>
@@ -926,7 +929,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isMap</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.919">isMap</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.941">isMap</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is a subclass of <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -940,7 +943,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isMapOrBean</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.928">isMapOrBean</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.950">isMapOrBean</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is a subclass of <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a> or it's a bean.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -954,7 +957,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isBeanMap</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.937">isBeanMap</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.959">isBeanMap</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is a subclass of <a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau"><code>BeanMap</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -968,7 +971,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isCollection</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.946">isCollection</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.968">isCollection</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is a subclass of <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -982,7 +985,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isCollectionOrArray</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.955">isCollectionOrArray</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.977">isCollectionOrArray</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is a subclass of <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a> or is an array.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -996,7 +999,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isClass</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.964">isClass</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.986">isClass</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang"><code>Class</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1010,7 +1013,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isMethod</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.973">isMethod</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.995">isMethod</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect"><code>Method</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1024,7 +1027,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isEnum</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.982">isEnum</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1004">isEnum</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is an <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><code>Enum</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1038,7 +1041,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isArray</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.991">isArray</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1013">isArray</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is an array.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1052,7 +1055,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isBean</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1000">isBean</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1022">isBean</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is a bean.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1066,7 +1069,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isObject</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1009">isObject</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1031">isObject</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><code>Object</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1080,7 +1083,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isNotObject</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1018">isNotObject</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1040">isNotObject</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is not <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><code>Object</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1094,7 +1097,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isNumber</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1027">isNumber</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1049">isNumber</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is a subclass of <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang"><code>Number</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1108,7 +1111,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isDecimal</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1036">isDecimal</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1058">isDecimal</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is a subclass of <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang"><code>Float</code></a> or <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang"><code>Double</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1122,7 +1125,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isBoolean</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1045">isBoolean</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1067">isBoolean</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang"><code>Boolean</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1136,7 +1139,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isCharSequence</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1054">isCharSequence</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1076">isCharSequence</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is a subclass of <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/CharSequence.html?is-external=true" title="class or interface in java.lang"><code>CharSequence</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1150,7 +1153,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isString</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1063">isString</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1085">isString</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1164,7 +1167,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isChar</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1072">isChar</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1094">isChar</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html?is-external=true" title="class or interface in java.lang"><code>Character</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1178,7 +1181,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isPrimitive</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1081">isPrimitive</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1103">isPrimitive</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is a primitive.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1192,7 +1195,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isDate</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1090">isDate</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1112">isDate</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a> or <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util"><code>Calendar</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1206,7 +1209,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isUri</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1099">isUri</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1121">isUri</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is a <a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net"><code>URI</code></a> or <a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net"><code>URL</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1220,7 +1223,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isReader</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1108">isReader</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1130">isReader</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is a <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1234,7 +1237,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isInputStream</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1117">isInputStream</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1139">isInputStream</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is an <a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1248,7 +1251,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isVoid</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1126">isVoid</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1148">isVoid</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang"><code>Void</code></a> or <jk>void</jk>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1262,7 +1265,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isArgs</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1135">isArgs</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1157">isArgs</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this metadata represents an array of argument types.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1276,7 +1279,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getArgs</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;[]&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1144">getArgs</a>()</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;[]&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1166">getArgs</a>()</pre>
 <div class="block">Returns the argument types of this meta.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1290,7 +1293,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getArg</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1155">getArg</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1177">getArg</a>(int&nbsp;index)</pre>
 <div class="block">Returns the argument metadata at the specified index if this is an args metadata object.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1308,7 +1311,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isNullable</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1170">isNullable</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1192">isNullable</a>()</pre>
 <div class="block">Returns <jk>true</jk> if instance of this object can be <jk>null</jk>.
 
  <p>
@@ -1326,7 +1329,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isRemoteable</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1181">isRemoteable</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1203">isRemoteable</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class or one of it's methods are annotated with <a href="../../../org/apache/juneau/remoteable/Remoteable.html" title="annotation in org.apache.juneau.remoteable"><code>@Remotable</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1340,7 +1343,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isAbstract</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1190">isAbstract</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1212">isAbstract</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is abstract.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1354,7 +1357,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isMemberClass</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1199">isMemberClass</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1221">isMemberClass</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class is an inner class.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1368,7 +1371,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getRemoteableMethods</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1212">getRemoteableMethods</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1234">getRemoteableMethods</a>()</pre>
 <div class="block">All methods on this class annotated with <a href="../../../org/apache/juneau/remoteable/Remoteable.html" title="annotation in org.apache.juneau.remoteable"><code>@Remotable</code></a>, or all public methods if class is
  annotated.
 
@@ -1386,7 +1389,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getPublicMethods</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1224">getPublicMethods</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1246">getPublicMethods</a>()</pre>
 <div class="block">All public methods on this class including static methods.
 
  <p>
@@ -1397,17 +1400,21 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 </dl>
 </li>
 </ul>
-<a name="getPojoSwap--">
+<a name="getPojoSwap-org.apache.juneau.BeanSession-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getPojoSwap</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a>&lt;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>,?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1235">getPojoSwap</a>()</pre>
-<div class="block">Returns the <a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> associated with this class.</div>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a>&lt;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>,?&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1261">getPojoSwap</a>(<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session)</pre>
+<div class="block">Returns the <a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> associated with this class that's the best match for the specified session.</div>
 <dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - The current bean session.
+   <br>If multiple swaps are associated with a class, only the first one with a matching media type will
+   be returned.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>The <a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> associated with this class, or <jk>null</jk> if there is no POJO swap associated with
+<dd>The <a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> associated with this class, or <jk>null</jk> if there are no POJO swaps associated with
    this class.</dd>
 </dl>
 </li>
@@ -1418,7 +1425,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getBeanMeta</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in org.apache.juneau">BeanMeta</a>&lt;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1246">getBeanMeta</a>()</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/BeanMeta.html" title="class in org.apache.juneau">BeanMeta</a>&lt;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1286">getBeanMeta</a>()</pre>
 <div class="block">Returns the <a href="../../../org/apache/juneau/BeanMeta.html" title="class in org.apache.juneau"><code>BeanMeta</code></a> associated with this class.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1433,7 +1440,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getConstructor</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Constructor.html?is-external=true" title="class or interface in java.lang.reflect">Constructor</a>&lt;? extends <a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1255">getConstructor</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Constructor.html?is-external=true" title="class or interface in java.lang.reflect">Constructor</a>&lt;? extends <a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1295">getConstructor</a>()</pre>
 <div class="block">Returns the no-arg constructor for this class.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1447,7 +1454,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getExtendedMeta</h4>
-<pre>public&nbsp;&lt;M extends <a href="../../../org/apache/juneau/ClassMetaExtended.html" title="class in org.apache.juneau">ClassMetaExtended</a>&gt;&nbsp;M&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1265">getExtendedMeta</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;M&gt;&nbsp;c)</pre>
+<pre>public&nbsp;&lt;M extends <a href="../../../org/apache/juneau/ClassMetaExtended.html" title="class in org.apache.juneau">ClassMetaExtended</a>&gt;&nbsp;M&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1305">getExtendedMeta</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;M&gt;&nbsp;c)</pre>
 <div class="block">Returns the language-specified extended metadata on this class.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1463,7 +1470,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getProxyInvocationHandler</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/InvocationHandler.html?is-external=true" title="class or interface in java.lang.reflect">InvocationHandler</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1274">getProxyInvocationHandler</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/InvocationHandler.html?is-external=true" title="class or interface in java.lang.reflect">InvocationHandler</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1314">getProxyInvocationHandler</a>()</pre>
 <div class="block">Returns the interface proxy invocation handler for this class.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1477,7 +1484,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>canCreateNewInstance</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1283">canCreateNewInstance</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1323">canCreateNewInstance</a>()</pre>
 <div class="block">Returns <jk>true</jk> if this class has a no-arg constructor or invocation handler.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1491,7 +1498,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>canCreateNewInstance</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1305">canCreateNewInstance</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;outer)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1345">canCreateNewInstance</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;outer)</pre>
 <div class="block">Returns <jk>true</jk> if this class has a no-arg constructor or invocation handler.
  Returns <jk>false</jk> if this is a non-static member class and the outer object does not match the class type of
  the defining class.</div>
@@ -1509,7 +1516,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>canCreateNewBean</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1321">canCreateNewBean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;outer)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1361">canCreateNewBean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;outer)</pre>
 <div class="block">Returns <jk>true</jk> if this class can be instantiated as a bean.
  Returns <jk>false</jk> if this is a non-static member class and the outer object does not match the class type of
  the defining class.</div>
@@ -1527,7 +1534,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>canCreateNewInstanceFromString</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1339">canCreateNewInstanceFromString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;outer)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1379">canCreateNewInstanceFromString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;outer)</pre>
 <div class="block">Returns <jk>true</jk> if this class can call the <a href="../../../org/apache/juneau/ClassMeta.html#newInstanceFromString-java.lang.Object-java.lang.String-"><code>newInstanceFromString(Object, String)</code></a> method.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1544,7 +1551,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>canCreateNewInstanceFromNumber</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1358">canCreateNewInstanceFromNumber</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;outer)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1398">canCreateNewInstanceFromNumber</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;outer)</pre>
 <div class="block">Returns <jk>true</jk> if this class can call the <a href="../../../org/apache/juneau/ClassMeta.html#newInstanceFromString-java.lang.Object-java.lang.String-"><code>newInstanceFromString(Object, String)</code></a> method.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1561,7 +1568,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getNewInstanceFromNumberClass</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1373">getNewInstanceFromNumberClass</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&gt;&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1413">getNewInstanceFromNumberClass</a>()</pre>
 <div class="block">Returns the class type of the parameter of the numeric constructor.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1575,7 +1582,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getNameProperty</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/Setter.html" title="interface in org.apache.juneau">Setter</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1384">getNameProperty</a>()</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/Setter.html" title="interface in org.apache.juneau">Setter</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1424">getNameProperty</a>()</pre>
 <div class="block">Returns the method or field annotated with <a href="../../../org/apache/juneau/annotation/NameProperty.html" title="annotation in org.apache.juneau.annotation"><code>@NameProperty</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1590,7 +1597,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getParentProperty</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/Setter.html" title="interface in org.apache.juneau">Setter</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1395">getParentProperty</a>()</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/Setter.html" title="interface in org.apache.juneau">Setter</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1435">getParentProperty</a>()</pre>
 <div class="block">Returns the method or field annotated with <a href="../../../org/apache/juneau/annotation/ParentProperty.html" title="annotation in org.apache.juneau.annotation"><code>@ParentProperty</code></a>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1605,7 +1612,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getNotABeanReason</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1404">getNotABeanReason</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1444">getNotABeanReason</a>()</pre>
 <div class="block">Returns the reason why this class is not a bean, or <jk>null</jk> if it is a bean.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1619,7 +1626,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getInitException</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1413">getInitException</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1453">getInitException</a>()</pre>
 <div class="block">Returns any exception that was throw in the <code>init()</code> method.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1633,7 +1640,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getBeanContext</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/BeanContext.html" title="class in org.apache.juneau">BeanContext</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1422">getBeanContext</a>()</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/BeanContext.html" title="class in org.apache.juneau">BeanContext</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1462">getBeanContext</a>()</pre>
 <div class="block">Returns the <a href="../../../org/apache/juneau/BeanContext.html" title="class in org.apache.juneau"><code>BeanContext</code></a> that created this object.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1647,7 +1654,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getPrimitiveDefault</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1432">getPrimitiveDefault</a>()</pre>
+<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1472">getPrimitiveDefault</a>()</pre>
 <div class="block">Returns the default value for primitives such as <jk>int</jk> or <jk>Integer</jk>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1661,7 +1668,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>newInstanceFromString</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1461">newInstanceFromString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;outer,
+<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1501">newInstanceFromString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;outer,
                                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg)
                         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a>,
                                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalAccessException.html?is-external=true" title="class or interface in java.lang">IllegalAccessException</a>,
@@ -1698,7 +1705,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>newInstanceFromNumber</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1498">newInstanceFromNumber</a>(<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
+<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1538">newInstanceFromNumber</a>(<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a>&nbsp;session,
                                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;outer,
                                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;arg)
                         throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a>,
@@ -1736,7 +1743,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>newInstance</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1533">newInstance</a>()
+<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1573">newInstance</a>()
               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a>,
                      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InstantiationException.html?is-external=true" title="class or interface in java.lang">InstantiationException</a>,
                      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalAccessException.html?is-external=true" title="class or interface in java.lang">IllegalAccessException</a>,
@@ -1771,7 +1778,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>newInstance</h4>
-<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1573">newInstance</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;outer)
+<pre>public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="type parameter in ClassMeta">T</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1613">newInstance</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;outer)
               throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a>,
                      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InstantiationException.html?is-external=true" title="class or interface in java.lang">InstantiationException</a>,
                      <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalAccessException.html?is-external=true" title="class or interface in java.lang">IllegalAccessException</a>,
@@ -1809,7 +1816,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1586">equals</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;t)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1626">equals</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;t)</pre>
 <div class="block">Checks to see if the specified class type is the same as this one.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -1827,7 +1834,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>same</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1600">same</a>(<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;cm)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1640">same</a>(<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&lt;?&gt;&nbsp;cm)</pre>
 <div class="block">Similar to <a href="../../../org/apache/juneau/ClassMeta.html#equals-java.lang.Object-"><code>equals(Object)</code></a> except primitive and Object types that are similar are considered the same.
  (e.g. <jk>boolean</jk> == <code>Boolean</code>).</div>
 <dl>
@@ -1844,7 +1851,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1607">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1647">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -1857,7 +1864,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1617">toString</a>(boolean&nbsp;simple)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1657">toString</a>(boolean&nbsp;simple)</pre>
 <div class="block">Same as <a href="../../../org/apache/juneau/ClassMeta.html#toString--"><code>toString()</code></a> except use simple class names.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1873,7 +1880,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1628">toString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;sb,
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1668">toString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;sb,
                                  boolean&nbsp;simple)</pre>
 <div class="block">Appends this object as a readable string to the specified string builder.</div>
 <dl>
@@ -1891,7 +1898,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>isInstance</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1662">isInstance</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1702">isInstance</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
 <div class="block">Returns <jk>true</jk> if the specified object is an instance of this class.
 
  <p>
@@ -1910,7 +1917,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadableName</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1673">getReadableName</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1713">getReadableName</a>()</pre>
 <div class="block">Returns a readable name for this class (e.g. <js>"java.lang.String"</js>, <js>"boolean[]"</js>).</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1924,7 +1931,7 @@ public&nbsp;<a href="../../../org/apache/juneau/ClassMeta.html" title="class in
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1708">hashCode</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../src-html/org/apache/juneau/ClassMeta.html#line.1748">hashCode</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/CoreObjectBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/CoreObjectBuilder.html b/content/site/apidocs/org/apache/juneau/CoreObjectBuilder.html
index ce214f0..f2980fd 100644
--- a/content/site/apidocs/org/apache/juneau/CoreObjectBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/CoreObjectBuilder.html
@@ -2010,7 +2010,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/annotation/BeanProperty.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/annotation/BeanProperty.html b/content/site/apidocs/org/apache/juneau/annotation/BeanProperty.html
index e2c606e..26c1540 100644
--- a/content/site/apidocs/org/apache/juneau/annotation/BeanProperty.html
+++ b/content/site/apidocs/org/apache/juneau/annotation/BeanProperty.html
@@ -96,7 +96,7 @@
  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>={<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation">FIELD</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation">METHOD</a>})
  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Inherited.html?is-external=true" title="class or interface in java.lang.annotation">@Inherited</a>
-public @interface <a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.59">BeanProperty</a></pre>
+public @interface <a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.57">BeanProperty</a></pre>
 <div class="block">Used tailor how bean properties get interpreted by the framework.
 
  <p>
@@ -177,18 +177,11 @@ public @interface <a href="../../../../src-html/org/apache/juneau/annotation/Bea
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/annotation/BeanProperty.html#swap--">swap</a></span></code>
-<div class="block">Associates a <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> or <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a> with this bean property that will swap the value object
- with another object during serialization and parsing.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/annotation/BeanProperty.html#type--">type</a></span></code>
 <div class="block">Identifies a specialized class type for the property.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/annotation/BeanProperty.html#value--">value</a></span></code>
 <div class="block">A synonym for <a href="../../../../org/apache/juneau/annotation/BeanProperty.html#name--"><code>name()</code></a>.</div>
@@ -215,7 +208,7 @@ public @interface <a href="../../../../src-html/org/apache/juneau/annotation/Bea
 <ul class="blockList">
 <li class="blockList">
 <h4>name</h4>
-<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.150">name</a></pre>
+<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.148">name</a></pre>
 <div class="block">Identifies the name of the property.
 
  <p>
@@ -318,7 +311,7 @@ public @interface <a href="../../../../src-html/org/apache/juneau/annotation/Bea
 <ul class="blockList">
 <li class="blockList">
 <h4>value</h4>
-<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.164">value</a></pre>
+<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.162">value</a></pre>
 <div class="block">A synonym for <a href="../../../../org/apache/juneau/annotation/BeanProperty.html#name--"><code>name()</code></a>.
 
  <p>
@@ -344,7 +337,7 @@ public @interface <a href="../../../../src-html/org/apache/juneau/annotation/Bea
 <ul class="blockList">
 <li class="blockList">
 <h4>type</h4>
-<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.188">type</a></pre>
+<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.186">type</a></pre>
 <div class="block">Identifies a specialized class type for the property.
 
  <p>
@@ -380,7 +373,7 @@ public @interface <a href="../../../../src-html/org/apache/juneau/annotation/Bea
 <ul class="blockList">
 <li class="blockList">
 <h4>params</h4>
-<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;[]&nbsp;<a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.204">params</a></pre>
+<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;[]&nbsp;<a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.202">params</a></pre>
 <div class="block">For bean properties of maps and collections, this annotation can be used to identify the class types of the
  contents of the bean property object when the generic parameter types are interfaces or abstract classes.
 
@@ -402,47 +395,13 @@ public @interface <a href="../../../../src-html/org/apache/juneau/annotation/Bea
 </li>
 </ul>
 <ul class="blockList">
-<li class="blockList"><a name="swap--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>swap</h4>
-<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.226">swap</a></pre>
-<div class="block">Associates a <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> or <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a> with this bean property that will swap the value object
- with another object during serialization and parsing.
-
- <p>
- This annotation supersedes any swaps associated with the bean property type class itself.
-
- <p>
- Typically used for rendering <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Dates</code></a> and <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html?is-external=true" title="class or interface in java.util"><code>Calendars</code></a> as a particular string format.
-
- <h5 class='section'>Example:</h5>
- <p class='bcode'>
-   <jk>public class</jk> MyClass {
-
-      <jc>// During serialization, convert to ISO8601 date-time string.</jc>
-      <ja>@BeanProperty</ja>(pojoSwap=CalendarSwap.ISO8601DT.<jk>class</jk>)
-      <jk>public</jk> Calendar getTime();
-   }
- </p></div>
-<dl>
-<dt>Default:</dt>
-<dd>org.apache.juneau.annotation.Null.class</dd>
-</dl>
-</li>
-</ul>
-</li>
-</ul>
-<ul class="blockList">
 <li class="blockList"><a name="properties--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>properties</h4>
-<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.258">properties</a></pre>
+<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.234">properties</a></pre>
 <div class="block">Used to limit which child properties are rendered by the serializers.
 
  <p>
@@ -486,7 +445,7 @@ public @interface <a href="../../../../src-html/org/apache/juneau/annotation/Bea
 <ul class="blockList">
 <li class="blockList">
 <h4>beanDictionary</h4>
-<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;[]&nbsp;<a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.278">beanDictionary</a></pre>
+<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;[]&nbsp;<a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.254">beanDictionary</a></pre>
 <div class="block">The list of classes that make up the bean dictionary for this bean property.
 
  <p>
@@ -518,7 +477,7 @@ public @interface <a href="../../../../src-html/org/apache/juneau/annotation/Bea
 <ul class="blockListLast">
 <li class="blockList">
 <h4>format</h4>
-<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.296">format</a></pre>
+<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/annotation/BeanProperty.html#line.272">format</a></pre>
 <div class="block">Specifies a String format for converting the bean property value to a formatted string.
 
  <p>


[19/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/BeanSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/BeanSession.html b/content/site/apidocs/src-html/org/apache/juneau/BeanSession.html
index 42f96a2..685b699 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/BeanSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/BeanSession.html
@@ -365,19 +365,19 @@
 <span class="sourceLineNo">357</span>         if (tc == Class.class)<a name="line.357"></a>
 <span class="sourceLineNo">358</span>            return (T)(ctx.classLoader.loadClass(value.toString()));<a name="line.358"></a>
 <span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>         if (type.getPojoSwap() != null) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>            PojoSwap f = type.getPojoSwap();<a name="line.361"></a>
-<span class="sourceLineNo">362</span>            Class&lt;?&gt; nc = f.getNormalClass(), fc = f.getSwapClass();<a name="line.362"></a>
+<span class="sourceLineNo">360</span>         PojoSwap swap = type.getPojoSwap(this);<a name="line.360"></a>
+<span class="sourceLineNo">361</span>         if (swap != null) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>            Class&lt;?&gt; nc = swap.getNormalClass(), fc = swap.getSwapClass();<a name="line.362"></a>
 <span class="sourceLineNo">363</span>            if (isParentClass(nc, tc) &amp;&amp; isParentClass(fc, value.getClass()))<a name="line.363"></a>
-<span class="sourceLineNo">364</span>               return (T)f.unswap(this, value, type);<a name="line.364"></a>
+<span class="sourceLineNo">364</span>               return (T)swap.unswap(this, value, type);<a name="line.364"></a>
 <span class="sourceLineNo">365</span>         }<a name="line.365"></a>
 <span class="sourceLineNo">366</span><a name="line.366"></a>
 <span class="sourceLineNo">367</span>         ClassMeta&lt;?&gt; vt = ctx.getClassMetaForObject(value);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>         if (vt.getPojoSwap() != null) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>            PojoSwap f = vt.getPojoSwap();<a name="line.369"></a>
-<span class="sourceLineNo">370</span>            Class&lt;?&gt; nc = f.getNormalClass(), fc = f.getSwapClass();<a name="line.370"></a>
+<span class="sourceLineNo">368</span>         swap = vt.getPojoSwap(this);<a name="line.368"></a>
+<span class="sourceLineNo">369</span>         if (swap != null) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>            Class&lt;?&gt; nc = swap.getNormalClass(), fc = swap.getSwapClass();<a name="line.370"></a>
 <span class="sourceLineNo">371</span>            if (isParentClass(nc, vt.getInnerClass()) &amp;&amp; isParentClass(fc, tc))<a name="line.371"></a>
-<span class="sourceLineNo">372</span>               return (T)f.swap(this, value);<a name="line.372"></a>
+<span class="sourceLineNo">372</span>               return (T)swap.swap(this, value);<a name="line.372"></a>
 <span class="sourceLineNo">373</span>         }<a name="line.373"></a>
 <span class="sourceLineNo">374</span><a name="line.374"></a>
 <span class="sourceLineNo">375</span>         if (type.isPrimitive()) {<a name="line.375"></a>


[21/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.Builder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.Builder.html b/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.Builder.html
index e15a096..6012d78 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.Builder.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.Builder.html
@@ -137,915 +137,938 @@
 <span class="sourceLineNo">129</span>            rawTypeMeta = f.resolveClassMeta(p, field.getGenericType(), typeVarImpls);<a name="line.129"></a>
 <span class="sourceLineNo">130</span>            isUri |= (rawTypeMeta.isUri() || field.isAnnotationPresent(org.apache.juneau.annotation.URI.class));<a name="line.130"></a>
 <span class="sourceLineNo">131</span>            if (p != null) {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>               swap = getPropertyPojoSwap(p);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>               if (! p.properties().isEmpty())<a name="line.133"></a>
-<span class="sourceLineNo">134</span>                  properties = split(p.properties());<a name="line.134"></a>
-<span class="sourceLineNo">135</span>               bdClasses.addAll(Arrays.asList(p.beanDictionary()));<a name="line.135"></a>
-<span class="sourceLineNo">136</span>            }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>         }<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>         if (getter != null) {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>            BeanProperty p = getMethodAnnotation(BeanProperty.class, getter);<a name="line.140"></a>
-<span class="sourceLineNo">141</span>            if (rawTypeMeta == null)<a name="line.141"></a>
-<span class="sourceLineNo">142</span>               rawTypeMeta = f.resolveClassMeta(p, getter.getGenericReturnType(), typeVarImpls);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>            isUri |= (rawTypeMeta.isUri() || getter.isAnnotationPresent(org.apache.juneau.annotation.URI.class));<a name="line.143"></a>
-<span class="sourceLineNo">144</span>            if (p != null) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>               if (swap == null)<a name="line.145"></a>
-<span class="sourceLineNo">146</span>                  swap = getPropertyPojoSwap(p);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>               if (properties != null &amp;&amp; ! p.properties().isEmpty())<a name="line.147"></a>
-<span class="sourceLineNo">148</span>                  properties = split(p.properties());<a name="line.148"></a>
-<span class="sourceLineNo">149</span>               bdClasses.addAll(Arrays.asList(p.beanDictionary()));<a name="line.149"></a>
-<span class="sourceLineNo">150</span>            }<a name="line.150"></a>
-<span class="sourceLineNo">151</span>         }<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>         if (setter != null) {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>            BeanProperty p = getMethodAnnotation(BeanProperty.class, setter);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>            if (rawTypeMeta == null)<a name="line.155"></a>
-<span class="sourceLineNo">156</span>               rawTypeMeta = f.resolveClassMeta(p, setter.getGenericParameterTypes()[0], typeVarImpls);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>            isUri |= (rawTypeMeta.isUri() || setter.isAnnotationPresent(org.apache.juneau.annotation.URI.class));<a name="line.157"></a>
-<span class="sourceLineNo">158</span>            if (p != null) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>               if (swap == null)<a name="line.159"></a>
-<span class="sourceLineNo">160</span>                  swap = getPropertyPojoSwap(p);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>               if (properties != null &amp;&amp; ! p.properties().isEmpty())<a name="line.161"></a>
-<span class="sourceLineNo">162</span>                  properties = split(p.properties());<a name="line.162"></a>
-<span class="sourceLineNo">163</span>               bdClasses.addAll(Arrays.asList(p.beanDictionary()));<a name="line.163"></a>
-<span class="sourceLineNo">164</span>            }<a name="line.164"></a>
-<span class="sourceLineNo">165</span>         }<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>         if (rawTypeMeta == null)<a name="line.167"></a>
-<span class="sourceLineNo">168</span>            return false;<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>         this.beanRegistry = new BeanRegistry(beanContext, parentBeanRegistry, bdClasses.toArray(new Class&lt;?&gt;[0]));<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>         isDyna = "*".equals(name);<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>         // Do some annotation validation.<a name="line.174"></a>
-<span class="sourceLineNo">175</span>         Class&lt;?&gt; c = rawTypeMeta.getInnerClass();<a name="line.175"></a>
-<span class="sourceLineNo">176</span>         if (getter != null) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>            if (isDyna) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>               if (! isParentClass(Map.class, c))<a name="line.178"></a>
-<span class="sourceLineNo">179</span>                  return false;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>            } else {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>               if (! isParentClass(getter.getReturnType(), c))<a name="line.181"></a>
-<span class="sourceLineNo">182</span>                  return false;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>            }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>         }<a name="line.184"></a>
-<span class="sourceLineNo">185</span>         if (setter != null) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>            Class&lt;?&gt;[] pt = setter.getParameterTypes();<a name="line.186"></a>
-<span class="sourceLineNo">187</span>            if (pt.length != (isDyna ? 2 : 1))<a name="line.187"></a>
-<span class="sourceLineNo">188</span>               return false;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>            if (isDyna) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>               if (! pt[0].equals(String.class))<a name="line.190"></a>
+<span class="sourceLineNo">132</span>               if (! p.properties().isEmpty())<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                  properties = split(p.properties());<a name="line.133"></a>
+<span class="sourceLineNo">134</span>               bdClasses.addAll(Arrays.asList(p.beanDictionary()));<a name="line.134"></a>
+<span class="sourceLineNo">135</span>            }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>            Swap s = field.getAnnotation(Swap.class);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>            if (s != null) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>               swap = getPropertyPojoSwap(s);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>            }<a name="line.139"></a>
+<span class="sourceLineNo">140</span>         }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>         if (getter != null) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>            BeanProperty p = getMethodAnnotation(BeanProperty.class, getter);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>            if (rawTypeMeta == null)<a name="line.144"></a>
+<span class="sourceLineNo">145</span>               rawTypeMeta = f.resolveClassMeta(p, getter.getGenericReturnType(), typeVarImpls);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>            isUri |= (rawTypeMeta.isUri() || getter.isAnnotationPresent(org.apache.juneau.annotation.URI.class));<a name="line.146"></a>
+<span class="sourceLineNo">147</span>            if (p != null) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>               if (properties != null &amp;&amp; ! p.properties().isEmpty())<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                  properties = split(p.properties());<a name="line.149"></a>
+<span class="sourceLineNo">150</span>               bdClasses.addAll(Arrays.asList(p.beanDictionary()));<a name="line.150"></a>
+<span class="sourceLineNo">151</span>            }<a name="line.151"></a>
+<span class="sourceLineNo">152</span>            Swap s = getter.getAnnotation(Swap.class);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>            if (s != null &amp;&amp; swap == null) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>               swap = getPropertyPojoSwap(s);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>            }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         }<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>         if (setter != null) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>            BeanProperty p = getMethodAnnotation(BeanProperty.class, setter);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>            if (rawTypeMeta == null)<a name="line.160"></a>
+<span class="sourceLineNo">161</span>               rawTypeMeta = f.resolveClassMeta(p, setter.getGenericParameterTypes()[0], typeVarImpls);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>            isUri |= (rawTypeMeta.isUri() || setter.isAnnotationPresent(org.apache.juneau.annotation.URI.class));<a name="line.162"></a>
+<span class="sourceLineNo">163</span>            if (p != null) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>               if (swap == null)<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                  swap = getPropertyPojoSwap(p);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>               if (properties != null &amp;&amp; ! p.properties().isEmpty())<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                  properties = split(p.properties());<a name="line.167"></a>
+<span class="sourceLineNo">168</span>               bdClasses.addAll(Arrays.asList(p.beanDictionary()));<a name="line.168"></a>
+<span class="sourceLineNo">169</span>            }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>            Swap s = setter.getAnnotation(Swap.class);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>            if (s != null &amp;&amp; swap == null) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>               swap = getPropertyPojoSwap(s);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>            }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         }<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>         if (rawTypeMeta == null)<a name="line.176"></a>
+<span class="sourceLineNo">177</span>            return false;<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>         this.beanRegistry = new BeanRegistry(beanContext, parentBeanRegistry, bdClasses.toArray(new Class&lt;?&gt;[0]));<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>         isDyna = "*".equals(name);<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>         // Do some annotation validation.<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         Class&lt;?&gt; c = rawTypeMeta.getInnerClass();<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         if (getter != null) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>            if (isDyna) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>               if (! isParentClass(Map.class, c))<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                  return false;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>            } else {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>               if (! isParentClass(getter.getReturnType(), c))<a name="line.190"></a>
 <span class="sourceLineNo">191</span>                  return false;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>            } else {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>               if (! isParentClass(pt[0], c))<a name="line.193"></a>
-<span class="sourceLineNo">194</span>                  return false;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>            }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>         }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>         if (field != null) {<a name="line.197"></a>
+<span class="sourceLineNo">192</span>            }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         if (setter != null) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>            Class&lt;?&gt;[] pt = setter.getParameterTypes();<a name="line.195"></a>
+<span class="sourceLineNo">196</span>            if (pt.length != (isDyna ? 2 : 1))<a name="line.196"></a>
+<span class="sourceLineNo">197</span>               return false;<a name="line.197"></a>
 <span class="sourceLineNo">198</span>            if (isDyna) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>               if (! isParentClass(Map.class, field.getType()))<a name="line.199"></a>
+<span class="sourceLineNo">199</span>               if (! pt[0].equals(String.class))<a name="line.199"></a>
 <span class="sourceLineNo">200</span>                  return false;<a name="line.200"></a>
 <span class="sourceLineNo">201</span>            } else {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>               if (! isParentClass(field.getType(), c))<a name="line.202"></a>
+<span class="sourceLineNo">202</span>               if (! isParentClass(pt[0], c))<a name="line.202"></a>
 <span class="sourceLineNo">203</span>                  return false;<a name="line.203"></a>
 <span class="sourceLineNo">204</span>            }<a name="line.204"></a>
 <span class="sourceLineNo">205</span>         }<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>         if (isDyna)<a name="line.207"></a>
-<span class="sourceLineNo">208</span>            rawTypeMeta = rawTypeMeta.getValueType();<a name="line.208"></a>
-<span class="sourceLineNo">209</span>         if (rawTypeMeta == null)<a name="line.209"></a>
-<span class="sourceLineNo">210</span>            return false;<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>         if (typeMeta == null)<a name="line.212"></a>
-<span class="sourceLineNo">213</span>            typeMeta = (swap != null ? swap.getSwapClassMeta(beanContext) : rawTypeMeta == null ? beanContext.object() : rawTypeMeta.getSerializedClassMeta());<a name="line.213"></a>
-<span class="sourceLineNo">214</span>         if (typeMeta == null)<a name="line.214"></a>
-<span class="sourceLineNo">215</span>            typeMeta = rawTypeMeta;<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>         return true;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      }<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>      /**<a name="line.220"></a>
-<span class="sourceLineNo">221</span>       * @return A new BeanPropertyMeta object using this builder.<a name="line.221"></a>
-<span class="sourceLineNo">222</span>       */<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      public BeanPropertyMeta build() {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>         return new BeanPropertyMeta(this);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      }<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>      private static PojoSwap getPropertyPojoSwap(BeanProperty p) throws Exception {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>         if (! p.format().isEmpty())<a name="line.228"></a>
-<span class="sourceLineNo">229</span>            return newInstance(PojoSwap.class, StringFormatSwap.class, p.format());<a name="line.229"></a>
-<span class="sourceLineNo">230</span>         Class&lt;?&gt; c = p.swap();<a name="line.230"></a>
-<span class="sourceLineNo">231</span>         if (c == Null.class)<a name="line.231"></a>
-<span class="sourceLineNo">232</span>            return null;<a name="line.232"></a>
-<span class="sourceLineNo">233</span>         if (isParentClass(PojoSwap.class, c))<a name="line.233"></a>
-<span class="sourceLineNo">234</span>            return newInstance(PojoSwap.class, c);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>         throw new RuntimeException("TODO - Surrogate swaps not yet supported.");<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>      BeanPropertyMeta.Builder setGetter(Method getter) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>         setAccessible(getter);<a name="line.239"></a>
-<span class="sourceLineNo">240</span>         this.getter = getter;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>         return this;<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>      BeanPropertyMeta.Builder setSetter(Method setter) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>         setAccessible(setter);<a name="line.245"></a>
-<span class="sourceLineNo">246</span>         this.setter = setter;<a name="line.246"></a>
-<span class="sourceLineNo">247</span>         return this;<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>      BeanPropertyMeta.Builder setField(Field field) {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>         setAccessible(field);<a name="line.251"></a>
-<span class="sourceLineNo">252</span>         this.field = field;<a name="line.252"></a>
-<span class="sourceLineNo">253</span>         return this;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      }<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>      BeanPropertyMeta.Builder setAsConstructorArg() {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>         this.isConstructorArg = true;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>         return this;<a name="line.258"></a>
+<span class="sourceLineNo">206</span>         if (field != null) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>            if (isDyna) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>               if (! isParentClass(Map.class, field.getType()))<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                  return false;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>            } else {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>               if (! isParentClass(field.getType(), c))<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                  return false;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>            }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         }<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>         if (isDyna)<a name="line.216"></a>
+<span class="sourceLineNo">217</span>            rawTypeMeta = rawTypeMeta.getValueType();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         if (rawTypeMeta == null)<a name="line.218"></a>
+<span class="sourceLineNo">219</span>            return false;<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>         if (typeMeta == null)<a name="line.221"></a>
+<span class="sourceLineNo">222</span>            typeMeta = (swap != null ? beanContext.getClassMeta(swap.getSwapClass()) : rawTypeMeta == null ? beanContext.object() : rawTypeMeta);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         if (typeMeta == null)<a name="line.223"></a>
+<span class="sourceLineNo">224</span>            typeMeta = rawTypeMeta;<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>         return true;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      }<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>      /**<a name="line.229"></a>
+<span class="sourceLineNo">230</span>       * @return A new BeanPropertyMeta object using this builder.<a name="line.230"></a>
+<span class="sourceLineNo">231</span>       */<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      public BeanPropertyMeta build() {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>         return new BeanPropertyMeta(this);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>      private static PojoSwap getPropertyPojoSwap(BeanProperty p) throws Exception {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         if (! p.format().isEmpty())<a name="line.237"></a>
+<span class="sourceLineNo">238</span>            return newInstance(PojoSwap.class, StringFormatSwap.class, p.format());<a name="line.238"></a>
+<span class="sourceLineNo">239</span>         return null;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>      private static PojoSwap getPropertyPojoSwap(Swap s) throws Exception {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         Class&lt;?&gt; c = s.value();<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         if (c == Null.class)<a name="line.244"></a>
+<span class="sourceLineNo">245</span>            c = s.impl();<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         if (c == Null.class)<a name="line.246"></a>
+<span class="sourceLineNo">247</span>            return null;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>         if (isParentClass(PojoSwap.class, c)) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>            PojoSwap ps = newInstance(PojoSwap.class, c);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>            if (ps.forMediaTypes() != null)<a name="line.250"></a>
+<span class="sourceLineNo">251</span>               throw new RuntimeException("TODO - Media types on swaps not yet supported on bean properties.");<a name="line.251"></a>
+<span class="sourceLineNo">252</span>            if (ps.withTemplate() != null)<a name="line.252"></a>
+<span class="sourceLineNo">253</span>               throw new RuntimeException("TODO - Templates on swaps not yet supported on bean properties.");<a name="line.253"></a>
+<span class="sourceLineNo">254</span>            return ps;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>         }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>         if (isParentClass(Surrogate.class, c))<a name="line.256"></a>
+<span class="sourceLineNo">257</span>            throw new RuntimeException("TODO - Surrogate swaps not yet supported on bean properties.");<a name="line.257"></a>
+<span class="sourceLineNo">258</span>         throw new FormattedRuntimeException("Invalid class used in @Swap annotation.  Must be a subclass of PojoSwap or Surrogate.", c);<a name="line.258"></a>
 <span class="sourceLineNo">259</span>      }<a name="line.259"></a>
 <span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>   }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>   /**<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    * Creates a new BeanPropertyMeta using the contents of the specified builder.<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    *<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    * @param b The builder to copy fields from.<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    */<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   protected BeanPropertyMeta(BeanPropertyMeta.Builder b) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      this.field = b.field;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      this.getter = b.getter;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      this.setter = b.setter;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      this.isUri = b.isUri;<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      this.beanMeta = b.beanMeta;<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      this.beanContext = b.beanContext;<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      this.name = b.name;<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      this.rawTypeMeta = b.rawTypeMeta;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      this.typeMeta = b.typeMeta;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      this.properties = b.properties;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      this.swap = b.swap;<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      this.beanRegistry = b.beanRegistry;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      this.overrideValue = b.overrideValue;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      this.delegateFor = b.delegateFor;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      this.extMeta = b.extMeta;<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      this.isDyna = b.isDyna;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>   /**<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    * Returns the name of this bean property.<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    *<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    * @return The name of the bean property.<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    */<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   public String getName() {<a name="line.292"></a>
-<span class="sourceLineNo">293</span>      return name;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>   }<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span>   /**<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    * Returns the bean meta that this property belongs to.<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    *<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    * @return The bean meta that this property belongs to.<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    */<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   @BeanIgnore<a name="line.301"></a>
-<span class="sourceLineNo">302</span>   public BeanMeta&lt;?&gt; getBeanMeta() {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      return beanMeta;<a name="line.303"></a>
-<span class="sourceLineNo">304</span>   }<a name="line.304"></a>
-<span class="sourceLineNo">305</span><a name="line.305"></a>
-<span class="sourceLineNo">306</span>   /**<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    * Returns the getter method for this property.<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    *<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    * @return The getter method for this bean property, or &lt;jk&gt;null&lt;/jk&gt; if there is no getter method.<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    */<a name="line.310"></a>
-<span class="sourceLineNo">311</span>   public Method getGetter() {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      return getter;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>   }<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span>   /**<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    * Returns the setter method for this property.<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    *<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    * @return The setter method for this bean property, or &lt;jk&gt;null&lt;/jk&gt; if there is no setter method.<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    */<a name="line.319"></a>
-<span class="sourceLineNo">320</span>   public Method getSetter() {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      return setter;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>   }<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>   /**<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    * Returns the field for this property.<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    *<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    * @return The field for this bean property, or &lt;jk&gt;null&lt;/jk&gt; if there is no field associated with this bean property.<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    */<a name="line.328"></a>
-<span class="sourceLineNo">329</span>   public Field getField() {<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      return field;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>   }<a name="line.331"></a>
-<span class="sourceLineNo">332</span><a name="line.332"></a>
-<span class="sourceLineNo">333</span>   /**<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    * Returns the {@link ClassMeta} of the class of this property.<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    *<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    * &lt;p&gt;<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    * If this property or the property type class has a {@link PojoSwap} associated with it, this method returns the<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    * transformed class meta.<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    * This matches the class type that is used by the {@link #get(BeanMap,String)} and<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    * {@link #set(BeanMap,String,Object)} methods.<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    *<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    * @return The {@link ClassMeta} of the class of this property.<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    */<a name="line.343"></a>
-<span class="sourceLineNo">344</span>   public ClassMeta&lt;?&gt; getClassMeta() {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      return typeMeta;<a name="line.345"></a>
-<span class="sourceLineNo">346</span>   }<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>   /**<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    * Returns the bean dictionary in use for this bean property.<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    *<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    * &lt;p&gt;<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    * The order of lookup for the dictionary is as follows:<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    * &lt;ol&gt;<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    *    &lt;li&gt;Dictionary defined via {@link BeanProperty#beanDictionary()}.<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    *    &lt;li&gt;Dictionary defined via {@link BeanContext#BEAN_beanDictionary} context property.<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    * &lt;/ol&gt;<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    *<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    * @return The bean dictionary in use for this bean property.  Never &lt;jk&gt;null&lt;/jk&gt;.<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    */<a name="line.359"></a>
-<span class="sourceLineNo">360</span>   public BeanRegistry getBeanRegistry() {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      return beanRegistry;<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>   /**<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    * Returns &lt;jk&gt;true&lt;/jk&gt; if this bean property is a URI.<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    *<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    * &lt;p&gt;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    * A bean property can be considered a URI if any of the following are true:<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    * &lt;ul&gt;<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    *    &lt;li&gt;Property class type is {@link URL} or {@link URI}.<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    *    &lt;li&gt;Property class type is annotated with {@link org.apache.juneau.annotation.URI}.<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    *    &lt;li&gt;Property getter, setter, or field is annotated with {@link org.apache.juneau.annotation.URI}.<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    * &lt;/ul&gt;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    *<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if this bean property is a URI.<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    */<a name="line.376"></a>
-<span class="sourceLineNo">377</span>   public boolean isUri() {<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      return isUri;<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   }<a name="line.379"></a>
-<span class="sourceLineNo">380</span><a name="line.380"></a>
-<span class="sourceLineNo">381</span>   /**<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    * Returns &lt;jk&gt;true&lt;/jk&gt; if this bean property is named &lt;js&gt;"*"&lt;/js&gt;.<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    *<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if this bean property is named &lt;js&gt;"*"&lt;/js&gt;.<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    */<a name="line.385"></a>
-<span class="sourceLineNo">386</span>   public boolean isDyna() {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      return isDyna;<a name="line.387"></a>
-<span class="sourceLineNo">388</span>   }<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>   /**<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    * Returns the override list of properties defined through a {@link BeanProperty#properties()} annotation<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    * on this property.<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    *<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    * @return The list of override properties, or &lt;jk&gt;null&lt;/jk&gt; if annotation not specified.<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    */<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   public String[] getProperties() {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      return properties;<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   }<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>   /**<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    * Returns the language-specified extended metadata on this bean property.<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    *<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    * @param c The name of the metadata class to create.<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    * @return Extended metadata on this bean property.  Never &lt;jk&gt;null&lt;/jk&gt;.<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    */<a name="line.405"></a>
-<span class="sourceLineNo">406</span>   public &lt;M extends BeanPropertyMetaExtended&gt; M getExtendedMeta(Class&lt;M&gt; c) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      if (delegateFor != null)<a name="line.407"></a>
-<span class="sourceLineNo">408</span>         return delegateFor.getExtendedMeta(c);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      return extMeta.get(c, this);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   }<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>   /**<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    * Equivalent to calling {@link BeanMap#get(Object)}, but is faster since it avoids looking up the property meta.<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    *<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    * @param m The bean map to get the transformed value from.<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    * @param pName The property name.<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    * @return The property value.<a name="line.417"></a>
+<span class="sourceLineNo">261</span>      BeanPropertyMeta.Builder setGetter(Method getter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         setAccessible(getter);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         this.getter = getter;<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         return this;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      }<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>      BeanPropertyMeta.Builder setSetter(Method setter) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>         setAccessible(setter);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>         this.setter = setter;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>         return this;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      }<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>      BeanPropertyMeta.Builder setField(Field field) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>         setAccessible(field);<a name="line.274"></a>
+<span class="sourceLineNo">275</span>         this.field = field;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>         return this;<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      }<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>      BeanPropertyMeta.Builder setAsConstructorArg() {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         this.isConstructorArg = true;<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         return this;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      }<a name="line.282"></a>
+<span class="sourceLineNo">283</span><a name="line.283"></a>
+<span class="sourceLineNo">284</span>   }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>   /**<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    * Creates a new BeanPropertyMeta using the contents of the specified builder.<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    *<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    * @param b The builder to copy fields from.<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    */<a name="line.290"></a>
+<span class="sourceLineNo">291</span>   protected BeanPropertyMeta(BeanPropertyMeta.Builder b) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      this.field = b.field;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      this.getter = b.getter;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      this.setter = b.setter;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      this.isUri = b.isUri;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      this.beanMeta = b.beanMeta;<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      this.beanContext = b.beanContext;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      this.name = b.name;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      this.rawTypeMeta = b.rawTypeMeta;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      this.typeMeta = b.typeMeta;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      this.properties = b.properties;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      this.swap = b.swap;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      this.beanRegistry = b.beanRegistry;<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      this.overrideValue = b.overrideValue;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      this.delegateFor = b.delegateFor;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      this.extMeta = b.extMeta;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      this.isDyna = b.isDyna;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>   }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span>   /**<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    * Returns the name of this bean property.<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    *<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    * @return The name of the bean property.<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    */<a name="line.314"></a>
+<span class="sourceLineNo">315</span>   public String getName() {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      return name;<a name="line.316"></a>
+<span class="sourceLineNo">317</span>   }<a name="line.317"></a>
+<span class="sourceLineNo">318</span><a name="line.318"></a>
+<span class="sourceLineNo">319</span>   /**<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    * Returns the bean meta that this property belongs to.<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    *<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    * @return The bean meta that this property belongs to.<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    */<a name="line.323"></a>
+<span class="sourceLineNo">324</span>   @BeanIgnore<a name="line.324"></a>
+<span class="sourceLineNo">325</span>   public BeanMeta&lt;?&gt; getBeanMeta() {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      return beanMeta;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>   }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>   /**<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    * Returns the getter method for this property.<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    *<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    * @return The getter method for this bean property, or &lt;jk&gt;null&lt;/jk&gt; if there is no getter method.<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    */<a name="line.333"></a>
+<span class="sourceLineNo">334</span>   public Method getGetter() {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      return getter;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>   }<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
+<span class="sourceLineNo">338</span>   /**<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    * Returns the setter method for this property.<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    *<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    * @return The setter method for this bean property, or &lt;jk&gt;null&lt;/jk&gt; if there is no setter method.<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    */<a name="line.342"></a>
+<span class="sourceLineNo">343</span>   public Method getSetter() {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      return setter;<a name="line.344"></a>
+<span class="sourceLineNo">345</span>   }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>   /**<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    * Returns the field for this property.<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    *<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    * @return The field for this bean property, or &lt;jk&gt;null&lt;/jk&gt; if there is no field associated with this bean property.<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    */<a name="line.351"></a>
+<span class="sourceLineNo">352</span>   public Field getField() {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      return field;<a name="line.353"></a>
+<span class="sourceLineNo">354</span>   }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>   /**<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    * Returns the {@link ClassMeta} of the class of this property.<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    *<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    * &lt;p&gt;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    * If this property or the property type class has a {@link PojoSwap} associated with it, this method returns the<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    * transformed class meta.<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    * This matches the class type that is used by the {@link #get(BeanMap,String)} and<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    * {@link #set(BeanMap,String,Object)} methods.<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    *<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    * @return The {@link ClassMeta} of the class of this property.<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    */<a name="line.366"></a>
+<span class="sourceLineNo">367</span>   public ClassMeta&lt;?&gt; getClassMeta() {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      return typeMeta;<a name="line.368"></a>
+<span class="sourceLineNo">369</span>   }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>   /**<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    * Returns the bean dictionary in use for this bean property.<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    *<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    * &lt;p&gt;<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    * The order of lookup for the dictionary is as follows:<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    * &lt;ol&gt;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    *    &lt;li&gt;Dictionary defined via {@link BeanProperty#beanDictionary()}.<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    *    &lt;li&gt;Dictionary defined via {@link BeanContext#BEAN_beanDictionary} context property.<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    * &lt;/ol&gt;<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    *<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    * @return The bean dictionary in use for this bean property.  Never &lt;jk&gt;null&lt;/jk&gt;.<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    */<a name="line.382"></a>
+<span class="sourceLineNo">383</span>   public BeanRegistry getBeanRegistry() {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      return beanRegistry;<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>   /**<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    * Returns &lt;jk&gt;true&lt;/jk&gt; if this bean property is a URI.<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    *<a name="line.389"></a>
+<span class="sourceLineNo">390</span>    * &lt;p&gt;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    * A bean property can be considered a URI if any of the following are true:<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    * &lt;ul&gt;<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    *    &lt;li&gt;Property class type is {@link URL} or {@link URI}.<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    *    &lt;li&gt;Property class type is annotated with {@link org.apache.juneau.annotation.URI}.<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    *    &lt;li&gt;Property getter, setter, or field is annotated with {@link org.apache.juneau.annotation.URI}.<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    * &lt;/ul&gt;<a name="line.396"></a>
+<span class="sourceLineNo">397</span>    *<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if this bean property is a URI.<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    */<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   public boolean isUri() {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      return isUri;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>   }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>   /**<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    * Returns &lt;jk&gt;true&lt;/jk&gt; if this bean property is named &lt;js&gt;"*"&lt;/js&gt;.<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    *<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    * @return &lt;jk&gt;true&lt;/jk&gt; if this bean property is named &lt;js&gt;"*"&lt;/js&gt;.<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    */<a name="line.408"></a>
+<span class="sourceLineNo">409</span>   public boolean isDyna() {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      return isDyna;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>   }<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>   /**<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    * Returns the override list of properties defined through a {@link BeanProperty#properties()} annotation<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    * on this property.<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    *<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    * @return The list of override properties, or &lt;jk&gt;null&lt;/jk&gt; if annotation not specified.<a name="line.417"></a>
 <span class="sourceLineNo">418</span>    */<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   public Object get(BeanMap&lt;?&gt; m, String pName) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      try {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>         if (overrideValue != null)<a name="line.421"></a>
-<span class="sourceLineNo">422</span>            return overrideValue;<a name="line.422"></a>
-<span class="sourceLineNo">423</span><a name="line.423"></a>
-<span class="sourceLineNo">424</span>         // Read-only beans have their properties stored in a cache until getBean() is called.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>         Object bean = m.bean;<a name="line.425"></a>
-<span class="sourceLineNo">426</span>         if (bean == null)<a name="line.426"></a>
-<span class="sourceLineNo">427</span>            return m.propertyCache.get(name);<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>         return toSerializedForm(m.getBeanSession(), getRaw(m, pName));<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span>      } catch (Throwable e) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>         if (beanContext.ignoreInvocationExceptionsOnGetters) {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>            if (rawTypeMeta.isPrimitive())<a name="line.433"></a>
-<span class="sourceLineNo">434</span>               return rawTypeMeta.getPrimitiveDefault();<a name="line.434"></a>
-<span class="sourceLineNo">435</span>            return null;<a name="line.435"></a>
-<span class="sourceLineNo">436</span>         }<a name="line.436"></a>
-<span class="sourceLineNo">437</span>         throw new BeanRuntimeException(beanMeta.c, "Exception occurred while getting property ''{0}''", name).initCause(e);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      }<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   }<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>   /**<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    * Equivalent to calling {@link BeanMap#getRaw(Object)}, but is faster since it avoids looking up the property meta.<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    *<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    * @param m The bean map to get the transformed value from.<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    * @param pName The property name.<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    * @return The raw property value.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    */<a name="line.447"></a>
-<span class="sourceLineNo">448</span>   public Object getRaw(BeanMap&lt;?&gt; m, String pName) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      try {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>         // Read-only beans have their properties stored in a cache until getBean() is called.<a name="line.450"></a>
-<span class="sourceLineNo">451</span>         Object bean = m.bean;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>         if (bean == null)<a name="line.452"></a>
-<span class="sourceLineNo">453</span>            return m.propertyCache.get(name);<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span>         return invokeGetter(bean, pName);<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>      } catch (Throwable e) {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>         if (beanContext.ignoreInvocationExceptionsOnGetters) {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>            if (rawTypeMeta.isPrimitive())<a name="line.459"></a>
-<span class="sourceLineNo">460</span>               return rawTypeMeta.getPrimitiveDefault();<a name="line.460"></a>
-<span class="sourceLineNo">461</span>            return null;<a name="line.461"></a>
-<span class="sourceLineNo">462</span>         }<a name="line.462"></a>
-<span class="sourceLineNo">463</span>         throw new BeanRuntimeException(beanMeta.c, "Exception occurred while getting property ''{0}''", name).initCause(e);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   }<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>   /**<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    * Converts a raw bean property value to serialized form.<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    * Applies transforms and child property filters.<a name="line.469"></a>
+<span class="sourceLineNo">419</span>   public String[] getProperties() {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      return properties;<a name="line.420"></a>
+<span class="sourceLineNo">421</span>   }<a name="line.421"></a>
+<span class="sourceLineNo">422</span><a name="line.422"></a>
+<span class="sourceLineNo">423</span>   /**<a name="line.423"></a>
+<span class="sourceLineNo">424</span>    * Returns the language-specified extended metadata on this bean property.<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    *<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    * @param c The name of the metadata class to create.<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    * @return Extended metadata on this bean property.  Never &lt;jk&gt;null&lt;/jk&gt;.<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    */<a name="line.428"></a>
+<span class="sourceLineNo">429</span>   public &lt;M extends BeanPropertyMetaExtended&gt; M getExtendedMeta(Class&lt;M&gt; c) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      if (delegateFor != null)<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         return delegateFor.getExtendedMeta(c);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      return extMeta.get(c, this);<a name="line.432"></a>
+<span class="sourceLineNo">433</span>   }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>   /**<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    * Equivalent to calling {@link BeanMap#get(Object)}, but is faster since it avoids looking up the property meta.<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    *<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    * @param m The bean map to get the transformed value from.<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    * @param pName The property name.<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    * @return The property value.<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    */<a name="line.441"></a>
+<span class="sourceLineNo">442</span>   public Object get(BeanMap&lt;?&gt; m, String pName) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      try {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>         if (overrideValue != null)<a name="line.444"></a>
+<span class="sourceLineNo">445</span>            return overrideValue;<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>         // Read-only beans have their properties stored in a cache until getBean() is called.<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         Object bean = m.bean;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         if (bean == null)<a name="line.449"></a>
+<span class="sourceLineNo">450</span>            return m.propertyCache.get(name);<a name="line.450"></a>
+<span class="sourceLineNo">451</span><a name="line.451"></a>
+<span class="sourceLineNo">452</span>         return toSerializedForm(m.getBeanSession(), getRaw(m, pName));<a name="line.452"></a>
+<span class="sourceLineNo">453</span><a name="line.453"></a>
+<span class="sourceLineNo">454</span>      } catch (Throwable e) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>         if (beanContext.ignoreInvocationExceptionsOnGetters) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>            if (rawTypeMeta.isPrimitive())<a name="line.456"></a>
+<span class="sourceLineNo">457</span>               return rawTypeMeta.getPrimitiveDefault();<a name="line.457"></a>
+<span class="sourceLineNo">458</span>            return null;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>         }<a name="line.459"></a>
+<span class="sourceLineNo">460</span>         throw new BeanRuntimeException(beanMeta.c, "Exception occurred while getting property ''{0}''", name).initCause(e);<a name="line.460"></a>
+<span class="sourceLineNo">461</span>      }<a name="line.461"></a>
+<span class="sourceLineNo">462</span>   }<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>   /**<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    * Equivalent to calling {@link BeanMap#getRaw(Object)}, but is faster since it avoids looking up the property meta.<a name="line.465"></a>
+<span class="sourceLineNo">466</span>    *<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    * @param m The bean map to get the transformed value from.<a name="line.467"></a>
+<span class="sourceLineNo">468</span>    * @param pName The property name.<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    * @return The raw property value.<a name="line.469"></a>
 <span class="sourceLineNo">470</span>    */<a name="line.470"></a>
-<span class="sourceLineNo">471</span>   final Object toSerializedForm(BeanSession session, Object o) {<a name="line.471"></a>
+<span class="sourceLineNo">471</span>   public Object getRaw(BeanMap&lt;?&gt; m, String pName) {<a name="line.471"></a>
 <span class="sourceLineNo">472</span>      try {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>         o = transform(session, o);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>         if (o == null)<a name="line.474"></a>
-<span class="sourceLineNo">475</span>            return null;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>         if (properties != null) {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>            if (rawTypeMeta.isArray()) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>               Object[] a = (Object[])o;<a name="line.478"></a>
-<span class="sourceLineNo">479</span>               List l = new DelegateList(rawTypeMeta);<a name="line.479"></a>
-<span class="sourceLineNo">480</span>               ClassMeta childType = rawTypeMeta.getElementType();<a name="line.480"></a>
-<span class="sourceLineNo">481</span>               for (Object c : a)<a name="line.481"></a>
-<span class="sourceLineNo">482</span>                  l.add(applyChildPropertiesFilter(session, childType, c));<a name="line.482"></a>
-<span class="sourceLineNo">483</span>               return l;<a name="line.483"></a>
-<span class="sourceLineNo">484</span>            } else if (rawTypeMeta.isCollection()) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>               Collection c = (Collection)o;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>               List l = new ArrayList(c.size());<a name="line.486"></a>
-<span class="sourceLineNo">487</span>               ClassMeta childType = rawTypeMeta.getElementType();<a name="line.487"></a>
-<span class="sourceLineNo">488</span>               for (Object cc : c)<a name="line.488"></a>
-<span class="sourceLineNo">489</span>                  l.add(applyChildPropertiesFilter(session, childType, cc));<a name="line.489"></a>
-<span class="sourceLineNo">490</span>               return l;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>            } else {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>               return applyChildPropertiesFilter(session, rawTypeMeta, o);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>            }<a name="line.493"></a>
-<span class="sourceLineNo">494</span>         }<a name="line.494"></a>
-<span class="sourceLineNo">495</span>         return o;<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      } catch (SerializeException e) {<a name="line.496"></a>
-<span class="sourceLineNo">497</span>         throw new BeanRuntimeException(e);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      }<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>   /**<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    * Equivalent to calling {@link BeanMap#put(String, Object)}, but is faster since it avoids looking up the property<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    * meta.<a name="line.503"></a>
-<span class="sourceLineNo">504</span>    *<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    * @param m The bean map to set the property value on.<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    * @param pName The property name.<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    * @param value The value to set.<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    * @return The previous property value.<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    * @throws BeanRuntimeException If property could not be set.<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    */<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   public Object set(BeanMap&lt;?&gt; m, String pName, Object value) throws BeanRuntimeException {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      try {<a name="line.512"></a>
-<span class="sourceLineNo">513</span><a name="line.513"></a>
-<span class="sourceLineNo">514</span>         BeanSession session = m.getBeanSession();<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span>         // Convert to raw form.<a name="line.516"></a>
-<span class="sourceLineNo">517</span>         value = unswap(session, value);<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>         if (m.bean == null) {<a name="line.519"></a>
-<span class="sourceLineNo">520</span><a name="line.520"></a>
-<span class="sourceLineNo">521</span>            // Read-only beans get their properties stored in a cache.<a name="line.521"></a>
-<span class="sourceLineNo">522</span>            if (m.propertyCache != null)<a name="line.522"></a>
-<span class="sourceLineNo">523</span>               return m.propertyCache.put(name, value);<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>            throw new BeanRuntimeException("Non-existent bean instance on bean.");<a name="line.525"></a>
-<span class="sourceLineNo">526</span>         }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>         boolean isMap = rawTypeMeta.isMap();<a name="line.528"></a>
-<span class="sourceLineNo">529</span>         boolean isCollection = rawTypeMeta.isCollection();<a name="line.529"></a>
-<span class="sourceLineNo">530</span><a name="line.530"></a>
-<span class="sourceLineNo">531</span>         if ((! isDyna) &amp;&amp; field == null &amp;&amp; setter == null &amp;&amp; ! (isMap || isCollection)) {<a name="line.531"></a>
-<span class="sourceLineNo">532</span>            if ((value == null &amp;&amp; beanContext.ignoreUnknownNullBeanProperties) || beanContext.ignorePropertiesWithoutSetters)<a name="line.532"></a>
-<span class="sourceLineNo">533</span>               return null;<a name="line.533"></a>
-<span class="sourceLineNo">534</span>            throw new BeanRuntimeException(beanMeta.c, "Setter or public field not defined on property ''{0}''", name);<a name="line.534"></a>
-<span class="sourceLineNo">535</span>         }<a name="line.535"></a>
+<span class="sourceLineNo">473</span>         // Read-only beans have their properties stored in a cache until getBean() is called.<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         Object bean = m.bean;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>         if (bean == null)<a name="line.475"></a>
+<span class="sourceLineNo">476</span>            return m.propertyCache.get(name);<a name="line.476"></a>
+<span class="sourceLineNo">477</span><a name="line.477"></a>
+<span class="sourceLineNo">478</span>         return invokeGetter(bean, pName);<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>      } catch (Throwable e) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         if (beanContext.ignoreInvocationExceptionsOnGetters) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>            if (rawTypeMeta.isPrimitive())<a name="line.482"></a>
+<span class="sourceLineNo">483</span>               return rawTypeMeta.getPrimitiveDefault();<a name="line.483"></a>
+<span class="sourceLineNo">484</span>            return null;<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         throw new BeanRuntimeException(beanMeta.c, "Exception occurred while getting property ''{0}''", name).initCause(e);<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      }<a name="line.487"></a>
+<span class="sourceLineNo">488</span>   }<a name="line.488"></a>
+<span class="sourceLineNo">489</span><a name="line.489"></a>
+<span class="sourceLineNo">490</span>   /**<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    * Converts a raw bean property value to serialized form.<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    * Applies transforms and child property filters.<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    */<a name="line.493"></a>
+<span class="sourceLineNo">494</span>   final Object toSerializedForm(BeanSession session, Object o) {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>      try {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>         o = transform(session, o);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>         if (o == null)<a name="line.497"></a>
+<span class="sourceLineNo">498</span>            return null;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         if (properties != null) {<a name="line.499"></a>
+<span class="sourceLineNo">500</span>            if (rawTypeMeta.isArray()) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>               Object[] a = (Object[])o;<a name="line.501"></a>
+<span class="sourceLineNo">502</span>               List l = new DelegateList(rawTypeMeta);<a name="line.502"></a>
+<span class="sourceLineNo">503</span>               ClassMeta childType = rawTypeMeta.getElementType();<a name="line.503"></a>
+<span class="sourceLineNo">504</span>               for (Object c : a)<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                  l.add(applyChildPropertiesFilter(session, childType, c));<a name="line.505"></a>
+<span class="sourceLineNo">506</span>               return l;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>            } else if (rawTypeMeta.isCollection()) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>               Collection c = (Collection)o;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>               List l = new ArrayList(c.size());<a name="line.509"></a>
+<span class="sourceLineNo">510</span>               ClassMeta childType = rawTypeMeta.getElementType();<a name="line.510"></a>
+<span class="sourceLineNo">511</span>               for (Object cc : c)<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                  l.add(applyChildPropertiesFilter(session, childType, cc));<a name="line.512"></a>
+<span class="sourceLineNo">513</span>               return l;<a name="line.513"></a>
+<span class="sourceLineNo">514</span>            } else {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>               return applyChildPropertiesFilter(session, rawTypeMeta, o);<a name="line.515"></a>
+<span class="sourceLineNo">516</span>            }<a name="line.516"></a>
+<span class="sourceLineNo">517</span>         }<a name="line.517"></a>
+<span class="sourceLineNo">518</span>         return o;<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      } catch (SerializeException e) {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>         throw new BeanRuntimeException(e);<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      }<a name="line.521"></a>
+<span class="sourceLineNo">522</span>   }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span>   /**<a name="line.524"></a>
+<span class="sourceLineNo">525</span>    * Equivalent to calling {@link BeanMap#put(String, Object)}, but is faster since it avoids looking up the property<a name="line.525"></a>
+<span class="sourceLineNo">526</span>    * meta.<a name="line.526"></a>
+<span class="sourceLineNo">527</span>    *<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    * @param m The bean map to set the property value on.<a name="line.528"></a>
+<span class="sourceLineNo">529</span>    * @param pName The property name.<a name="line.529"></a>
+<span class="sourceLineNo">530</span>    * @param value The value to set.<a name="line.530"></a>
+<span class="sourceLineNo">531</span>    * @return The previous property value.<a name="line.531"></a>
+<span class="sourceLineNo">532</span>    * @throws BeanRuntimeException If property could not be set.<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    */<a name="line.533"></a>
+<span class="sourceLineNo">534</span>   public Object set(BeanMap&lt;?&gt; m, String pName, Object value) throws BeanRuntimeException {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>      try {<a name="line.535"></a>
 <span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>         Object bean = m.getBean(true);  // Don't use getBean() because it triggers array creation!<a name="line.537"></a>
+<span class="sourceLineNo">537</span>         BeanSession session = m.getBeanSession();<a name="line.537"></a>
 <span class="sourceLineNo">538</span><a name="line.538"></a>
-<span class="sourceLineNo">539</span>         try {<a name="line.539"></a>
-<span class="sourceLineNo">540</span><a name="line.540"></a>
-<span class="sourceLineNo">541</span>            Object r = beanContext.beanMapPutReturnsOldValue || isMap || isCollection ? get(m, pName) : null;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>            Class&lt;?&gt; propertyClass = rawTypeMeta.getInnerClass();<a name="line.542"></a>
+<span class="sourceLineNo">539</span>         // Convert to raw form.<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         value = unswap(session, value);<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>         if (m.bean == null) {<a name="line.542"></a>
 <span class="sourceLineNo">543</span><a name="line.543"></a>
-<span class="sourceLineNo">544</span>            if (value == null &amp;&amp; (isMap || isCollection)) {<a name="line.544"></a>
-<span class="sourceLineNo">545</span>               invokeSetter(bean, pName, null);<a name="line.545"></a>
-<span class="sourceLineNo">546</span>               return r;<a name="line.546"></a>
-<span class="sourceLineNo">547</span>            }<a name="line.547"></a>
-<span class="sourceLineNo">548</span><a name="line.548"></a>
-<span class="sourceLineNo">549</span>            if (isMap) {<a name="line.549"></a>
+<span class="sourceLineNo">544</span>            // Read-only beans get their properties stored in a cache.<a name="line.544"></a>
+<span class="sourceLineNo">545</span>            if (m.propertyCache != null)<a name="line.545"></a>
+<span class="sourceLineNo">546</span>               return m.propertyCache.put(name, value);<a name="line.546"></a>
+<span class="sourceLineNo">547</span><a name="line.547"></a>
+<span class="sourceLineNo">548</span>            throw new BeanRuntimeException("Non-existent bean instance on bean.");<a name="line.548"></a>
+<span class="sourceLineNo">549</span>         }<a name="line.549"></a>
 <span class="sourceLineNo">550</span><a name="line.550"></a>
-<span class="sourceLineNo">551</span>               if (! (value instanceof Map)) {<a name="line.551"></a>
-<span class="sourceLineNo">552</span>                  if (value instanceof CharSequence)<a name="line.552"></a>
-<span class="sourceLineNo">553</span>                     value = new ObjectMap((CharSequence)value).setBeanSession(session);<a name="line.553"></a>
-<span class="sourceLineNo">554</span>                  else<a name="line.554"></a>
-<span class="sourceLineNo">555</span>                     throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}''", name, propertyClass.getName(), findClassName(value));<a name="line.555"></a>
-<span class="sourceLineNo">556</span>               }<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>               Map valueMap = (Map)value;<a name="line.558"></a>
-<span class="sourceLineNo">559</span>               Map propMap = (Map)r;<a name="line.559"></a>
-<span class="sourceLineNo">560</span>               ClassMeta&lt;?&gt; valueType = rawTypeMeta.getValueType();<a name="line.560"></a>
+<span class="sourceLineNo">551</span>         boolean isMap = rawTypeMeta.isMap();<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         boolean isCollection = rawTypeMeta.isCollection();<a name="line.552"></a>
+<span class="sourceLineNo">553</span><a name="line.553"></a>
+<span class="sourceLineNo">554</span>         if ((! isDyna) &amp;&amp; field == null &amp;&amp; setter == null &amp;&amp; ! (isMap || isCollection)) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>            if ((value == null &amp;&amp; beanContext.ignoreUnknownNullBeanProperties) || beanContext.ignorePropertiesWithoutSetters)<a name="line.555"></a>
+<span class="sourceLineNo">556</span>               return null;<a name="line.556"></a>
+<span class="sourceLineNo">557</span>            throw new BeanRuntimeException(beanMeta.c, "Setter or public field not defined on property ''{0}''", name);<a name="line.557"></a>
+<span class="sourceLineNo">558</span>         }<a name="line.558"></a>
+<span class="sourceLineNo">559</span><a name="line.559"></a>
+<span class="sourceLineNo">560</span>         Object bean = m.getBean(true);  // Don't use getBean() because it triggers array creation!<a name="line.560"></a>
 <span class="sourceLineNo">561</span><a name="line.561"></a>
-<span class="sourceLineNo">562</span>               // If the property type is abstract, then we either need to reuse the existing<a name="line.562"></a>
-<span class="sourceLineNo">563</span>               // map (if it's not null), or try to assign the value directly.<a name="line.563"></a>
-<span class="sourceLineNo">564</span>               if (! rawTypeMeta.canCreateNewInstance()) {<a name="line.564"></a>
-<span class="sourceLineNo">565</span>                  if (propMap == null) {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>                     if (setter == null &amp;&amp; field == null)<a name="line.566"></a>
-<span class="sourceLineNo">567</span>                        throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter or public field is defined, and the current value is null", name, propertyClass.getName(), findClassName(value));<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>                     if (propertyClass.isInstance(valueMap)) {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>                        if (! valueType.isObject()) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>                           for (Map.Entry e : (Set&lt;Map.Entry&gt;)valueMap.entrySet()) {<a name="line.571"></a>
-<span class="sourceLineNo">572</span>                              Object v = e.getValue();<a name="line.572"></a>
-<span class="sourceLineNo">573</span>                              if (v != null &amp;&amp; ! valueType.getInnerClass().isInstance(v))<a name="line.573"></a>
-<span class="sourceLineNo">574</span>                                 throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because the value types in the assigned map do not match the specified ''elementClass'' attribute on the property, and the property value is currently null", name, propertyClass.getName(), findClassName(value));<a name="line.574"></a>
-<span class="sourceLineNo">575</span>                           }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>                        }<a name="line.576"></a>
-<span class="sourceLineNo">577</span>                        invokeSetter(bean, pName, valueMap);<a name="line.577"></a>
-<span class="sourceLineNo">578</span>                        return r;<a name="line.578"></a>
-<span class="sourceLineNo">579</span>                     }<a name="line.579"></a>
-<span class="sourceLineNo">580</span>                     throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{2}'' to object of type ''{2}'' because the assigned map cannot be converted to the specified type because the property type is abstract, and the property value is currently null", name, propertyClass.getName(), findClassName(value));<a name="line.580"></a>
-<span class="sourceLineNo">581</span>                  }<a name="line.581"></a>
-<span class="sourceLineNo">582</span>               } else {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>                  if (propMap == null) {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>                     propMap = newInstance(Map.class, propertyClass);<a name="line.584"></a>
-<span class="sourceLineNo">585</span>                  } else {<a name="line.585"></a>
-<span class="sourceLineNo">586</span>                     propMap.clear();<a name="line.586"></a>
-<span class="sourceLineNo">587</span>                  }<a name="line.587"></a>
-<span class="sourceLineNo">588</span>               }<a name="line.588"></a>
-<span class="sourceLineNo">589</span><a name="line.589"></a>
-<span class="sourceLineNo">590</span>               // Set the values.<a name="line.590"></a>
-<span class="sourceLineNo">591</span>               for (Map.Entry e : (Set&lt;Map.Entry&gt;)valueMap.entrySet()) {<a name="line.591"></a>
-<span class="sourceLineNo">592</span>                  Object k = e.getKey();<a name="line.592"></a>
-<span class="sourceLineNo">593</span>                  Object v = e.getValue();<a name="line.593"></a>
-<span class="sourceLineNo">594</span>                  if (! valueType.isObject())<a name="line.594"></a>
-<span class="sourceLineNo">595</span>                     v = session.convertToType(v, valueType);<a name="line.595"></a>
-<span class="sourceLineNo">596</span>                  propMap.put(k, v);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>               }<a name="line.597"></a>
-<span class="sourceLineNo">598</span>               if (setter != null || field != null)<a name="line.598"></a>
-<span class="sourceLineNo">599</span>                  invokeSetter(bean, pName, propMap);<a name="line.599"></a>
-<span class="sourceLineNo">600</span><a name="line.600"></a>
-<span class="sourceLineNo">601</span>            } else if (isCollection) {<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
-<span class="sourceLineNo">603</span>               if (! (value instanceof Collection)) {<a name="line.603"></a>
-<span class="sourceLineNo">604</span>                  if (value instanceof CharSequence)<a name="line.604"></a>
-<span class="sourceLineNo">605</span>                     value = new ObjectList((CharSequence)value).setBeanSession(session);<a name="line.605"></a>
-<span class="sourceLineNo">606</span>                  else<a name="line.606"></a>
-<span class="sourceLineNo">607</span>                     throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}''", name, propertyClass.getName(), findClassName(value));<a name="line.607"></a>
-<span class="sourceLineNo">608</span>               }<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>               Collection valueList = (Collection)value;<a name="line.610"></a>
-<span class="sourceLineNo">611</span>               Collection propList = (Collection)r;<a name="line.611"></a>
-<span class="sourceLineNo">612</span>                  ClassMeta elementType = rawTypeMeta.getElementType();<a name="line.612"></a>
-<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span>               // If the property type is abstract, then we either need to reuse the existing<a name="line.614"></a>
-<span class="sourceLineNo">615</span>               // collection (if it's not null), or try to assign the value directly.<a name="line.615"></a>
-<span class="sourceLineNo">616</span>               if (! rawTypeMeta.canCreateNewInstance()) {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>                  if (propList == null) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>                     if (setter == null &amp;&amp; field == null)<a name="line.618"></a>
-<span class="sou

<TRUNCATED>


[07/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/transform/PojoSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/transform/PojoSwap.html b/content/site/apidocs/src-html/org/apache/juneau/transform/PojoSwap.html
index ccac44c..2c886f5 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/transform/PojoSwap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/transform/PojoSwap.html
@@ -25,264 +25,601 @@
 <span class="sourceLineNo">017</span>import java.util.*;<a name="line.17"></a>
 <span class="sourceLineNo">018</span><a name="line.18"></a>
 <span class="sourceLineNo">019</span>import org.apache.juneau.*;<a name="line.19"></a>
-<span class="sourceLineNo">020</span>import org.apache.juneau.parser.*;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import org.apache.juneau.serializer.*;<a name="line.21"></a>
-<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
-<span class="sourceLineNo">024</span> * Used to swap out non-serializable objects with serializable replacements during serialization, and vis-versa during parsing.<a name="line.24"></a>
-<span class="sourceLineNo">025</span> *<a name="line.25"></a>
-<span class="sourceLineNo">026</span> * &lt;h5 class='section'&gt;Description:&lt;/h5&gt;<a name="line.26"></a>
-<span class="sourceLineNo">027</span> *<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * &lt;code&gt;PojoSwaps&lt;/code&gt; are used to extend the functionality of the serializers and parsers to be able to handle<a name="line.28"></a>
-<span class="sourceLineNo">029</span> * POJOs that aren't automatically handled by the serializers or parsers.  For example, JSON does not have a standard<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * representation for rendering dates.<a name="line.30"></a>
-<span class="sourceLineNo">031</span> * By defining a special {@code Date} swap and associating it with a serializer and parser, you can convert a<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * {@code Date} object to a {@code String} during serialization, and convert that {@code String} object back into a<a name="line.32"></a>
-<span class="sourceLineNo">033</span> * {@code Date} object during parsing.<a name="line.33"></a>
-<span class="sourceLineNo">034</span> *<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * &lt;p&gt;<a name="line.35"></a>
-<span class="sourceLineNo">036</span> * Swaps MUST declare a public no-arg constructor so that the bean context can instantiate them.<a name="line.36"></a>
-<span class="sourceLineNo">037</span> *<a name="line.37"></a>
-<span class="sourceLineNo">038</span> * &lt;p&gt;<a name="line.38"></a>
-<span class="sourceLineNo">039</span> * &lt;code&gt;PojoSwaps&lt;/code&gt; are associated with instances of {@link BeanContext BeanContexts} by passing the swap<a name="line.39"></a>
-<span class="sourceLineNo">040</span> * class to the {@link CoreObjectBuilder#pojoSwaps(Class...)} method.<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * &lt;br&gt;When associated with a bean context, fields of the specified type will automatically be converted when the<a name="line.41"></a>
-<span class="sourceLineNo">042</span> * {@link BeanMap#get(Object)} or {@link BeanMap#put(String, Object)} methods are called.<a name="line.42"></a>
-<span class="sourceLineNo">043</span> *<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * &lt;p&gt;<a name="line.44"></a>
-<span class="sourceLineNo">045</span> * &lt;code&gt;PojoSwaps&lt;/code&gt; have two parameters:<a name="line.45"></a>
-<span class="sourceLineNo">046</span> * &lt;ol&gt;<a name="line.46"></a>
-<span class="sourceLineNo">047</span> *    &lt;li&gt;{@code &lt;T&gt;} - The normal representation of an object.<a name="line.47"></a>
-<span class="sourceLineNo">048</span> *    &lt;li&gt;{@code &lt;S&gt;} - The swapped representation of an object.<a name="line.48"></a>
-<span class="sourceLineNo">049</span> * &lt;/ol&gt;<a name="line.49"></a>
-<span class="sourceLineNo">050</span> * &lt;br&gt;{@link Serializer Serializers} use swaps to convert objects of type T into objects of type S, and on calls to<a name="line.50"></a>
-<span class="sourceLineNo">051</span> * {@link BeanMap#get(Object)}.<a name="line.51"></a>
-<span class="sourceLineNo">052</span> * &lt;br&gt;{@link Parser Parsers} use swaps to convert objects of type S into objects of type T, and on calls to<a name="line.52"></a>
-<span class="sourceLineNo">053</span> * {@link BeanMap#put(String,Object)}.<a name="line.53"></a>
-<span class="sourceLineNo">054</span> *<a name="line.54"></a>
-<span class="sourceLineNo">055</span> * &lt;h6 class='topic'&gt;Subtypes&lt;/h6&gt;<a name="line.55"></a>
-<span class="sourceLineNo">056</span> *<a name="line.56"></a>
-<span class="sourceLineNo">057</span> * The following abstract subclasses are provided for common swap types:<a name="line.57"></a>
-<span class="sourceLineNo">058</span> * &lt;ol&gt;<a name="line.58"></a>
-<span class="sourceLineNo">059</span> *    &lt;li&gt;{@link StringSwap} - Objects swapped with strings.<a name="line.59"></a>
-<span class="sourceLineNo">060</span> *    &lt;li&gt;{@link MapSwap} - Objects swapped with {@link ObjectMap ObjectMaps}.<a name="line.60"></a>
-<span class="sourceLineNo">061</span> * &lt;/ol&gt;<a name="line.61"></a>
+<span class="sourceLineNo">020</span>import org.apache.juneau.annotation.*;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.juneau.http.*;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.juneau.parser.*;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.juneau.serializer.*;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>/**<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * Used to swap out non-serializable objects with serializable replacements during serialization, and vis-versa during<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * parsing.<a name="line.27"></a>
+<span class="sourceLineNo">028</span> *<a name="line.28"></a>
+<span class="sourceLineNo">029</span> *<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * &lt;h6 class='section'&gt;Description:&lt;/h6&gt;<a name="line.30"></a>
+<span class="sourceLineNo">031</span> *<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * &lt;p&gt;<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * &lt;code&gt;PojoSwaps&lt;/code&gt; are used to extend the functionality of the serializers and parsers to be able to handle<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * POJOs that aren't automatically handled by the serializers or parsers.<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * &lt;br&gt;For example, JSON does not have a standard representation for rendering dates.<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * By defining a special {@code Date} swap and associating it with a serializer and parser, you can convert a<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * {@code Date} object to a {@code String} during serialization, and convert that {@code String} object back into a<a name="line.37"></a>
+<span class="sourceLineNo">038</span> * {@code Date} object during parsing.<a name="line.38"></a>
+<span class="sourceLineNo">039</span> *<a name="line.39"></a>
+<span class="sourceLineNo">040</span> * &lt;p&gt;<a name="line.40"></a>
+<span class="sourceLineNo">041</span> * Swaps MUST declare a public no-arg constructor so that the bean context can instantiate them.<a name="line.41"></a>
+<span class="sourceLineNo">042</span> *<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * &lt;p&gt;<a name="line.43"></a>
+<span class="sourceLineNo">044</span> * &lt;code&gt;PojoSwaps&lt;/code&gt; are associated with instances of {@link BeanContext BeanContexts} by passing the swap<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * class to the {@link SerializerBuilder#pojoSwaps(Class...)} and {@link ParserBuilder#pojoSwaps(Class...)} methods.<a name="line.45"></a>
+<span class="sourceLineNo">046</span> * &lt;br&gt;When associated with a bean context, fields of the specified type will automatically be converted when the<a name="line.46"></a>
+<span class="sourceLineNo">047</span> * {@link BeanMap#get(Object)} or {@link BeanMap#put(String, Object)} methods are called.<a name="line.47"></a>
+<span class="sourceLineNo">048</span> *<a name="line.48"></a>
+<span class="sourceLineNo">049</span> * &lt;p&gt;<a name="line.49"></a>
+<span class="sourceLineNo">050</span> * &lt;code&gt;PojoSwaps&lt;/code&gt; have two parameters:<a name="line.50"></a>
+<span class="sourceLineNo">051</span> * &lt;ol&gt;<a name="line.51"></a>
+<span class="sourceLineNo">052</span> *    &lt;li&gt;{@code &lt;T&gt;} - The normal representation of an object.<a name="line.52"></a>
+<span class="sourceLineNo">053</span> *    &lt;li&gt;{@code &lt;S&gt;} - The swapped representation of an object.<a name="line.53"></a>
+<span class="sourceLineNo">054</span> * &lt;/ol&gt;<a name="line.54"></a>
+<span class="sourceLineNo">055</span> * &lt;br&gt;{@link Serializer Serializers} use swaps to convert objects of type T into objects of type S, and on calls to<a name="line.55"></a>
+<span class="sourceLineNo">056</span> * {@link BeanMap#get(Object)}.<a name="line.56"></a>
+<span class="sourceLineNo">057</span> * &lt;br&gt;{@link Parser Parsers} use swaps to convert objects of type S into objects of type T, and on calls to<a name="line.57"></a>
+<span class="sourceLineNo">058</span> * {@link BeanMap#put(String,Object)}.<a name="line.58"></a>
+<span class="sourceLineNo">059</span> *<a name="line.59"></a>
+<span class="sourceLineNo">060</span> *<a name="line.60"></a>
+<span class="sourceLineNo">061</span> * &lt;h6 class='topic'&gt;Subtypes&lt;/h6&gt;<a name="line.61"></a>
 <span class="sourceLineNo">062</span> *<a name="line.62"></a>
-<span class="sourceLineNo">063</span> * &lt;h6 class='topic'&gt;Localization&lt;/h6&gt;<a name="line.63"></a>
-<span class="sourceLineNo">064</span> *<a name="line.64"></a>
-<span class="sourceLineNo">065</span> * Swaps have access to the session locale and timezone through the {@link BeanSession#getLocale()} and<a name="line.65"></a>
-<span class="sourceLineNo">066</span> * {@link BeanSession#getTimeZone()} methods.<a name="line.66"></a>
-<span class="sourceLineNo">067</span> * This allows you to specify localized swap values when needed.<a name="line.67"></a>
-<span class="sourceLineNo">068</span> * If using the REST server API, the locale and timezone are set based on the &lt;code&gt;Accept-Language&lt;/code&gt; and<a name="line.68"></a>
-<span class="sourceLineNo">069</span> * &lt;code&gt;Time-Zone&lt;/code&gt; headers on the request.<a name="line.69"></a>
-<span class="sourceLineNo">070</span> *<a name="line.70"></a>
-<span class="sourceLineNo">071</span> * &lt;h6 class='topic'&gt;Swap Class Type {@code &lt;S&gt;}&lt;/h6&gt;<a name="line.71"></a>
-<span class="sourceLineNo">072</span> *<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * The swapped object representation of an object must be an object type that the serializers can natively convert to<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * JSON (or language-specific equivalent).<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * The list of valid transformed types are as follows...<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * &lt;ul class='spaced-list'&gt;<a name="line.76"></a>
-<span class="sourceLineNo">077</span> *    &lt;li&gt;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> *       {@link String}<a name="line.78"></a>
-<span class="sourceLineNo">079</span> *    &lt;li&gt;<a name="line.79"></a>
-<span class="sourceLineNo">080</span> *       {@link Number}<a name="line.80"></a>
-<span class="sourceLineNo">081</span> *    &lt;li&gt;<a name="line.81"></a>
-<span class="sourceLineNo">082</span> *       {@link Boolean}<a name="line.82"></a>
-<span class="sourceLineNo">083</span> *    &lt;li&gt;<a name="line.83"></a>
-<span class="sourceLineNo">084</span> *       {@link Collection} containing anything on this list.<a name="line.84"></a>
-<span class="sourceLineNo">085</span> *    &lt;li&gt;<a name="line.85"></a>
-<span class="sourceLineNo">086</span> *       {@link Map} containing anything on this list.<a name="line.86"></a>
-<span class="sourceLineNo">087</span> *    &lt;li&gt;<a name="line.87"></a>
-<span class="sourceLineNo">088</span> *       A java bean with properties of anything on this list.<a name="line.88"></a>
-<span class="sourceLineNo">089</span> *    &lt;li&gt;<a name="line.89"></a>
-<span class="sourceLineNo">090</span> *       An array of anything on this list.<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * &lt;/ul&gt;<a name="line.91"></a>
+<span class="sourceLineNo">063</span> * The following abstract subclasses are provided for common swap types:<a name="line.63"></a>
+<span class="sourceLineNo">064</span> * &lt;ol&gt;<a name="line.64"></a>
+<span class="sourceLineNo">065</span> *    &lt;li&gt;{@link StringSwap} - Objects swapped with strings.<a name="line.65"></a>
+<span class="sourceLineNo">066</span> *    &lt;li&gt;{@link MapSwap} - Objects swapped with {@link ObjectMap ObjectMaps}.<a name="line.66"></a>
+<span class="sourceLineNo">067</span> * &lt;/ol&gt;<a name="line.67"></a>
+<span class="sourceLineNo">068</span> *<a name="line.68"></a>
+<span class="sourceLineNo">069</span> *<a name="line.69"></a>
+<span class="sourceLineNo">070</span> * &lt;h6 class='topic'&gt;Swap Class Type {@code &lt;S&gt;}&lt;/h6&gt;<a name="line.70"></a>
+<span class="sourceLineNo">071</span> *<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * The swapped object representation of an object must be an object type that the serializers can natively convert to<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * JSON (or language-specific equivalent).<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * The list of valid transformed types are as follows...<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * &lt;ul class='spaced-list'&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span> *    &lt;li&gt;<a name="line.76"></a>
+<span class="sourceLineNo">077</span> *       {@link String}<a name="line.77"></a>
+<span class="sourceLineNo">078</span> *    &lt;li&gt;<a name="line.78"></a>
+<span class="sourceLineNo">079</span> *       {@link Number}<a name="line.79"></a>
+<span class="sourceLineNo">080</span> *    &lt;li&gt;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> *       {@link Boolean}<a name="line.81"></a>
+<span class="sourceLineNo">082</span> *    &lt;li&gt;<a name="line.82"></a>
+<span class="sourceLineNo">083</span> *       {@link Collection} containing anything on this list.<a name="line.83"></a>
+<span class="sourceLineNo">084</span> *    &lt;li&gt;<a name="line.84"></a>
+<span class="sourceLineNo">085</span> *       {@link Map} containing anything on this list.<a name="line.85"></a>
+<span class="sourceLineNo">086</span> *    &lt;li&gt;<a name="line.86"></a>
+<span class="sourceLineNo">087</span> *       A java bean with properties of anything on this list.<a name="line.87"></a>
+<span class="sourceLineNo">088</span> *    &lt;li&gt;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> *       An array of anything on this list.<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * &lt;/ul&gt;<a name="line.90"></a>
+<span class="sourceLineNo">091</span> *<a name="line.91"></a>
 <span class="sourceLineNo">092</span> *<a name="line.92"></a>
 <span class="sourceLineNo">093</span> * &lt;h6 class='topic'&gt;Normal Class Type {@code &lt;T&gt;}&lt;/h6&gt;<a name="line.93"></a>
 <span class="sourceLineNo">094</span> *<a name="line.94"></a>
 <span class="sourceLineNo">095</span> * The normal object representation of an object.<a name="line.95"></a>
 <span class="sourceLineNo">096</span> *<a name="line.96"></a>
-<span class="sourceLineNo">097</span> * &lt;h6 class='topic'&gt;One-way vs. Two-way Serialization&lt;/h6&gt;<a name="line.97"></a>
-<span class="sourceLineNo">098</span> *<a name="line.98"></a>
-<span class="sourceLineNo">099</span> * Note that while there is a unified interface for handling swaps during both serialization and parsing,<a name="line.99"></a>
-<span class="sourceLineNo">100</span> * in many cases only one of the {@link #swap(BeanSession, Object)} or {@link #unswap(BeanSession, Object, ClassMeta)}<a name="line.100"></a>
-<span class="sourceLineNo">101</span> * methods will be defined because the swap is one-way.<a name="line.101"></a>
-<span class="sourceLineNo">102</span> * For example, a swap may be defined to convert an {@code Iterator} to a {@code ObjectList}, but<a name="line.102"></a>
-<span class="sourceLineNo">103</span> * it's not possible to unswap an {@code Iterator}.<a name="line.103"></a>
-<span class="sourceLineNo">104</span> * In that case, the {@code swap(Object}} method would be implemented, but the {@code unswap(ObjectMap)} object would<a name="line.104"></a>
-<span class="sourceLineNo">105</span> * not, and the swap would be associated on the serializer, but not the parser.<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * Also, you may choose to serialize objects like {@code Dates} to readable {@code Strings}, in which case it's not<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * possible to re-parse it back into a {@code Date}, since there is no way for the {@code Parser} to know it's a<a name="line.107"></a>
-<span class="sourceLineNo">108</span> * {@code Date} from just the JSON or XML text.<a name="line.108"></a>
-<span class="sourceLineNo">109</span> *<a name="line.109"></a>
-<span class="sourceLineNo">110</span> * &lt;h5 class='section'&gt;Additional information:&lt;/h5&gt;<a name="line.110"></a>
-<span class="sourceLineNo">111</span> *<a name="line.111"></a>
-<span class="sourceLineNo">112</span> * See &lt;a class='doclink' href='package-summary.html#TOC'&gt;org.apache.juneau.transform&lt;/a&gt; for more information.<a name="line.112"></a>
-<span class="sourceLineNo">113</span> *<a name="line.113"></a>
-<span class="sourceLineNo">114</span> * @param &lt;T&gt; The normal form of the class.<a name="line.114"></a>
-<span class="sourceLineNo">115</span> * @param &lt;S&gt; The swapped form of the class.<a name="line.115"></a>
-<span class="sourceLineNo">116</span> */<a name="line.116"></a>
-<span class="sourceLineNo">117</span>public abstract class PojoSwap&lt;T,S&gt; {<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>   /**<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    * Represents a non-existent pojo swap.<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    */<a name="line.121"></a>
-<span class="sourceLineNo">122</span>   @SuppressWarnings({ "unchecked", "rawtypes" })<a name="line.122"></a>
-<span class="sourceLineNo">123</span>   public final static PojoSwap NULL = new PojoSwap(null, null) {};<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>   private final Class&lt;T&gt; normalClass;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   private final Class&lt;?&gt; swapClass;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   private ClassMeta&lt;?&gt; swapClassMeta;<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>   /**<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    * Constructor.<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    */<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   @SuppressWarnings("unchecked")<a name="line.132"></a>
-<span class="sourceLineNo">133</span>   protected PojoSwap() {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      normalClass = (Class&lt;T&gt;)resolveParameterType(PojoSwap.class, 0, this.getClass());<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      swapClass = resolveParameterType(PojoSwap.class, 1, this.getClass());<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   }<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span>   /**<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    * Constructor for when the normal and transformed classes are already known.<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    *<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    * @param normalClass The normal class (cannot be serialized).<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    * @param swapClass The transformed class (serializable).<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    */<a name="line.143"></a>
-<span class="sourceLineNo">144</span>   protected PojoSwap(Class&lt;T&gt; normalClass, Class&lt;?&gt; swapClass) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      this.normalClass = normalClass;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      this.swapClass = swapClass;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>   }<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>   /**<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    * If this transform is to be used to serialize non-serializable POJOs, it must implement this method.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    *<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    * &lt;p&gt;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    * The object must be converted into one of the following serializable types:<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    * &lt;ul class='spaced-list'&gt;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    *    &lt;li&gt;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    *       {@link String}<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    *    &lt;li&gt;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    *       {@link Number}<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    *    &lt;li&gt;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    *       {@link Boolean}<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    *    &lt;li&gt;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    *       {@link Collection} containing anything on this list.<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    *    &lt;li&gt;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    *       {@link Map} containing anything on this list.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    *    &lt;li&gt;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    *       A java bean with properties of anything on this list.<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    *    &lt;li&gt;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    *       An array of anything on this list.<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    * &lt;/ul&gt;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    *<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    * @param session<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    *    The bean session to use to get the class meta.<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    *    This is always going to be the same bean context that created this swap.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    * @param o The object to be transformed.<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    * @return The transformed object.<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    * @throws Exception If a problem occurred trying to convert the output.<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    */<a name="line.177"></a>
-<span class="sourceLineNo">178</span>   public S swap(BeanSession session, T o) throws Exception {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      throw new SerializeException("Swap method not implemented on PojoSwap ''{0}''", this.getClass().getName());<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>   /**<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    * If this transform is to be used to reconstitute POJOs that aren't true Java beans, it must implement this method.<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    *<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    * @param session<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    *    The bean session to use to get the class meta.<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    *    This is always going to be the same bean context that created this swap.<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    * @param f The transformed object.<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    * @param hint<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    *    If possible, the parser will try to tell you the object type being created.<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    *    For example, on a serialized date, this may tell you that the object being created must be of type<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    *    {@code GregorianCalendar}.<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    *    &lt;br&gt;This may be &lt;jk&gt;null&lt;/jk&gt; if the parser cannot make this determination.<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    * @return The narrowed object.<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    * @throws Exception If this method is not implemented.<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    */<a name="line.196"></a>
-<span class="sourceLineNo">197</span>   public T unswap(BeanSession session, S f, ClassMeta&lt;?&gt; hint) throws Exception {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      throw new ParseException("Unswap method not implemented on PojoSwap ''{0}''", this.getClass().getName());<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>   /**<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    * Returns the T class, the normalized form of the class.<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    *<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    * @return The normal form of this class.<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    */<a name="line.205"></a>
-<span class="sourceLineNo">206</span>   public Class&lt;T&gt; getNormalClass() {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      return normalClass;<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   }<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>   /**<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    * Returns the G class, the generalized form of the class.<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    *<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    * &lt;p&gt;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    * Subclasses must override this method if the generalized class is {@code Object}, meaning it can produce multiple<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    * generalized forms.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    *<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    * @return The transformed form of this class.<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    */<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   public Class&lt;?&gt; getSwapClass() {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      return swapClass;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>   }<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>   /**<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    * Returns the {@link ClassMeta} of the transformed class type.<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    *<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    * &lt;p&gt;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    * This value is cached for quick lookup.<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    *<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    * @param beanContext<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    *    The bean context to use to get the class meta.<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    *    This is always going to be the same bean context that created this swap.<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    * @return The {@link ClassMeta} of the transformed class type.<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    */<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   public ClassMeta&lt;?&gt; getSwapClassMeta(BeanContext beanContext) {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      if (swapClassMeta == null)<a name="line.235"></a>
-<span class="sourceLineNo">236</span>         swapClassMeta = beanContext.getClassMeta(swapClass);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      return swapClassMeta;<a name="line.237"></a>
-<span class="sourceLineNo">238</span>   }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>   /**<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    * Checks if the specified object is an instance of the normal class defined on this swap.<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    *<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    * @param o The object to check.<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    * @return<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    *    &lt;jk&gt;true&lt;/jk&gt; if the specified object is a subclass of the normal class defined on this transform.<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    *    &lt;jk&gt;null&lt;/jk&gt; always return &lt;jk&gt;false&lt;/jk&gt;.<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    */<a name="line.247"></a>
-<span class="sourceLineNo">248</span>   public boolean isNormalObject(Object o) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      if (o == null)<a name="line.249"></a>
-<span class="sourceLineNo">250</span>         return false;<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      return isParentClass(normalClass, o.getClass());<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   }<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>   /**<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    * Checks if the specified object is an instance of the swap class defined on this swap.<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    *<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    * @param o The object to check.<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    * @return<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    *    &lt;jk&gt;true&lt;/jk&gt; if the specified object is a subclass of the transformed class defined on this transform.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    *    &lt;jk&gt;null&lt;/jk&gt; always return &lt;jk&gt;false&lt;/jk&gt;.<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    */<a name="line.261"></a>
-<span class="sourceLineNo">262</span>   public boolean isSwappedObject(Object o) {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      if (o == null)<a name="line.263"></a>
-<span class="sourceLineNo">264</span>         return false;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      return isParentClass(swapClass, o.getClass());<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   }<a name="line.266"></a>
-<span class="sourceLineNo">267</span><a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>   //--------------------------------------------------------------------------------<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   // Overridden methods<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   //--------------------------------------------------------------------------------<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>   @Override /* Object */<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   public String toString() {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      return getClass().getSimpleName() + '&lt;' + getNormalClass().getSimpleName() + "," + getSwapClass().getSimpleName() + '&gt;';<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   }<a name="line.276"></a>
-<span class="sourceLineNo">277</span>}<a name="line.277"></a>
+<span class="sourceLineNo">097</span> *<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * &lt;h6 class='topic'&gt;Overview&lt;/h6&gt;<a name="line.98"></a>
+<span class="sourceLineNo">099</span> *<a name="line.99"></a>
+<span class="sourceLineNo">100</span> * The following is an example of a swap that replaces byte arrays with BASE-64 encoded strings:<a name="line.100"></a>
+<span class="sourceLineNo">101</span> *<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * &lt;p class='bcode'&gt;<a name="line.102"></a>
+<span class="sourceLineNo">103</span> *    &lt;jk&gt;public class&lt;/jk&gt; ByteArrayBase64Swap &lt;jk&gt;extends&lt;/jk&gt; PojoSwap&lt;&lt;jk&gt;byte&lt;/jk&gt;[],String&gt; {<a name="line.103"></a>
+<span class="sourceLineNo">104</span> *<a name="line.104"></a>
+<span class="sourceLineNo">105</span> *       &lt;jk&gt;public&lt;/jk&gt; String swap(BeanSession session, &lt;jk&gt;byte&lt;/jk&gt;[] b) &lt;jk&gt;throws&lt;/jk&gt; SerializeException {<a name="line.105"></a>
+<span class="sourceLineNo">106</span> *          &lt;jk&gt;return&lt;/jk&gt; StringUtils.&lt;jsm&gt;base64Encode&lt;/jsm&gt;(b);<a name="line.106"></a>
+<span class="sourceLineNo">107</span> *       }<a name="line.107"></a>
+<span class="sourceLineNo">108</span> *<a name="line.108"></a>
+<span class="sourceLineNo">109</span> *       &lt;jk&gt;public byte&lt;/jk&gt;[] unswap(BeanSession session, String s, ClassMeta&amp;lt;?&amp;gt; hint) &lt;jk&gt;throws&lt;/jk&gt; ParseException {<a name="line.109"></a>
+<span class="sourceLineNo">110</span> *          &lt;jk&gt;return&lt;/jk&gt; StringUtils.&lt;jsm&gt;base64Decode&lt;/jsm&gt;(s);<a name="line.110"></a>
+<span class="sourceLineNo">111</span> *       }<a name="line.111"></a>
+<span class="sourceLineNo">112</span> *    }<a name="line.112"></a>
+<span class="sourceLineNo">113</span> * &lt;/p&gt;<a name="line.113"></a>
+<span class="sourceLineNo">114</span> *<a name="line.114"></a>
+<span class="sourceLineNo">115</span> * &lt;p class='bcode'&gt;<a name="line.115"></a>
+<span class="sourceLineNo">116</span> *    WriterSerializer s = JsonSerializer.&lt;jsf&gt;DEFAULT_LAX&lt;/jsf&gt;.builder().pojoSwaps(ByteArrayBase64Swap.&lt;jk&gt;class&lt;/jk&gt;).build();<a name="line.116"></a>
+<span class="sourceLineNo">117</span> *    String json = s.serialize(&lt;jk&gt;new byte&lt;/jk&gt;[] {1,2,3});  &lt;jc&gt;// Produces "'AQID'"&lt;/jc&gt;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> * &lt;/p&gt;<a name="line.118"></a>
+<span class="sourceLineNo">119</span> *<a name="line.119"></a>
+<span class="sourceLineNo">120</span> *<a name="line.120"></a>
+<span class="sourceLineNo">121</span> * &lt;h6 class='topic'&gt;Swap annotation&lt;/h6&gt;<a name="line.121"></a>
+<span class="sourceLineNo">122</span> *<a name="line.122"></a>
+<span class="sourceLineNo">123</span> * &lt;p&gt;<a name="line.123"></a>
+<span class="sourceLineNo">124</span> * Swap classes are often associated directly with POJOs using the {@link Swap @Swap} annotation.<a name="line.124"></a>
+<span class="sourceLineNo">125</span> *<a name="line.125"></a>
+<span class="sourceLineNo">126</span> * &lt;p class='bcode'&gt;<a name="line.126"></a>
+<span class="sourceLineNo">127</span> *    &lt;jk&gt;public class&lt;/jk&gt; MyPojoSwap &lt;jk&gt;extends&lt;/jk&gt; PojoSwap&amp;lt;MyPojo,String&amp;gt; { ... }<a name="line.127"></a>
+<span class="sourceLineNo">128</span> *<a name="line.128"></a>
+<span class="sourceLineNo">129</span> *    &lt;ja&gt;@Swap&lt;/ja&gt;(MyPojoSwap.&lt;jk&gt;class&lt;/jk&gt;)<a name="line.129"></a>
+<span class="sourceLineNo">130</span> *    &lt;jk&gt;public class&lt;/jk&gt; MyPojo { ... }<a name="line.130"></a>
+<span class="sourceLineNo">131</span> * &lt;/p&gt;<a name="line.131"></a>
+<span class="sourceLineNo">132</span> *<a name="line.132"></a>
+<span class="sourceLineNo">133</span> * &lt;p&gt;<a name="line.133"></a>
+<span class="sourceLineNo">134</span> * The &lt;ja&gt;@Swap&lt;/ja&gt; annotation is often simpler since you do not need to tell your serializers and parsers about them<a name="line.134"></a>
+<span class="sourceLineNo">135</span> * leading to less code.<a name="line.135"></a>
+<span class="sourceLineNo">136</span> *<a name="line.136"></a>
+<span class="sourceLineNo">137</span> * &lt;p&gt;<a name="line.137"></a>
+<span class="sourceLineNo">138</span> * Swaps can also be associated with getters and setters as well:<a name="line.138"></a>
+<span class="sourceLineNo">139</span> *<a name="line.139"></a>
+<span class="sourceLineNo">140</span> * &lt;p class='bcode'&gt;<a name="line.140"></a>
+<span class="sourceLineNo">141</span> *    &lt;ja&gt;@BeanProperty&lt;/ja&gt;(swap=MyPojo.&lt;jk&gt;class&lt;/jk&gt;)<a name="line.141"></a>
+<span class="sourceLineNo">142</span> *    &lt;jk&gt;public&lt;/jk&gt; MyPojo getMyPojo();<a name="line.142"></a>
+<span class="sourceLineNo">143</span> * &lt;/p&gt;<a name="line.143"></a>
+<span class="sourceLineNo">144</span> *<a name="line.144"></a>
+<span class="sourceLineNo">145</span> *<a name="line.145"></a>
+<span class="sourceLineNo">146</span> * &lt;h6 class='topic'&gt;One-way vs. Two-way Serialization&lt;/h6&gt;<a name="line.146"></a>
+<span class="sourceLineNo">147</span> *<a name="line.147"></a>
+<span class="sourceLineNo">148</span> * Note that while there is a unified interface for handling swaps during both serialization and parsing,<a name="line.148"></a>
+<span class="sourceLineNo">149</span> * in many cases only one of the {@link #swap(BeanSession, Object)} or {@link #unswap(BeanSession, Object, ClassMeta)}<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * methods will be defined because the swap is one-way.<a name="line.150"></a>
+<span class="sourceLineNo">151</span> * For example, a swap may be defined to convert an {@code Iterator} to a {@code ObjectList}, but<a name="line.151"></a>
+<span class="sourceLineNo">152</span> * it's not possible to unswap an {@code Iterator}.<a name="line.152"></a>
+<span class="sourceLineNo">153</span> * In that case, the {@code swap(Object}} method would be implemented, but the {@code unswap(ObjectMap)} object would<a name="line.153"></a>
+<span class="sourceLineNo">154</span> * not, and the swap would be associated on the serializer, but not the parser.<a name="line.154"></a>
+<span class="sourceLineNo">155</span> * Also, you may choose to serialize objects like {@code Dates} to readable {@code Strings}, in which case it's not<a name="line.155"></a>
+<span class="sourceLineNo">156</span> * possible to re-parse it back into a {@code Date}, since there is no way for the {@code Parser} to know it's a<a name="line.156"></a>
+<span class="sourceLineNo">157</span> * {@code Date} from just the JSON or XML text.<a name="line.157"></a>
+<span class="sourceLineNo">158</span> *<a name="line.158"></a>
+<span class="sourceLineNo">159</span> *<a name="line.159"></a>
+<span class="sourceLineNo">160</span> * &lt;h6 class='topic'&gt;Per media-type swaps&lt;/h6&gt;<a name="line.160"></a>
+<span class="sourceLineNo">161</span> * &lt;p&gt;<a name="line.161"></a>
+<span class="sourceLineNo">162</span> * The {@link #forMediaTypes()} method can be overridden to provide a set of media types that the swap is invoked on.<a name="line.162"></a>
+<span class="sourceLineNo">163</span> * It's also possible to define multiple swaps against the same POJO as long as they're differentiated by media type.<a name="line.163"></a>
+<span class="sourceLineNo">164</span> * When multiple swaps are defined, the best-match media type is used.<a name="line.164"></a>
+<span class="sourceLineNo">165</span> *<a name="line.165"></a>
+<span class="sourceLineNo">166</span> * &lt;p&gt;<a name="line.166"></a>
+<span class="sourceLineNo">167</span> * In the following example, we define 3 swaps against the same POJO.  One for JSON, one for XML, and one for all<a name="line.167"></a>
+<span class="sourceLineNo">168</span> * other types.<a name="line.168"></a>
+<span class="sourceLineNo">169</span> *<a name="line.169"></a>
+<span class="sourceLineNo">170</span> * &lt;p class='bcode'&gt;<a name="line.170"></a>
+<span class="sourceLineNo">171</span> *    &lt;jk&gt;public class&lt;/jk&gt; PojoSwapTest {<a name="line.171"></a>
+<span class="sourceLineNo">172</span> *<a name="line.172"></a>
+<span class="sourceLineNo">173</span> *       &lt;jk&gt;public static class&lt;/jk&gt; MyPojo {}<a name="line.173"></a>
+<span class="sourceLineNo">174</span> *<a name="line.174"></a>
+<span class="sourceLineNo">175</span> *       &lt;jk&gt;public static class&lt;/jk&gt; MyJsonSwap &lt;jk&gt;extends&lt;/jk&gt; PojoSwap&amp;lt;MyPojo,String&amp;gt; {<a name="line.175"></a>
+<span class="sourceLineNo">176</span> *<a name="line.176"></a>
+<span class="sourceLineNo">177</span> *          &lt;jk&gt;public&lt;/jk&gt; MediaType[] forMediaTypes() {<a name="line.177"></a>
+<span class="sourceLineNo">178</span> *             &lt;jk&gt;return&lt;/jk&gt; MediaType.&lt;jsm&gt;forStrings&lt;/jsm&gt;(&lt;js&gt;"&amp;#42;/json"&lt;/js&gt;);<a name="line.178"></a>
+<span class="sourceLineNo">179</span> *          }<a name="line.179"></a>
+<span class="sourceLineNo">180</span> *<a name="line.180"></a>
+<span class="sourceLineNo">181</span> *          &lt;jk&gt;public&lt;/jk&gt; String swap(BeanSession session, MyPojo o) &lt;jk&gt;throws&lt;/jk&gt; Exception {<a name="line.181"></a>
+<span class="sourceLineNo">182</span> *             &lt;jk&gt;return&lt;/jk&gt; &lt;js&gt;"It's JSON!"&lt;/js&gt;;<a name="line.182"></a>
+<span class="sourceLineNo">183</span> *          }<a name="line.183"></a>
+<span class="sourceLineNo">184</span> *       }<a name="line.184"></a>
+<span class="sourceLineNo">185</span> *<a name="line.185"></a>
+<span class="sourceLineNo">186</span> *       &lt;jk&gt;public static class&lt;/jk&gt; MyXmlSwap &lt;jk&gt;extends&lt;/jk&gt; PojoSwap&amp;lt;MyPojo,String&amp;gt; {<a name="line.186"></a>
+<span class="sourceLineNo">187</span> *<a name="line.187"></a>
+<span class="sourceLineNo">188</span> *          &lt;jk&gt;public&lt;/jk&gt; MediaType[] forMediaTypes() {<a name="line.188"></a>
+<span class="sourceLineNo">189</span> *             &lt;jk&gt;return&lt;/jk&gt; MediaType.&lt;jsm&gt;forStrings&lt;/jsm&gt;(&lt;js&gt;"&amp;#42;/xml"&lt;/js&gt;);<a name="line.189"></a>
+<span class="sourceLineNo">190</span> *          }<a name="line.190"></a>
+<span class="sourceLineNo">191</span> *<a name="line.191"></a>
+<span class="sourceLineNo">192</span> *          &lt;jk&gt;public&lt;/jk&gt; String swap(BeanSession session, MyPojo o) &lt;jk&gt;throws&lt;/jk&gt; Exception {<a name="line.192"></a>
+<span class="sourceLineNo">193</span> *             &lt;jk&gt;return&lt;/jk&gt; &lt;js&gt;"It's XML!"&lt;/js&gt;;<a name="line.193"></a>
+<span class="sourceLineNo">194</span> *          }<a name="line.194"></a>
+<span class="sourceLineNo">195</span> *       }<a name="line.195"></a>
+<span class="sourceLineNo">196</span> *<a name="line.196"></a>
+<span class="sourceLineNo">197</span> *       &lt;jk&gt;public static class&lt;/jk&gt; MyOtherSwap &lt;jk&gt;extends&lt;/jk&gt; PojoSwap&amp;lt;MyPojo,String&amp;gt; {<a name="line.197"></a>
+<span class="sourceLineNo">198</span> *<a name="line.198"></a>
+<span class="sourceLineNo">199</span> *          &lt;jk&gt;public&lt;/jk&gt; MediaType[] forMediaTypes() {<a name="line.199"></a>
+<span class="sourceLineNo">200</span> *             &lt;jk&gt;return&lt;/jk&gt; MediaType.&lt;jsm&gt;forStrings&lt;/jsm&gt;(&lt;js&gt;"&amp;#42;/*"&lt;/js&gt;);<a name="line.200"></a>
+<span class="sourceLineNo">201</span> *          }<a name="line.201"></a>
+<span class="sourceLineNo">202</span> *<a name="line.202"></a>
+<span class="sourceLineNo">203</span> *          &lt;jk&gt;public&lt;/jk&gt; String swap(BeanSession session, MyPojo o) &lt;jk&gt;throws&lt;/jk&gt; Exception {<a name="line.203"></a>
+<span class="sourceLineNo">204</span> *             &lt;jk&gt;return&lt;/jk&gt; &lt;js&gt;"It's something else!"&lt;/js&gt;;<a name="line.204"></a>
+<span class="sourceLineNo">205</span> *          }<a name="line.205"></a>
+<span class="sourceLineNo">206</span> *       }<a name="line.206"></a>
+<span class="sourceLineNo">207</span> *<a name="line.207"></a>
+<span class="sourceLineNo">208</span> *       &lt;ja&gt;@Test&lt;/ja&gt;<a name="line.208"></a>
+<span class="sourceLineNo">209</span> *       &lt;jk&gt;public void&lt;/jk&gt; doTest() &lt;jk&gt;throws&lt;/jk&gt; Exception {<a name="line.209"></a>
+<span class="sourceLineNo">210</span> *<a name="line.210"></a>
+<span class="sourceLineNo">211</span> *          SerializerGroup g = &lt;jk&gt;new&lt;/jk&gt; SerializerGroupBuilder()<a name="line.211"></a>
+<span class="sourceLineNo">212</span> *             .append(JsonSerializer.&lt;jk&gt;class&lt;/jk&gt;, XmlSerializer.&lt;jk&gt;class&lt;/jk&gt;, HtmlSerializer.&lt;jk&gt;class&lt;/jk&gt;)<a name="line.212"></a>
+<span class="sourceLineNo">213</span> *             .sq()<a name="line.213"></a>
+<span class="sourceLineNo">214</span> *             .pojoSwaps(MyJsonSwap.&lt;jk&gt;class&lt;/jk&gt;, MyXmlSwap.&lt;jk&gt;class&lt;/jk&gt;, MyOtherSwap.&lt;jk&gt;class&lt;/jk&gt;)<a name="line.214"></a>
+<span class="sourceLineNo">215</span> *             .build();<a name="line.215"></a>
+<span class="sourceLineNo">216</span> *<a name="line.216"></a>
+<span class="sourceLineNo">217</span> *          MyPojo myPojo = &lt;jk&gt;new&lt;/jk&gt; MyPojo();<a name="line.217"></a>
+<span class="sourceLineNo">218</span> *<a name="line.218"></a>
+<span class="sourceLineNo">219</span> *          String json = g.getWriterSerializer(&lt;js&gt;"text/json"&lt;/js&gt;).serialize(myPojo);<a name="line.219"></a>
+<span class="sourceLineNo">220</span> *          &lt;jsm&gt;assertEquals&lt;/jsm&gt;(&lt;js&gt;"'It\\'s JSON!'"&lt;/js&gt;, json);<a name="line.220"></a>
+<span class="sourceLineNo">221</span> *<a name="line.221"></a>
+<span class="sourceLineNo">222</span> *          String xml = g.getWriterSerializer(&lt;js&gt;"text/xml"&lt;/js&gt;).serialize(myPojo);<a name="line.222"></a>
+<span class="sourceLineNo">223</span> *          &lt;jsm&gt;assertEquals&lt;/jsm&gt;(&lt;js&gt;"&amp;lt;string&amp;gt;It's XML!&amp;lt;/string&amp;gt;"&lt;/js&gt;, xml);<a name="line.223"></a>
+<span class="sourceLineNo">224</span> *<a name="line.224"></a>
+<span class="sourceLineNo">225</span> *          String html = g.getWriterSerializer(&lt;js&gt;"text/html"&lt;/js&gt;).serialize(myPojo);<a name="line.225"></a>
+<span class="sourceLineNo">226</span> *          &lt;jsm&gt;assertEquals&lt;/jsm&gt;(&lt;js&gt;"&amp;lt;string&amp;gt;It's something else!&amp;lt;/string&amp;gt;"&lt;/js&gt;, html);<a name="line.226"></a>
+<span class="sourceLineNo">227</span> *       }<a name="line.227"></a>
+<span class="sourceLineNo">228</span> *    }<a name="line.228"></a>
+<span class="sourceLineNo">229</span> * &lt;/p&gt;<a name="line.229"></a>
+<span class="sourceLineNo">230</span> *<a name="line.230"></a>
+<span class="sourceLineNo">231</span> * &lt;p&gt;<a name="line.231"></a>
+<span class="sourceLineNo">232</span> * Multiple swaps can be associated with a POJO by using the {@link Swaps @Swaps} annotation:<a name="line.232"></a>
+<span class="sourceLineNo">233</span> *<a name="line.233"></a>
+<span class="sourceLineNo">234</span> * &lt;p class='bcode'&gt;<a name="line.234"></a>
+<span class="sourceLineNo">235</span> *    &lt;ja&gt;@Swaps&lt;/ja&gt;(<a name="line.235"></a>
+<span class="sourceLineNo">236</span> *       {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> *          &lt;ja&gt;@Swap&lt;/ja&gt;(MyJsonSwap.&lt;jk&gt;class&lt;/jk&gt;),<a name="line.237"></a>
+<span class="sourceLineNo">238</span> *          &lt;ja&gt;@Swap&lt;/ja&gt;(MyXmlSwap.&lt;jk&gt;class&lt;/jk&gt;),<a name="line.238"></a>
+<span class="sourceLineNo">239</span> *          &lt;ja&gt;@Swap&lt;/ja&gt;(MyOtherSwap.&lt;jk&gt;class&lt;/jk&gt;)<a name="line.239"></a>
+<span class="sourceLineNo">240</span> *       }<a name="line.240"></a>
+<span class="sourceLineNo">241</span> *    )<a name="line.241"></a>
+<span class="sourceLineNo">242</span> *    &lt;jk&gt;public class&lt;/jk&gt; MyPojo {}<a name="line.242"></a>
+<span class="sourceLineNo">243</span> * &lt;/p&gt;<a name="line.243"></a>
+<span class="sourceLineNo">244</span> *<a name="line.244"></a>
+<span class="sourceLineNo">245</span> * &lt;p&gt;<a name="line.245"></a>
+<span class="sourceLineNo">246</span> * Note that since &lt;code&gt;Readers&lt;/code&gt; get serialized directly to the output of a serializer, it's possible to<a name="line.246"></a>
+<span class="sourceLineNo">247</span> * implement a swap that provides fully-customized output.<a name="line.247"></a>
+<span class="sourceLineNo">248</span> *<a name="line.248"></a>
+<span class="sourceLineNo">249</span> * &lt;p class='bcode'&gt;<a name="line.249"></a>
+<span class="sourceLineNo">250</span> *    &lt;jk&gt;public class&lt;/jk&gt; MyJsonSwap &lt;jk&gt;extends&lt;/jk&gt; PojoSwap&amp;lt;MyPojo,Reader&amp;gt; {<a name="line.250"></a>
+<span class="sourceLineNo">251</span> *<a name="line.251"></a>
+<span class="sourceLineNo">252</span> *       &lt;jk&gt;public&lt;/jk&gt; MediaType[] forMediaTypes() {<a name="line.252"></a>
+<span class="sourceLineNo">253</span> *          &lt;jk&gt;return&lt;/jk&gt; MediaType.&lt;jsm&gt;forStrings&lt;/jsm&gt;(&lt;js&gt;"&amp;#42;/json"&lt;/js&gt;);<a name="line.253"></a>
+<span class="sourceLineNo">254</span> *       }<a name="line.254"></a>
+<span class="sourceLineNo">255</span> *<a name="line.255"></a>
+<span class="sourceLineNo">256</span> *       &lt;jk&gt;public&lt;/jk&gt; Reader swap(BeanSession session, MyPojo o) &lt;jk&gt;throws&lt;/jk&gt; Exception {<a name="line.256"></a>
+<span class="sourceLineNo">257</span> *          &lt;jk&gt;return new&lt;/jk&gt; StringReader(&lt;js&gt;"{message:'Custom JSON!'}"&lt;/js&gt;);<a name="line.257"></a>
+<span class="sourceLineNo">258</span> *       }<a name="line.258"></a>
+<span class="sourceLineNo">259</span> *    }<a name="line.259"></a>
+<span class="sourceLineNo">260</span> * &lt;/p&gt;<a name="line.260"></a>
+<span class="sourceLineNo">261</span> *<a name="line.261"></a>
+<span class="sourceLineNo">262</span> *<a name="line.262"></a>
+<span class="sourceLineNo">263</span> * &lt;h6 class='topic'&gt;Templates&lt;/h6&gt;<a name="line.263"></a>
+<span class="sourceLineNo">264</span> *<a name="line.264"></a>
+<span class="sourceLineNo">265</span> * &lt;p&gt;<a name="line.265"></a>
+<span class="sourceLineNo">266</span> * Template strings are arbitrary strings associated with swaps that help provide additional context information<a name="line.266"></a>
+<span class="sourceLineNo">267</span> * for the swap class.<a name="line.267"></a>
+<span class="sourceLineNo">268</span> * They're called 'templates' because their primary purpose is for providing template names, such as Apache FreeMarker<a name="line.268"></a>
+<span class="sourceLineNo">269</span> * template names.<a name="line.269"></a>
+<span class="sourceLineNo">270</span> *<a name="line.270"></a>
+<span class="sourceLineNo">271</span> * &lt;p&gt;<a name="line.271"></a>
+<span class="sourceLineNo">272</span> * The following is an example of a templated swap class used to serialize POJOs to HTML using FreeMarker:<a name="line.272"></a>
+<span class="sourceLineNo">273</span> *<a name="line.273"></a>
+<span class="sourceLineNo">274</span> * &lt;p class='bcode'&gt;<a name="line.274"></a>
+<span class="sourceLineNo">275</span> *    &lt;jc&gt;// Our abstracted templated swap class.&lt;/jc&gt;<a name="line.275"></a>
+<span class="sourceLineNo">276</span> *    &lt;jk&gt;public abstract class&lt;/jk&gt; FreeMarkerSwap &lt;jk&gt;extends&lt;/jk&gt; PojoSwap&amp;lt;Object,Reader&amp;gt; {<a name="line.276"></a>
+<span class="sourceLineNo">277</span> *<a name="line.277"></a>
+<span class="sourceLineNo">278</span> *       &lt;jk&gt;public&lt;/jk&gt; MediaType[] forMediaTypes() {<a name="line.278"></a>
+<span class="sourceLineNo">279</span> *          &lt;jk&gt;return&lt;/jk&gt; MediaType.&lt;jsm&gt;forStrings&lt;/jsm&gt;(&lt;js&gt;"&amp;#42;/html"&lt;/js&gt;);<a name="line.279"></a>
+<span class="sourceLineNo">280</span> *       }<a name="line.280"></a>
+<span class="sourceLineNo">281</span> *<a name="line.281"></a>
+<span class="sourceLineNo">282</span> *       &lt;jk&gt;public&lt;/jk&gt; Reader swap(BeanSession session, Object o, String template) &lt;jk&gt;throws&lt;/jk&gt; Exception {<a name="line.282"></a>
+<span class="sourceLineNo">283</span> *          &lt;jk&gt;return&lt;/jk&gt; getFreeMarkerReader(template, o);  &lt;jc&gt;// Some method that creates raw HTML.&lt;/jc&gt;<a name="line.283"></a>
+<span class="sourceLineNo">284</span> *       }<a name="line.284"></a>
+<span class="sourceLineNo">285</span> *    }<a name="line.285"></a>
+<span class="sourceLineNo">286</span> *<a name="line.286"></a>
+<span class="sourceLineNo">287</span> *    &lt;jc&gt;// An implementation of our templated swap class.&lt;/jc&gt;<a name="line.287"></a>
+<span class="sourceLineNo">288</span> *    &lt;jk&gt;public class&lt;/jk&gt; MyPojoSwap &lt;jk&gt;extends&lt;/jk&gt; FreeMarkerSwap {<a name="line.288"></a>
+<span class="sourceLineNo">289</span> *       &lt;jk&gt;public&lt;/jk&gt; String withTemplate() {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> *          &lt;jk&gt;return&lt;/jk&gt; &lt;js&gt;"MyPojo.div.ftl"&lt;/js&gt;;<a name="line.290"></a>
+<span class="sourceLineNo">291</span> *       }<a name="line.291"></a>
+<span class="sourceLineNo">292</span> *    }<a name="line.292"></a>
+<span class="sourceLineNo">293</span> * &lt;/p&gt;<a name="line.293"></a>
+<span class="sourceLineNo">294</span> *<a name="line.294"></a>
+<span class="sourceLineNo">295</span> * &lt;p&gt;<a name="line.295"></a>
+<span class="sourceLineNo">296</span> * In practice however, the template is usually going to be defined on a &lt;ja&gt;@Swap&lt;/ja&gt; annotation like the following<a name="line.296"></a>
+<span class="sourceLineNo">297</span> * example:<a name="line.297"></a>
+<span class="sourceLineNo">298</span> *<a name="line.298"></a>
+<span class="sourceLineNo">299</span> * &lt;p class='bcode'&gt;<a name="line.299"></a>
+<span class="sourceLineNo">300</span> *    &lt;ja&gt;@Swap&lt;/ja&gt;(impl=FreeMarkerSwap.&lt;jk&gt;class&lt;/jk&gt;, template=&lt;js&gt;"MyPojo.div.ftl"&lt;/js&gt;)<a name="line.300"></a>
+<span class="sourceLineNo">301</span> *    &lt;jk&gt;public class&lt;/jk&gt; MyPojo {}<a name="line.301"></a>
+<span class="sourceLineNo">302</span> * &lt;/p&gt;<a name="line.302"></a>
+<span class="sourceLineNo">303</span> *<a name="line.303"></a>
+<span class="sourceLineNo">304</span> *<a name="line.304"></a>
+<span class="sourceLineNo">305</span> * &lt;h6 class='topic'&gt;Localization&lt;/h6&gt;<a name="line.305"></a>
+<span class="sourceLineNo">306</span> *<a name="line.306"></a>
+<span class="sourceLineNo">307</span> * Swaps have access to the session locale and timezone through the {@link BeanSession#getLocale()} and<a name="line.307"></a>
+<span class="sourceLineNo">308</span> * {@link BeanSession#getTimeZone()} methods.<a name="line.308"></a>
+<span class="sourceLineNo">309</span> * This allows you to specify localized swap values when needed.<a name="line.309"></a>
+<span class="sourceLineNo">310</span> * If using the REST server API, the locale and timezone are set based on the &lt;code&gt;Accept-Language&lt;/code&gt; and<a name="line.310"></a>
+<span class="sourceLineNo">311</span> * &lt;code&gt;Time-Zone&lt;/code&gt; headers on the request.<a name="line.311"></a>
+<span class="sourceLineNo">312</span> *<a name="line.312"></a>
+<span class="sourceLineNo">313</span> *<a name="line.313"></a>
+<span class="sourceLineNo">314</span> * &lt;h6 class='section'&gt;Additional information:&lt;/h6&gt;<a name="line.314"></a>
+<span class="sourceLineNo">315</span> *<a name="line.315"></a>
+<span class="sourceLineNo">316</span> * See &lt;a class='doclink' href='package-summary.html#TOC'&gt;org.apache.juneau.transform&lt;/a&gt; for more information.<a name="line.316"></a>
+<span class="sourceLineNo">317</span> *<a name="line.317"></a>
+<span class="sourceLineNo">318</span> * @param &lt;T&gt; The normal form of the class.<a name="line.318"></a>
+<span class="sourceLineNo">319</span> * @param &lt;S&gt; The swapped form of the class.<a name="line.319"></a>
+<span class="sourceLineNo">320</span> */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>@SuppressWarnings({"unchecked","rawtypes","hiding"})<a name="line.321"></a>
+<span class="sourceLineNo">322</span>public abstract class PojoSwap&lt;T,S&gt; {<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>   /**<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    * Represents a non-existent pojo swap.<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    */<a name="line.326"></a>
+<span class="sourceLineNo">327</span>   public final static PojoSwap NULL = new PojoSwap((Class)null, (Class)null) {};<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>   private final Class&lt;T&gt; normalClass;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>   private final Class&lt;?&gt; swapClass;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>   private ClassMeta&lt;?&gt; swapClassMeta;<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>   // Unfortunately these cannot be made final because we want to allow for PojoSwaps with no-arg constructors<a name="line.333"></a>
+<span class="sourceLineNo">334</span>   // which simplifies declarations.<a name="line.334"></a>
+<span class="sourceLineNo">335</span>   private MediaType[] forMediaTypes;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>   private String template;<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
+<span class="sourceLineNo">338</span>   /**<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    * Constructor.<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    */<a name="line.340"></a>
+<span class="sourceLineNo">341</span>   protected PojoSwap() {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      normalClass = (Class&lt;T&gt;)resolveParameterType(PojoSwap.class, 0, this.getClass());<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      swapClass = resolveParameterType(PojoSwap.class, 1, this.getClass());<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      forMediaTypes = forMediaTypes();<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      template = withTemplate();<a name="line.345"></a>
+<span class="sourceLineNo">346</span>   }<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>   /**<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    * Constructor for when the normal and transformed classes are already known.<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    *<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    * @param normalClass The normal class (cannot be serialized).<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    * @param swapClass The transformed class (serializable).<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    */<a name="line.353"></a>
+<span class="sourceLineNo">354</span>   protected PojoSwap(Class&lt;T&gt; normalClass, Class&lt;?&gt; swapClass) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      this.normalClass = normalClass;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      this.swapClass = swapClass;<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      this.forMediaTypes = forMediaTypes();<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      this.template = withTemplate();<a name="line.358"></a>
+<span class="sourceLineNo">359</span>   }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>   /**<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    * Returns the media types that this swap is applicable to.<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    *<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    * &lt;p&gt;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    * This method can be overridden to programmatically specify what media types it applies to.<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    *<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    * &lt;p&gt;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    * This method is the programmatic equivalent to the {@link Swap#mediaTypes()} annotation.<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    *<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    * @return The media types that this swap is applicable to, or &lt;jk&gt;null&lt;/jk&gt; if it's applicable for all media types.<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    */<a name="line.371"></a>
+<span class="sourceLineNo">372</span>   public MediaType[] forMediaTypes() {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      return null;<a name="line.373"></a>
+<span class="sourceLineNo">374</span>   }<a name="line.374"></a>
+<span class="sourceLineNo">375</span><a name="line.375"></a>
+<span class="sourceLineNo">376</span>   /**<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    * Returns additional context information for this swap.<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    *<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    * &lt;p&gt;<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    * Typically this is going to be used to specify a template name, such as a FreeMarker template file name.<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    *<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    * &lt;p&gt;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    * This method can be overridden to programmatically specify a template value.<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    *<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    * &lt;p&gt;<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    * This method is the programmatic equivalent to the {@link Swap#template()} annotation.<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    *<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    * @return Additional context information, or &lt;jk&gt;null&lt;/jk&gt; if not specified.<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    */<a name="line.389"></a>
+<span class="sourceLineNo">390</span>   public String withTemplate() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      return null;<a name="line.391"></a>
+<span class="sourceLineNo">392</span>   }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>   /**<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    * Sets the media types that this swap is associated with.<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    *<a name="line.396"></a>
+<span class="sourceLineNo">397</span>    * @param mediaTypes The media types that this swap is associated with.<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    * @return This object (for method chaining).<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    */<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   public PojoSwap&lt;T,?&gt; forMediaTypes(MediaType[] mediaTypes) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      this.forMediaTypes = mediaTypes;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>      return this;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>   }<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>   /**<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    * Sets the template string on this swap.<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    *<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    * @param template The template string on this swap.<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    * @return This object (for method chaining).<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    */<a name="line.410"></a>
+<span class="sourceLineNo">411</span>   public PojoSwap&lt;T,?&gt; withTemplate(String template) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      this.template = template;<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      return this;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>   }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>   /**<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    * Returns a number indicating how well this swap matches the specified session.<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    *<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    * &lt;p&gt;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    * Uses the {@link MediaType#match(MediaType, boolean)} method algorithm to produce a number whereby a<a name="line.420"></a>
+<span class="sourceLineNo">421</span>    * larger value indicates a "better match".<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    * The idea being that if multiple swaps are associated with a given POJO, we want to pick the best one.<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    *<a name="line.423"></a>
+<span class="sourceLineNo">424</span>    * &lt;p&gt;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    * For example, if the session media type is &lt;js&gt;"text/json"&lt;/js&gt;, then the match values are shown below:<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    *<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    * &lt;ul&gt;<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    *    &lt;li&gt;&lt;js&gt;"text/json"&lt;/js&gt; = &lt;code&gt;100,000&lt;/code&gt;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    *    &lt;li&gt;&lt;js&gt;"&amp;#42;/json"&lt;/js&gt; = &lt;code&gt;5,100&lt;/code&gt;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    *    &lt;li&gt;&lt;js&gt;"&amp;#42;/&amp;#42;"&lt;/js&gt; = &lt;code&gt;5,000&lt;/code&gt;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    *    &lt;li&gt;No media types specified on swap = &lt;code&gt;1&lt;/code&gt;<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    *    &lt;li&gt;&lt;js&gt;"text/xml"&lt;/js&gt; = &lt;code&gt;0&lt;/code&gt;<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    * &lt;/ul&gt;<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    *<a name="line.434"></a>
+<span class="sourceLineNo">435</span>    * @param session The bean session.<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    * @return Zero if swap doesn't match the session, or a positive number if it does.<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    */<a name="line.437"></a>
+<span class="sourceLineNo">438</span>   public int match(BeanSession session) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>      if (forMediaTypes == null)<a name="line.439"></a>
+<span class="sourceLineNo">440</span>         return 1;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      int i = 0;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      MediaType mt = session.getMediaType();<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      if (forMediaTypes != null)<a name="line.443"></a>
+<span class="sourceLineNo">444</span>         for (MediaType mt2 : forMediaTypes)<a name="line.444"></a>
+<span class="sourceLineNo">445</span>            i = Math.max(i, mt2.match(mt, false));<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      return i;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>   }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>   /**<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    * If this transform is to be used to serialize non-serializable POJOs, it must implement this method.<a name="line.450"></a>
+<span class="sourceLineNo">451</span>    *<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    * &lt;p&gt;<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    * The object must be converted into one of the following serializable types:<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    * &lt;ul class='spaced-list'&gt;<a name="line.454"></a>
+<span class="sourceLineNo">455</span>    *    &lt;li&gt;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    *       {@link String}<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    *    &lt;li&gt;<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    *       {@link Number}<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    *    &lt;li&gt;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>    *       {@link Boolean}<a name="line.460"></a>
+<span class="sourceLineNo">461</span>    *    &lt;li&gt;<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    *       {@link Collection} containing anything on this list.<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    *    &lt;li&gt;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    *       {@link Map} containing anything on this list.<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    *    &lt;li&gt;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>    *       A java bean with properties of anything on this list.<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    *    &lt;li&gt;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>    *       An array of anything on this list.<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    * &lt;/ul&gt;<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    *<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    * @param session<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    *    The bean session to use to get the class meta.<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    *    This is always going to be the same bean context that created this swap.<a name="line.473"></a>
+<span class="sourceLineNo">474</span>    * @param o The object to be transformed.<a name="line.474"></a>
+<span class="sourceLineNo">475</span>    * @return The transformed object.<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    * @throws Exception If a problem occurred trying to convert the output.<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    */<a name="line.477"></a>
+<span class="sourceLineNo">478</span>   public S swap(BeanSession session, T o) throws Exception {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      return swap(session, o, template);<a name="line.479"></a>
+<span class="sourceLineNo">480</span>   }<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>   /**<a name="line.482"></a>
+<span class="sourceLineNo">483</span>    * Same as {@link #swap(BeanSession, Object)}, but can be used if your swap has a template associated with it.<a name="line.483"></a>
+<span class="sourceLineNo">484</span>    *<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    * @param session<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    *    The bean session to use to get the class meta.<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    *    This is always going to be the same bean context that created this swap.<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    * @param o The object to be transformed.<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    * @param template<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    *    The template string associated with this swap.<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    * @return The transformed object.<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    * @throws Exception If a problem occurred trying to convert the output.<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    */<a name="line.493"></a>
+<span class="sourceLineNo">494</span>   public S swap(BeanSession session, T o, String template) throws Exception {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>      throw new SerializeException("Swap method not implemented on PojoSwap ''{0}''", this.getClass().getName());<a name="line.495"></a>
+<span class="sourceLineNo">496</span>   }<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>   /**<a name="line.498"></a>
+<span class="sourceLineNo">499</span>    * If this transform is to be used to reconstitute POJOs that aren't true Java beans, it must implement this method.<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    *<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    * @param session<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    *    The bean session to use to get the class meta.<a name="line.502"></a>
+<span class="sourceLineNo">503</span>    *    This is always going to be the same bean context that created this swap.<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    * @param f The transformed object.<a name="line.504"></a>
+<span class="sourceLineNo">505</span>    * @param hint<a name="line.505"></a>
+<span class="sourceLineNo">506</span>    *    If possible, the parser will try to tell you the object type being created.<a name="line.506"></a>
+<span class="sourceLineNo">507</span>    *    For example, on a serialized date, this may tell you that the object being created must be of type<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    *    {@code GregorianCalendar}.<a name="line.508"></a>
+<span class="sourceLineNo">509</span>    *    &lt;br&gt;This may be &lt;jk&gt;null&lt;/jk&gt; if the parser cannot make this determination.<a name="line.509"></a>
+<span class="sourceLineNo">510</span>    * @return The narrowed object.<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    * @throws Exception If this method is not implemented.<a name="line.511"></a>
+<span class="sourceLineNo">512</span>    */<a name="line.512"></a>
+<span class="sourceLineNo">513</span>   public T unswap(BeanSession session, S f, ClassMeta&lt;?&gt; hint) throws Exception {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>      return unswap(session, f, hint, template);<a name="line.514"></a>
+<span class="sourceLineNo">515</span>   }<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>   /**<a name="line.517"></a>
+<span class="sourceLineNo">518</span>    * Same as {@link #unswap(BeanSession, Object, ClassMeta)}, but can be used if your swap has a template associated with it.<a name="line.518"></a>
+<span class="sourceLineNo">519</span>    *<a name="line.519"></a>
+<span class="sourceLineNo">520</span>    * @param session<a name="line.520"></a>
+<span class="sourceLineNo">521</span>    *    The bean session to use to get the class meta.<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    *    This is always going to be the same bean context that created this swap.<a name="line.522"></a>
+<span class="sourceLineNo">523</span>    * @param f The transformed object.<a name="line.523"></a>
+<span class="sourceLineNo">524</span>    * @param hint<a name="line.524"></a>
+<span class="sourceLineNo">525</span>    *    If possible, the parser will try to tell you the object type being created.<a name="line.525"></a>
+<span class="sourceLineNo">526</span>    *    For example, on a serialized date, this may tell you that the object being created must be of type<a name="line.526"></a>
+<span class="sourceLineNo">527</span>    *    {@code GregorianCalendar}.<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    *    &lt;br&gt;This may be &lt;jk&gt;null&lt;/jk&gt; if the parser cannot make this determination.<a name="line.528"></a>
+<span class="sourceLineNo">529</span>    * @param template<a name="line.529"></a>
+<span class="sourceLineNo">530</span>    *    The template string associated with this swap.<a name="line.530"></a>
+<span class="sourceLineNo">531</span>    * @return The transformed object.<a name="line.531"></a>
+<span class="sourceLineNo">532</span>    * @throws Exception If a problem occurred trying to convert the output.<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    */<a name="line.533"></a>
+<span class="sourceLineNo">534</span>   public T unswap(BeanSession session, S f, ClassMeta&lt;?&gt; hint, String template) throws Exception {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>      throw new ParseException("Unswap method not implemented on PojoSwap ''{0}''", this.getClass().getName());<a name="line.535"></a>
+<span class="sourceLineNo">536</span>   }<a name="line.536"></a>
+<span class="sourceLineNo">537</span><a name="line.537"></a>
+<span class="sourceLineNo">538</span>   /**<a name="line.538"></a>
+<span class="sourceLineNo">539</span>    * Returns the T class, the normalized form of the class.<a name="line.539"></a>
+<span class="sourceLineNo">540</span>    *<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    * @return The normal form of this class.<a name="line.541"></a>
+<span class="sourceLineNo">542</span>    */<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   public Class&lt;T&gt; getNormalClass() {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>      return normalClass;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   }<a name="line.545"></a>
+<span class="sourceLineNo">546</span><a name="line.546"></a>
+<span class="sourceLineNo">547</span>   /**<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    * Returns the G class, the generalized form of the class.<a name="line.548"></a>
+<span class="sourceLineNo">549</span>    *<a name="line.549"></a>
+<span class="sourceLineNo">550</span>    * &lt;p&gt;<a name="line.550"></a>
+<span class="sourceLineNo">551</span>    * Subclasses must override this method if the generalized class is {@code Object}, meaning it can produce multiple<a name="line.551"></a>
+<span class="sourceLineNo">552</span>    * generalized forms.<a name="line.552"></a>
+<span class="sourceLineNo">553</span>    *<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    * @return The transformed form of this class.<a name="line.554"></a>
+<span class="sourceLineNo">555</span>    */<a name="line.555"></a>
+<span class="sourceLineNo">556</span>   public Class&lt;?&gt; getSwapClass() {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>      return swapClass;<a name="line.557"></a>
+<span class="sourceLineNo">558</span>   }<a name="line.558"></a>
+<span class="sourceLineNo">559</span><a name="line.559"></a>
+<span class="sourceLineNo">560</span>   /**<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    * Returns the {@link ClassMeta} of the transformed class type.<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    *<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    * &lt;p&gt;<a name="line.563"></a>
+<span class="sourceLineNo">564</span>    * This value is cached for quick lookup.<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    *<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    * @param session<a name="line.566"></a>
+<span class="sourceLineNo">567</span>    *    The bean context to use to get the class meta.<a name="line.567"></a>
+<span class="sourceLineNo">568</span>    *    This is always going to be the same bean context that created this swap.<a name="line.568"></a>
+<span class="sourceLineNo">569</span>    * @return The {@link ClassMeta} of the transformed class type.<a name="line.569"></a>
+<span class="sourceLineNo">570</span>    */<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   public ClassMeta&lt;?&gt; getSwapClassMeta(BeanSession session) {<a name="line.571"></a>
+<span class="sourceLineNo">572</span>      if (swapClassMeta == null)<a name="line.572"></a>
+<span class="sourceLineNo">573</span>         swapClassMeta = session.getClassMeta(swapClass);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>      return swapClassMeta;<a name="line.574"></a>
+<span class="sourceLineNo">575</span>   }<a name="line.575"></a>
+<span class="sourceLineNo">576</span><a name="line.576"></a>
+<span class="sourceLineNo">577</span>   /**<a name="line.577"></a>
+<span class="sourceLineNo">578</span>    * Checks if the specified object is an instance of the normal class defined on this swap.<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    *<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    * @param o The object to check.<a name="line.580"></a>
+<span class="sourceLineNo">581</span>    * @return<a name="line.581"></a>
+<span class="sourceLineNo">582</span>    *    &lt;jk&gt;true&lt;/jk&gt; if the specified object is a subclass of the normal class defined on this transform.<a name="line.582"></a>
+<span class="sourceLineNo">583</span>    *    &lt;jk&gt;null&lt;/jk&gt; always return &lt;jk&gt;false&lt;/jk&gt;.<a name="line.583"></a>
+<span class="sourceLineNo">584</span>    */<a name="line.584"></a>
+<span class="sourceLineNo">585</span>   public boolean isNormalObject(Object o) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>      if (o == null)<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         return false;<a name="line.587"></a>
+<span class="sourceLineNo">588</span>      return isParentClass(normalClass, o.getClass());<a name="line.588"></a>
+<span class="sourceLineNo">589</span>   }<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span>   /**<a name="line.591"></a>
+<span class="sourceLineNo">592</span>    * Checks if the specified object is an instance of the swap class defined on this swap.<a name="line.592"></a>
+<span class="sourceLineNo">593</span>    *<a name="line.593"></a>
+<span class="sourceLineNo">594</span>    * @param o The object to check.<a name="line.594"></a>
+<span class="sourceLineNo">595</span>    * @return<a name="line.595"></a>
+<span class="sourceLineNo">596</span>    *    &lt;jk&gt;true&lt;/jk&gt; if the specified object is a subclass of the transformed class defined on this transform.<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    *    &lt;jk&gt;null&lt;/jk&gt; always return &lt;jk&gt;false&lt;/jk&gt;.<a name="line.597"></a>
+<span class="sourceLineNo">598</span>    */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>   public boolean isSwappedObject(Object o) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>      if (o == null)<a name="line.600"></a>
+<span class="sourceLineNo">601</span>         return false;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>      return isParentClass(swapClass, o.getClass());<a name="line.602"></a>
+<span class="sourceLineNo">603</span>   }<a name="line.603"></a>
+<span class="sourceLineNo">604</span><a name="line.604"></a>
+<span class="sourceLineNo">605</span><a name="line.605"></a>
+<span class="sourceLineNo">606</span>   //--------------------------------------------------------------------------------<a name="line.606"></a>
+<span class="sourceLineNo">607</span>   // Overridden methods<a name="line.607"></a>
+<span class="sourceLineNo">608</span>   //--------------------------------------------------------------------------------<a name="line.608"></a>
+<span class="sourceLineNo">609</span><a name="line.609"></a>
+<span class="sourceLineNo">610</span>   @Override /* Object */<a name="line.610"></a>
+<span class="sourceLineNo">611</span>   public String toString() {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>      return getClass().getSimpleName() + '&lt;' + getNormalClass().getSimpleName() + "," + getSwapClass().getSimpleName() + '&gt;';<a name="line.612"></a>
+<span class="sourceLineNo">613</span>   }<a name="line.613"></a>
+<span class="sourceLineNo">614</span>}<a name="line.614"></a>
 
 
 


[16/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.html b/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.html
index 3f8181a..023c575 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/dto/jsonschema/Schema.html
@@ -234,7 +234,7 @@
 <span class="sourceLineNo">226</span>    *    The value of the &lt;property&gt;type&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.<a name="line.226"></a>
 <span class="sourceLineNo">227</span>    *    Can be either a {@link JsonType} or {@link JsonTypeArray} depending on what value was used to set it.<a name="line.227"></a>
 <span class="sourceLineNo">228</span>    */<a name="line.228"></a>
-<span class="sourceLineNo">229</span>   @BeanProperty(swap=JsonTypeOrJsonTypeArraySwap.class)<a name="line.229"></a>
+<span class="sourceLineNo">229</span>   @Swap(JsonTypeOrJsonTypeArraySwap.class)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>   public Object getType() {<a name="line.230"></a>
 <span class="sourceLineNo">231</span>      if (typeJsonType != null)<a name="line.231"></a>
 <span class="sourceLineNo">232</span>         return typeJsonType;<a name="line.232"></a>
@@ -558,7 +558,7 @@
 <span class="sourceLineNo">550</span>    *    The value of the &lt;property&gt;items&lt;/property&gt; property on this bean, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.<a name="line.550"></a>
 <span class="sourceLineNo">551</span>    *    Can be either a {@link Schema} or {@link SchemaArray} depending on what value was used to set it.<a name="line.551"></a>
 <span class="sourceLineNo">552</span>    */<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   @BeanProperty(swap=SchemaOrSchemaArraySwap.class)<a name="line.553"></a>
+<span class="sourceLineNo">553</span>   @Swap(SchemaOrSchemaArraySwap.class)<a name="line.553"></a>
 <span class="sourceLineNo">554</span>   public Object getItems() {<a name="line.554"></a>
 <span class="sourceLineNo">555</span>      if (itemsSchema != null)<a name="line.555"></a>
 <span class="sourceLineNo">556</span>         return itemsSchema;<a name="line.556"></a>
@@ -835,7 +835,7 @@
 <span class="sourceLineNo">827</span>    *    not set.<a name="line.827"></a>
 <span class="sourceLineNo">828</span>    *    Can be either a {@link Boolean} or {@link SchemaArray} depending on what value was used to set it.<a name="line.828"></a>
 <span class="sourceLineNo">829</span>    */<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   @BeanProperty(swap=BooleanOrSchemaArraySwap.class)<a name="line.830"></a>
+<span class="sourceLineNo">830</span>   @Swap(BooleanOrSchemaArraySwap.class)<a name="line.830"></a>
 <span class="sourceLineNo">831</span>   public Object getAdditionalItems() {<a name="line.831"></a>
 <span class="sourceLineNo">832</span>      if (additionalItemsBoolean != null)<a name="line.832"></a>
 <span class="sourceLineNo">833</span>         return additionalItemsBoolean;<a name="line.833"></a>
@@ -1115,7 +1115,7 @@
 <span class="sourceLineNo">1107</span>    *    is not set.<a name="line.1107"></a>
 <span class="sourceLineNo">1108</span>    *    Can be either a {@link Boolean} or {@link SchemaArray} depending on what value was used to set it.<a name="line.1108"></a>
 <span class="sourceLineNo">1109</span>    */<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>   @BeanProperty(swap=BooleanOrSchemaSwap.class)<a name="line.1110"></a>
+<span class="sourceLineNo">1110</span>   @Swap(BooleanOrSchemaSwap.class)<a name="line.1110"></a>
 <span class="sourceLineNo">1111</span>   public Object getAdditionalProperties() {<a name="line.1111"></a>
 <span class="sourceLineNo">1112</span>      if (additionalPropertiesBoolean != null)<a name="line.1112"></a>
 <span class="sourceLineNo">1113</span>         return additionalItemsBoolean;<a name="line.1113"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/html/HtmlParserSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/html/HtmlParserSession.html b/content/site/apidocs/src-html/org/apache/juneau/html/HtmlParserSession.html
index f06ac97..61c944a 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/html/HtmlParserSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/html/HtmlParserSession.html
@@ -91,8 +91,8 @@
 <span class="sourceLineNo">083</span><a name="line.83"></a>
 <span class="sourceLineNo">084</span>      if (eType == null)<a name="line.84"></a>
 <span class="sourceLineNo">085</span>         eType = (ClassMeta&lt;T&gt;)object();<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      PojoSwap&lt;T,Object&gt; transform = (PojoSwap&lt;T,Object&gt;)eType.getPojoSwap();<a name="line.86"></a>
-<span class="sourceLineNo">087</span>      ClassMeta&lt;?&gt; sType = eType.getSerializedClassMeta();<a name="line.87"></a>
+<span class="sourceLineNo">086</span>      PojoSwap&lt;T,Object&gt; transform = (PojoSwap&lt;T,Object&gt;)eType.getPojoSwap(this);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      ClassMeta&lt;?&gt; sType = transform == null ? eType : transform.getSwapClassMeta(this);<a name="line.87"></a>
 <span class="sourceLineNo">088</span>      setCurrentClass(sType);<a name="line.88"></a>
 <span class="sourceLineNo">089</span><a name="line.89"></a>
 <span class="sourceLineNo">090</span>      int event = r.getEventType();<a name="line.90"></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/html/HtmlSchemaDocSerializerSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/html/HtmlSchemaDocSerializerSession.html b/content/site/apidocs/src-html/org/apache/juneau/html/HtmlSchemaDocSerializerSession.html
index c33472d..270926a 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/html/HtmlSchemaDocSerializerSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/html/HtmlSchemaDocSerializerSession.html
@@ -76,7 +76,7 @@
 <span class="sourceLineNo">068</span><a name="line.68"></a>
 <span class="sourceLineNo">069</span>      aType = push(attrName, eType, null);<a name="line.69"></a>
 <span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>      sType = eType.getSerializedClassMeta();<a name="line.71"></a>
+<span class="sourceLineNo">071</span>      sType = eType.getSerializedClassMeta(this);<a name="line.71"></a>
 <span class="sourceLineNo">072</span>      String type = null;<a name="line.72"></a>
 <span class="sourceLineNo">073</span><a name="line.73"></a>
 <span class="sourceLineNo">074</span>      if (sType.isEnum() || sType.isCharSequence() || sType.isChar())<a name="line.74"></a>
@@ -94,7 +94,7 @@
 <span class="sourceLineNo">086</span><a name="line.86"></a>
 <span class="sourceLineNo">087</span>      out.put("type", type);<a name="line.87"></a>
 <span class="sourceLineNo">088</span>      out.put("class", eType.toString());<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      PojoSwap t = eType.getPojoSwap();<a name="line.89"></a>
+<span class="sourceLineNo">089</span>      PojoSwap t = eType.getPojoSwap(this);<a name="line.89"></a>
 <span class="sourceLineNo">090</span>      if (t != null)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>         out.put("transform", t);<a name="line.91"></a>
 <span class="sourceLineNo">092</span><a name="line.92"></a>


[03/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/xml/XmlSchemaSerializerSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/xml/XmlSchemaSerializerSession.html b/content/site/apidocs/src-html/org/apache/juneau/xml/XmlSchemaSerializerSession.html
index 2ab742f..9a65496 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/xml/XmlSchemaSerializerSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/xml/XmlSchemaSerializerSession.html
@@ -70,7 +70,7 @@
 <span class="sourceLineNo">062</span>      Namespace xs = xsNamespace;<a name="line.62"></a>
 <span class="sourceLineNo">063</span>      Namespace[] allNs = append(new Namespace[]{defaultNamespace}, namespaces);<a name="line.63"></a>
 <span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>      Schemas schemas = new Schemas(xs, defaultNamespace, allNs);<a name="line.65"></a>
+<span class="sourceLineNo">065</span>      Schemas schemas = new Schemas(this, xs, defaultNamespace, allNs);<a name="line.65"></a>
 <span class="sourceLineNo">066</span>      schemas.process(o);<a name="line.66"></a>
 <span class="sourceLineNo">067</span>      schemas.serializeTo(out.getWriter());<a name="line.67"></a>
 <span class="sourceLineNo">068</span>   }<a name="line.68"></a>
@@ -152,410 +152,412 @@
 <span class="sourceLineNo">144</span>      private static final long serialVersionUID = 1L;<a name="line.144"></a>
 <span class="sourceLineNo">145</span><a name="line.145"></a>
 <span class="sourceLineNo">146</span>      private Namespace defaultNs;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      private LinkedList&lt;QueueEntry&gt;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>         elementQueue = new LinkedList&lt;QueueEntry&gt;(),<a name="line.148"></a>
-<span class="sourceLineNo">149</span>         attributeQueue = new LinkedList&lt;QueueEntry&gt;(),<a name="line.149"></a>
-<span class="sourceLineNo">150</span>         typeQueue = new LinkedList&lt;QueueEntry&gt;();<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span>      private Schemas(Namespace xs, Namespace defaultNs, Namespace[] allNs) throws IOException {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>         this.defaultNs = defaultNs;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>         for (Namespace ns : allNs)<a name="line.154"></a>
-<span class="sourceLineNo">155</span>            put(ns, new Schema(this, xs, ns, defaultNs, allNs));<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      }<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>      private Schema getSchema(Namespace ns) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>         if (ns == null)<a name="line.159"></a>
-<span class="sourceLineNo">160</span>            ns = defaultNs;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>         Schema s = get(ns);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>         if (s == null)<a name="line.162"></a>
-<span class="sourceLineNo">163</span>            throw new FormattedRuntimeException("No schema defined for namespace ''{0}''", ns);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>         return s;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      }<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>      private void process(Object o) throws IOException {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>         ClassMeta&lt;?&gt; cm = getClassMetaForObject(o);<a name="line.168"></a>
-<span class="sourceLineNo">169</span>         Namespace ns = defaultNs;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>         if (cm == null)<a name="line.170"></a>
-<span class="sourceLineNo">171</span>            queueElement(ns, "null", object());<a name="line.171"></a>
-<span class="sourceLineNo">172</span>         else {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>            XmlClassMeta xmlMeta = cm.getExtendedMeta(XmlClassMeta.class);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>            if (cm.getDictionaryName() != null &amp;&amp; xmlMeta.getNamespace() != null)<a name="line.174"></a>
-<span class="sourceLineNo">175</span>               ns = xmlMeta.getNamespace();<a name="line.175"></a>
-<span class="sourceLineNo">176</span>            queueElement(ns, cm.getDictionaryName(), cm);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>         }<a name="line.177"></a>
-<span class="sourceLineNo">178</span>         processQueue();<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      }<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>      private void processQueue() throws IOException {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>         boolean b;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>         do {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>            b = false;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>            while (! elementQueue.isEmpty()) {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>               QueueEntry q = elementQueue.removeFirst();<a name="line.187"></a>
-<span class="sourceLineNo">188</span>               b |= getSchema(q.ns).processElement(q.name, q.cm);<a name="line.188"></a>
-<span class="sourceLineNo">189</span>            }<a name="line.189"></a>
-<span class="sourceLineNo">190</span>            while (! typeQueue.isEmpty()) {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>               QueueEntry q = typeQueue.removeFirst();<a name="line.191"></a>
-<span class="sourceLineNo">192</span>               b |= getSchema(q.ns).processType(q.name, q.cm);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>            }<a name="line.193"></a>
-<span class="sourceLineNo">194</span>            while (! attributeQueue.isEmpty()) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>               QueueEntry q = attributeQueue.removeFirst();<a name="line.195"></a>
-<span class="sourceLineNo">196</span>               b |= getSchema(q.ns).processAttribute(q.name, q.cm);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>            }<a name="line.197"></a>
-<span class="sourceLineNo">198</span>         } while (b);<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>      private void queueElement(Namespace ns, String name, ClassMeta&lt;?&gt; cm) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>         elementQueue.add(new QueueEntry(ns, name, cm));<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      }<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>      private void queueType(Namespace ns, String name, ClassMeta&lt;?&gt; cm) {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>         if (name == null)<a name="line.206"></a>
-<span class="sourceLineNo">207</span>            name = XmlUtils.encodeElementName(cm);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>         typeQueue.add(new QueueEntry(ns, name, cm));<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      }<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>      private void queueAttribute(Namespace ns, String name, ClassMeta&lt;?&gt; cm) {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>         attributeQueue.add(new QueueEntry(ns, name, cm));<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>      private void serializeTo(Writer w) throws IOException {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>         boolean b = false;<a name="line.216"></a>
-<span class="sourceLineNo">217</span>         for (Schema s : values()) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>            if (b)<a name="line.218"></a>
-<span class="sourceLineNo">219</span>               w.append('\u0000');<a name="line.219"></a>
-<span class="sourceLineNo">220</span>            w.append(s.toString());<a name="line.220"></a>
-<span class="sourceLineNo">221</span>            b = true;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>         }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      }<a name="line.223"></a>
-<span class="sourceLineNo">224</span>   }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>   /* An encapsulation of a single schema. */<a name="line.226"></a>
-<span class="sourceLineNo">227</span>   private class Schema {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      private StringWriter sw = new StringWriter();<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      private XmlWriter w;<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      private Namespace defaultNs, targetNs;<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      private Schemas schemas;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      private Set&lt;String&gt;<a name="line.232"></a>
-<span class="sourceLineNo">233</span>         processedTypes = new HashSet&lt;String&gt;(),<a name="line.233"></a>
-<span class="sourceLineNo">234</span>         processedAttributes = new HashSet&lt;String&gt;(),<a name="line.234"></a>
-<span class="sourceLineNo">235</span>         processedElements = new HashSet&lt;String&gt;();<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span>      public Schema(Schemas schemas, Namespace xs, Namespace targetNs, Namespace defaultNs, Namespace[] allNs) throws IOException {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>         this.schemas = schemas;<a name="line.238"></a>
-<span class="sourceLineNo">239</span>         this.defaultNs = defaultNs;<a name="line.239"></a>
-<span class="sourceLineNo">240</span>         this.targetNs = targetNs;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>         w = new XmlWriter(sw, isUseWhitespace(), getMaxIndent(), isTrimStrings(), getQuoteChar(), null, true, null);<a name="line.241"></a>
-<span class="sourceLineNo">242</span>         int i = indent;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>         w.oTag(i, "schema");<a name="line.243"></a>
-<span class="sourceLineNo">244</span>         w.attr("xmlns", xs.getUri());<a name="line.244"></a>
-<span class="sourceLineNo">245</span>         w.attr("targetNamespace", targetNs.getUri());<a name="line.245"></a>
-<span class="sourceLineNo">246</span>         w.attr("elementFormDefault", "qualified");<a name="line.246"></a>
-<span class="sourceLineNo">247</span>         if (targetNs != defaultNs)<a name="line.247"></a>
-<span class="sourceLineNo">248</span>            w.attr("attributeFormDefault", "qualified");<a name="line.248"></a>
-<span class="sourceLineNo">249</span>         for (Namespace ns2 : allNs)<a name="line.249"></a>
-<span class="sourceLineNo">250</span>            w.attr("xmlns", ns2.name, ns2.uri);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>         w.append('&gt;').nl(i);<a name="line.251"></a>
-<span class="sourceLineNo">252</span>         for (Namespace ns : allNs) {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>            if (ns != targetNs) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>               w.oTag(i+1, "import")<a name="line.254"></a>
-<span class="sourceLineNo">255</span>                  .attr("namespace", ns.getUri())<a name="line.255"></a>
-<span class="sourceLineNo">256</span>                  .attr("schemaLocation", ns.getName()+".xsd")<a name="line.256"></a>
-<span class="sourceLineNo">257</span>                  .append("/&gt;").nl(i+1);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>            }<a name="line.258"></a>
-<span class="sourceLineNo">259</span>         }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
-<span class="sourceLineNo">261</span><a name="line.261"></a>
-<span class="sourceLineNo">262</span>      private boolean processElement(String name, ClassMeta&lt;?&gt; cm) throws IOException {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>         if (processedElements.contains(name))<a name="line.263"></a>
-<span class="sourceLineNo">264</span>            return false;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>         processedElements.add(name);<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>         ClassMeta&lt;?&gt; ft = cm.getSerializedClassMeta();<a name="line.267"></a>
-<span class="sourceLineNo">268</span>         if (name == null)<a name="line.268"></a>
-<span class="sourceLineNo">269</span>            name = getElementName(ft);<a name="line.269"></a>
-<span class="sourceLineNo">270</span>         Namespace ns = first(ft.getExtendedMeta(XmlClassMeta.class).getNamespace(), defaultNs);<a name="line.270"></a>
-<span class="sourceLineNo">271</span>         String type = getXmlType(ns, ft);<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>         w.oTag(indent+1, "element")<a name="line.273"></a>
-<span class="sourceLineNo">274</span>            .attr("name", XmlUtils.encodeElementName(name))<a name="line.274"></a>
-<span class="sourceLineNo">275</span>            .attr("type", type)<a name="line.275"></a>
-<span class="sourceLineNo">276</span>            .append('/').append('&gt;').nl(indent+1);<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>         schemas.queueType(ns, null, ft);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>         schemas.processQueue();<a name="line.279"></a>
-<span class="sourceLineNo">280</span>         return true;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      }<a name="line.281"></a>
-<span class="sourceLineNo">282</span><a name="line.282"></a>
-<span class="sourceLineNo">283</span>      private boolean processAttribute(String name, ClassMeta&lt;?&gt; cm) throws IOException {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>         if (processedAttributes.contains(name))<a name="line.284"></a>
-<span class="sourceLineNo">285</span>            return false;<a name="line.285"></a>
-<span class="sourceLineNo">286</span>         processedAttributes.add(name);<a name="line.286"></a>
-<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span>         String type = getXmlAttrType(cm);<a name="line.288"></a>
+<span class="sourceLineNo">147</span>      private BeanSession session;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      private LinkedList&lt;QueueEntry&gt;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         elementQueue = new LinkedList&lt;QueueEntry&gt;(),<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         attributeQueue = new LinkedList&lt;QueueEntry&gt;(),<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         typeQueue = new LinkedList&lt;QueueEntry&gt;();<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>      private Schemas(BeanSession session, Namespace xs, Namespace defaultNs, Namespace[] allNs) throws IOException {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         this.session = session;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         this.defaultNs = defaultNs;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         for (Namespace ns : allNs)<a name="line.156"></a>
+<span class="sourceLineNo">157</span>            put(ns, new Schema(this, xs, ns, defaultNs, allNs));<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      }<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span>      private Schema getSchema(Namespace ns) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>         if (ns == null)<a name="line.161"></a>
+<span class="sourceLineNo">162</span>            ns = defaultNs;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         Schema s = get(ns);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>         if (s == null)<a name="line.164"></a>
+<span class="sourceLineNo">165</span>            throw new FormattedRuntimeException("No schema defined for namespace ''{0}''", ns);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>         return s;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>      private void process(Object o) throws IOException {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         ClassMeta&lt;?&gt; cm = getClassMetaForObject(o);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         Namespace ns = defaultNs;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>         if (cm == null)<a name="line.172"></a>
+<span class="sourceLineNo">173</span>            queueElement(ns, "null", object());<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         else {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>            XmlClassMeta xmlMeta = cm.getExtendedMeta(XmlClassMeta.class);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>            if (cm.getDictionaryName() != null &amp;&amp; xmlMeta.getNamespace() != null)<a name="line.176"></a>
+<span class="sourceLineNo">177</span>               ns = xmlMeta.getNamespace();<a name="line.177"></a>
+<span class="sourceLineNo">178</span>            queueElement(ns, cm.getDictionaryName(), cm);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>         }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>         processQueue();<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>      private void processQueue() throws IOException {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         boolean b;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>         do {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>            b = false;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>            while (! elementQueue.isEmpty()) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>               QueueEntry q = elementQueue.removeFirst();<a name="line.189"></a>
+<span class="sourceLineNo">190</span>               b |= getSchema(q.ns).processElement(q.name, q.cm);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>            }<a name="line.191"></a>
+<span class="sourceLineNo">192</span>            while (! typeQueue.isEmpty()) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>               QueueEntry q = typeQueue.removeFirst();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>               b |= getSchema(q.ns).processType(q.name, q.cm);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>            }<a name="line.195"></a>
+<span class="sourceLineNo">196</span>            while (! attributeQueue.isEmpty()) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>               QueueEntry q = attributeQueue.removeFirst();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>               b |= getSchema(q.ns).processAttribute(q.name, q.cm);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>            }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>         } while (b);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>      private void queueElement(Namespace ns, String name, ClassMeta&lt;?&gt; cm) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         elementQueue.add(new QueueEntry(ns, name, cm));<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>      private void queueType(Namespace ns, String name, ClassMeta&lt;?&gt; cm) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         if (name == null)<a name="line.208"></a>
+<span class="sourceLineNo">209</span>            name = XmlUtils.encodeElementName(cm);<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         typeQueue.add(new QueueEntry(ns, name, cm));<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>      private void queueAttribute(Namespace ns, String name, ClassMeta&lt;?&gt; cm) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         attributeQueue.add(new QueueEntry(ns, name, cm));<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>      private void serializeTo(Writer w) throws IOException {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         boolean b = false;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         for (Schema s : values()) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>            if (b)<a name="line.220"></a>
+<span class="sourceLineNo">221</span>               w.append('\u0000');<a name="line.221"></a>
+<span class="sourceLineNo">222</span>            w.append(s.toString());<a name="line.222"></a>
+<span class="sourceLineNo">223</span>            b = true;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>   }<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>   /* An encapsulation of a single schema. */<a name="line.228"></a>
+<span class="sourceLineNo">229</span>   private class Schema {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      private StringWriter sw = new StringWriter();<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      private XmlWriter w;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      private Namespace defaultNs, targetNs;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      private Schemas schemas;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      private Set&lt;String&gt;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         processedTypes = new HashSet&lt;String&gt;(),<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         processedAttributes = new HashSet&lt;String&gt;(),<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         processedElements = new HashSet&lt;String&gt;();<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>      public Schema(Schemas schemas, Namespace xs, Namespace targetNs, Namespace defaultNs, Namespace[] allNs) throws IOException {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>         this.schemas = schemas;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>         this.defaultNs = defaultNs;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         this.targetNs = targetNs;<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         w = new XmlWriter(sw, isUseWhitespace(), getMaxIndent(), isTrimStrings(), getQuoteChar(), null, true, null);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         int i = indent;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         w.oTag(i, "schema");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         w.attr("xmlns", xs.getUri());<a name="line.246"></a>
+<span class="sourceLineNo">247</span>         w.attr("targetNamespace", targetNs.getUri());<a name="line.247"></a>
+<span class="sourceLineNo">248</span>         w.attr("elementFormDefault", "qualified");<a name="line.248"></a>
+<span class="sourceLineNo">249</span>         if (targetNs != defaultNs)<a name="line.249"></a>
+<span class="sourceLineNo">250</span>            w.attr("attributeFormDefault", "qualified");<a name="line.250"></a>
+<span class="sourceLineNo">251</span>         for (Namespace ns2 : allNs)<a name="line.251"></a>
+<span class="sourceLineNo">252</span>            w.attr("xmlns", ns2.name, ns2.uri);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>         w.append('&gt;').nl(i);<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         for (Namespace ns : allNs) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>            if (ns != targetNs) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>               w.oTag(i+1, "import")<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                  .attr("namespace", ns.getUri())<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                  .attr("schemaLocation", ns.getName()+".xsd")<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                  .append("/&gt;").nl(i+1);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>            }<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>      private boolean processElement(String name, ClassMeta&lt;?&gt; cm) throws IOException {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         if (processedElements.contains(name))<a name="line.265"></a>
+<span class="sourceLineNo">266</span>            return false;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>         processedElements.add(name);<a name="line.267"></a>
+<span class="sourceLineNo">268</span><a name="line.268"></a>
+<span class="sourceLineNo">269</span>         ClassMeta&lt;?&gt; ft = cm.getSerializedClassMeta(schemas.session);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>         if (name == null)<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            name = getElementName(ft);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>         Namespace ns = first(ft.getExtendedMeta(XmlClassMeta.class).getNamespace(), defaultNs);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>         String type = getXmlType(ns, ft);<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>         w.oTag(indent+1, "element")<a name="line.275"></a>
+<span class="sourceLineNo">276</span>            .attr("name", XmlUtils.encodeElementName(name))<a name="line.276"></a>
+<span class="sourceLineNo">277</span>            .attr("type", type)<a name="line.277"></a>
+<span class="sourceLineNo">278</span>            .append('/').append('&gt;').nl(indent+1);<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span>         schemas.queueType(ns, null, ft);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         schemas.processQueue();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         return true;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>      private boolean processAttribute(String name, ClassMeta&lt;?&gt; cm) throws IOException {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         if (processedAttributes.contains(name))<a name="line.286"></a>
+<span class="sourceLineNo">287</span>            return false;<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         processedAttributes.add(name);<a name="line.288"></a>
 <span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>         w.oTag(indent+1, "attribute")<a name="line.290"></a>
-<span class="sourceLineNo">291</span>            .attr("name", name)<a name="line.291"></a>
-<span class="sourceLineNo">292</span>            .attr("type", type)<a name="line.292"></a>
-<span class="sourceLineNo">293</span>            .append('/').append('&gt;').nl(indent+1);<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>         return true;<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      }<a name="line.296"></a>
-<span class="sourceLineNo">297</span><a name="line.297"></a>
-<span class="sourceLineNo">298</span>      private boolean processType(String name, ClassMeta&lt;?&gt; cm) throws IOException {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>         if (processedTypes.contains(name))<a name="line.299"></a>
-<span class="sourceLineNo">300</span>            return false;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>         processedTypes.add(name);<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>         int i = indent + 1;<a name="line.303"></a>
+<span class="sourceLineNo">290</span>         String type = getXmlAttrType(cm);<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>         w.oTag(indent+1, "attribute")<a name="line.292"></a>
+<span class="sourceLineNo">293</span>            .attr("name", name)<a name="line.293"></a>
+<span class="sourceLineNo">294</span>            .attr("type", type)<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            .append('/').append('&gt;').nl(indent+1);<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>         return true;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      }<a name="line.298"></a>
+<span class="sourceLineNo">299</span><a name="line.299"></a>
+<span class="sourceLineNo">300</span>      private boolean processType(String name, ClassMeta&lt;?&gt; cm) throws IOException {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         if (processedTypes.contains(name))<a name="line.301"></a>
+<span class="sourceLineNo">302</span>            return false;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>         processedTypes.add(name);<a name="line.303"></a>
 <span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>         cm = cm.getSerializedClassMeta();<a name="line.305"></a>
-<span class="sourceLineNo">306</span>         XmlBeanMeta xbm = cm.isBean() ? cm.getBeanMeta().getExtendedMeta(XmlBeanMeta.class) : null;<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>         w.oTag(i, "complexType")<a name="line.308"></a>
-<span class="sourceLineNo">309</span>            .attr("name", name);<a name="line.309"></a>
-<span class="sourceLineNo">310</span><a name="line.310"></a>
-<span class="sourceLineNo">311</span>         // This element can have mixed content if:<a name="line.311"></a>
-<span class="sourceLineNo">312</span>         //    1) It's a generic Object (so it can theoretically be anything)<a name="line.312"></a>
-<span class="sourceLineNo">313</span>         //    2) The bean has a property defined with @XmlFormat.CONTENT.<a name="line.313"></a>
-<span class="sourceLineNo">314</span>         if ((xbm != null &amp;&amp; (xbm.getContentFormat() != null &amp;&amp; xbm.getContentFormat().isOneOf(TEXT,TEXT_PWS,MIXED,MIXED_PWS,XMLTEXT))) || ! cm.isMapOrBean())<a name="line.314"></a>
-<span class="sourceLineNo">315</span>            w.attr("mixed", "true");<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>         w.cTag().nl(i);<a name="line.317"></a>
+<span class="sourceLineNo">305</span>         int i = indent + 1;<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>         cm = cm.getSerializedClassMeta(schemas.session);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         XmlBeanMeta xbm = cm.isBean() ? cm.getBeanMeta().getExtendedMeta(XmlBeanMeta.class) : null;<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span>         w.oTag(i, "complexType")<a name="line.310"></a>
+<span class="sourceLineNo">311</span>            .attr("name", name);<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>         // This element can have mixed content if:<a name="line.313"></a>
+<span class="sourceLineNo">314</span>         //    1) It's a generic Object (so it can theoretically be anything)<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         //    2) The bean has a property defined with @XmlFormat.CONTENT.<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         if ((xbm != null &amp;&amp; (xbm.getContentFormat() != null &amp;&amp; xbm.getContentFormat().isOneOf(TEXT,TEXT_PWS,MIXED,MIXED_PWS,XMLTEXT))) || ! cm.isMapOrBean())<a name="line.316"></a>
+<span class="sourceLineNo">317</span>            w.attr("mixed", "true");<a name="line.317"></a>
 <span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>         if (! (cm.isMapOrBean() || cm.isCollectionOrArray() || (cm.isAbstract() &amp;&amp; ! cm.isNumber()) || cm.isObject())) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>            w.oTag(i+1, "attribute").attr("name", getBeanTypePropertyName(cm)).attr("type", "string").ceTag().nl(i+1);<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>         } else {<a name="line.322"></a>
+<span class="sourceLineNo">319</span>         w.cTag().nl(i);<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>         if (! (cm.isMapOrBean() || cm.isCollectionOrArray() || (cm.isAbstract() &amp;&amp; ! cm.isNumber()) || cm.isObject())) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>            w.oTag(i+1, "attribute").attr("name", getBeanTypePropertyName(cm)).attr("type", "string").ceTag().nl(i+1);<a name="line.322"></a>
 <span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>            //----- Bean -----<a name="line.324"></a>
-<span class="sourceLineNo">325</span>            if (cm.isBean()) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>               BeanMeta&lt;?&gt; bm = cm.getBeanMeta();<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>               boolean hasChildElements = false;<a name="line.328"></a>
+<span class="sourceLineNo">324</span>         } else {<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>            //----- Bean -----<a name="line.326"></a>
+<span class="sourceLineNo">327</span>            if (cm.isBean()) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>               BeanMeta&lt;?&gt; bm = cm.getBeanMeta();<a name="line.328"></a>
 <span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span>               for (BeanPropertyMeta pMeta : bm.getPropertyMetas()) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>                  XmlFormat pMetaFormat = pMeta.getExtendedMeta(XmlBeanPropertyMeta.class).getXmlFormat();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>                  if (pMetaFormat != XmlFormat.ATTR)<a name="line.332"></a>
-<span class="sourceLineNo">333</span>                     hasChildElements = true;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>               }<a name="line.334"></a>
-<span class="sourceLineNo">335</span><a name="line.335"></a>
-<span class="sourceLineNo">336</span>               XmlBeanMeta xbm2 = bm.getExtendedMeta(XmlBeanMeta.class);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>               if (xbm2.getContentProperty() != null &amp;&amp; xbm2.getContentFormat() == ELEMENTS) {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>                  w.sTag(i+1, "sequence").nl(i+1);<a name="line.338"></a>
-<span class="sourceLineNo">339</span>                  w.oTag(i+2, "any")<a name="line.339"></a>
-<span class="sourceLineNo">340</span>                     .attr("processContents", "skip")<a name="line.340"></a>
-<span class="sourceLineNo">341</span>                     .attr("minOccurs", 0)<a name="line.341"></a>
-<span class="sourceLineNo">342</span>                     .ceTag().nl(i+2);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>                  w.eTag(i+1, "sequence").nl(i+1);<a name="line.343"></a>
-<span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>               } else if (hasChildElements) {<a name="line.345"></a>
+<span class="sourceLineNo">330</span>               boolean hasChildElements = false;<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>               for (BeanPropertyMeta pMeta : bm.getPropertyMetas()) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                  XmlFormat pMetaFormat = pMeta.getExtendedMeta(XmlBeanPropertyMeta.class).getXmlFormat();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                  if (pMetaFormat != XmlFormat.ATTR)<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                     hasChildElements = true;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>               }<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
+<span class="sourceLineNo">338</span>               XmlBeanMeta xbm2 = bm.getExtendedMeta(XmlBeanMeta.class);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>               if (xbm2.getContentProperty() != null &amp;&amp; xbm2.getContentFormat() == ELEMENTS) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                  w.sTag(i+1, "sequence").nl(i+1);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                  w.oTag(i+2, "any")<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                     .attr("processContents", "skip")<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                     .attr("minOccurs", 0)<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                     .ceTag().nl(i+2);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                  w.eTag(i+1, "sequence").nl(i+1);<a name="line.345"></a>
 <span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>                  boolean hasOtherNsElement = false;<a name="line.347"></a>
-<span class="sourceLineNo">348</span>                  boolean hasCollapsed = false;<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span>                  for (BeanPropertyMeta pMeta : bm.getPropertyMetas()) {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>                     XmlBeanPropertyMeta xmlMeta = pMeta.getExtendedMeta(XmlBeanPropertyMeta.class);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>                     if (xmlMeta.getXmlFormat() != ATTR) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>                        if (xmlMeta.getNamespace() != null) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>                           ClassMeta&lt;?&gt; ct2 = pMeta.getClassMeta();<a name="line.354"></a>
-<span class="sourceLineNo">355</span>                           Namespace cNs = first(xmlMeta.getNamespace(), ct2.getExtendedMeta(XmlClassMeta.class).getNamespace(), cm.getExtendedMeta(XmlClassMeta.class).getNamespace(), defaultNs);<a name="line.355"></a>
-<span class="sourceLineNo">356</span>                           // Child element is in another namespace.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>                           schemas.queueElement(cNs, pMeta.getName(), ct2);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>                           hasOtherNsElement = true;<a name="line.358"></a>
-<span class="sourceLineNo">359</span>                        }<a name="line.359"></a>
-<span class="sourceLineNo">360</span>                        if (xmlMeta.getXmlFormat() == COLLAPSED)<a name="line.360"></a>
-<span class="sourceLineNo">361</span>                           hasCollapsed = true;<a name="line.361"></a>
-<span class="sourceLineNo">362</span>                     }<a name="line.362"></a>
-<span class="sourceLineNo">363</span>                  }<a name="line.363"></a>
-<span class="sourceLineNo">364</span><a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  if (hasOtherNsElement || hasCollapsed) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                     // If this bean has any child elements in another namespace,<a name="line.366"></a>
-<span class="sourceLineNo">367</span>                     // we need to add an &lt;any&gt; element.<a name="line.367"></a>
-<span class="sourceLineNo">368</span>                     w.oTag(i+1, "choice").attr("maxOccurs", "unbounded").cTag().nl(i+1);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>                     w.oTag(i+2, "any")<a name="line.369"></a>
-<span class="sourceLineNo">370</span>                        .attr("processContents", "skip")<a name="line.370"></a>
-<span class="sourceLineNo">371</span>                        .attr("minOccurs", 0)<a name="line.371"></a>
-<span class="sourceLineNo">372</span>                        .ceTag().nl(i+2);<a name="line.372"></a>
-<span class="sourceLineNo">373</span>                     w.eTag(i+1, "choice").nl(i+1);<a name="line.373"></a>
-<span class="sourceLineNo">374</span><a name="line.374"></a>
-<span class="sourceLineNo">375</span>                  } else {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>                     w.sTag(i+1, "all").nl(i+1);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>                     for (BeanPropertyMeta pMeta : bm.getPropertyMetas()) {<a name="line.377"></a>
-<span class="sourceLineNo">378</span>                        XmlBeanPropertyMeta xmlMeta = pMeta.getExtendedMeta(XmlBeanPropertyMeta.class);<a name="line.378"></a>
-<span class="sourceLineNo">379</span>                        if (xmlMeta.getXmlFormat() != ATTR) {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>                           boolean isCollapsed = xmlMeta.getXmlFormat() == COLLAPSED;<a name="line.380"></a>
-<span class="sourceLineNo">381</span>                           ClassMeta&lt;?&gt; ct2 = pMeta.getClassMeta();<a name="line.381"></a>
-<span class="sourceLineNo">382</span>                           String childName = pMeta.getName();<a name="line.382"></a>
-<span class="sourceLineNo">383</span>                           if (isCollapsed) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>                              if (xmlMeta.getChildName() != null)<a name="line.384"></a>
-<span class="sourceLineNo">385</span>                                 childName = xmlMeta.getChildName();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                              ct2 = pMeta.getClassMeta().getElementType();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                           }<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                           Namespace cNs = first(xmlMeta.getNamespace(), ct2.getExtendedMeta(XmlClassMeta.class).getNamespace(), cm.getExtendedMeta(XmlClassMeta.class).getNamespace(), defaultNs);<a name="line.388"></a>
-<span class="sourceLineNo">389</span>                           if (xmlMeta.getNamespace() == null) {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>                              w.oTag(i+2, "element")<a name="line.390"></a>
-<span class="sourceLineNo">391</span>                                 .attr("name", XmlUtils.encodeElementName(childName), false)<a name="line.391"></a>
-<span class="sourceLineNo">392</span>                                 .attr("type", getXmlType(cNs, ct2))<a name="line.392"></a>
-<span class="sourceLineNo">393</span>                                 .attr("minOccurs", 0);<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>                              w.ceTag().nl(i+2);<a name="line.395"></a>
-<span class="sourceLineNo">396</span>                           } else {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>                              // Child element is in another namespace.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                              schemas.queueElement(cNs, pMeta.getName(), ct2);<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                              hasOtherNsElement = true;<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                           }<a name="line.400"></a>
-<span class="sourceLineNo">401</span><a name="line.401"></a>
-<span class="sourceLineNo">402</span>                        }<a name="line.402"></a>
-<span class="sourceLineNo">403</span>                     }<a name="line.403"></a>
-<span class="sourceLineNo">404</span>                     w.eTag(i+1, "all").nl(i+1);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>                  }<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>               }<a name="line.407"></a>
+<span class="sourceLineNo">347</span>               } else if (hasChildElements) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>                  boolean hasOtherNsElement = false;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                  boolean hasCollapsed = false;<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                  for (BeanPropertyMeta pMeta : bm.getPropertyMetas()) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                     XmlBeanPropertyMeta xmlMeta = pMeta.getExtendedMeta(XmlBeanPropertyMeta.class);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                     if (xmlMeta.getXmlFormat() != ATTR) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        if (xmlMeta.getNamespace() != null) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                           ClassMeta&lt;?&gt; ct2 = pMeta.getClassMeta();<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                           Namespace cNs = first(xmlMeta.getNamespace(), ct2.getExtendedMeta(XmlClassMeta.class).getNamespace(), cm.getExtendedMeta(XmlClassMeta.class).getNamespace(), defaultNs);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                           // Child element is in another namespace.<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                           schemas.queueElement(cNs, pMeta.getName(), ct2);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                           hasOtherNsElement = true;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                        }<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                        if (xmlMeta.getXmlFormat() == COLLAPSED)<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                           hasCollapsed = true;<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                     }<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                  }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                  if (hasOtherNsElement || hasCollapsed) {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                     // If this bean has any child elements in another namespace,<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                     // we need to add an &lt;any&gt; element.<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                     w.oTag(i+1, "choice").attr("maxOccurs", "unbounded").cTag().nl(i+1);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                     w.oTag(i+2, "any")<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                        .attr("processContents", "skip")<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                        .attr("minOccurs", 0)<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                        .ceTag().nl(i+2);<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                     w.eTag(i+1, "choice").nl(i+1);<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>                  } else {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                     w.sTag(i+1, "all").nl(i+1);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                     for (BeanPropertyMeta pMeta : bm.getPropertyMetas()) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        XmlBeanPropertyMeta xmlMeta = pMeta.getExtendedMeta(XmlBeanPropertyMeta.class);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                        if (xmlMeta.getXmlFormat() != ATTR) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                           boolean isCollapsed = xmlMeta.getXmlFormat() == COLLAPSED;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                           ClassMeta&lt;?&gt; ct2 = pMeta.getClassMeta();<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                           String childName = pMeta.getName();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                           if (isCollapsed) {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                              if (xmlMeta.getChildName() != null)<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                                 childName = xmlMeta.getChildName();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                              ct2 = pMeta.getClassMeta().getElementType();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                           }<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                           Namespace cNs = first(xmlMeta.getNamespace(), ct2.getExtendedMeta(XmlClassMeta.class).getNamespace(), cm.getExtendedMeta(XmlClassMeta.class).getNamespace(), defaultNs);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                           if (xmlMeta.getNamespace() == null) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                              w.oTag(i+2, "element")<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                                 .attr("name", XmlUtils.encodeElementName(childName), false)<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                                 .attr("type", getXmlType(cNs, ct2))<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                                 .attr("minOccurs", 0);<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>                              w.ceTag().nl(i+2);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                           } else {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                              // Child element is in another namespace.<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                              schemas.queueElement(cNs, pMeta.getName(), ct2);<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                              hasOtherNsElement = true;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                           }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>                        }<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                     }<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                     w.eTag(i+1, "all").nl(i+1);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                  }<a name="line.407"></a>
 <span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>               for (BeanPropertyMeta pMeta : bm.getExtendedMeta(XmlBeanMeta.class).getAttrProperties().values()) {<a name="line.409"></a>
-<span class="sourceLineNo">410</span>                  Namespace pNs = pMeta.getExtendedMeta(XmlBeanPropertyMeta.class).getNamespace();<a name="line.410"></a>
-<span class="sourceLineNo">411</span>                  if (pNs == null)<a name="line.411"></a>
-<span class="sourceLineNo">412</span>                     pNs = defaultNs;<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span>                  // If the bean attribute has a different namespace than the bean, then it needs to<a name="line.414"></a>
-<span class="sourceLineNo">415</span>                  // be added as a top-level entry in the appropriate schema file.<a name="line.415"></a>
-<span class="sourceLineNo">416</span>                  if (pNs != targetNs) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>                     schemas.queueAttribute(pNs, pMeta.getName(), pMeta.getClassMeta());<a name="line.417"></a>
-<span class="sourceLineNo">418</span>                     w.oTag(i+1, "attribute")<a name="line.418"></a>
-<span class="sourceLineNo">419</span>                        //.attr("name", pMeta.getName(), true)<a name="line.419"></a>
-<span class="sourceLineNo">420</span>                        .attr("ref", pNs.getName() + ':' + pMeta.getName())<a name="line.420"></a>
-<span class="sourceLineNo">421</span>                        .ceTag().nl(i+1);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>                  }<a name="line.422"></a>
-<span class="sourceLineNo">423</span><a name="line.423"></a>
-<span class="sourceLineNo">424</span>                  // Otherwise, it's just a plain attribute of this bean.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>                  else {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>                     w.oTag(i+1, "attribute")<a name="line.426"></a>
-<span class="sourceLineNo">427</span>                        .attr("name", pMeta.getName(), true)<a name="line.427"></a>
-<span class="sourceLineNo">428</span>                        .attr("type", getXmlAttrType(pMeta.getClassMeta()))<a name="line.428"></a>
-<span class="sourceLineNo">429</span>                        .ceTag().nl(i+1);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>                  }<a name="line.430"></a>
-<span class="sourceLineNo">431</span>               }<a name="line.431"></a>
-<span class="sourceLineNo">432</span><a name="line.432"></a>
-<span class="sourceLineNo">433</span>            //----- Collection -----<a name="line.433"></a>
-<span class="sourceLineNo">434</span>            } else if (cm.isCollectionOrArray()) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>               ClassMeta&lt;?&gt; elementType = cm.getElementType();<a name="line.435"></a>
-<span class="sourceLineNo">436</span>               if (elementType.isObject()) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>                  w.sTag(i+1, "sequence").nl(i+1);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>                  w.oTag(i+2, "any")<a name="line.438"></a>
-<span class="sourceLineNo">439</span>                     .attr("processContents", "skip")<a name="line.439"></a>
-<span class="sourceLineNo">440</span>                     .attr("maxOccurs", "unbounded")<a name="line.440"></a>
-<span class="sourceLineNo">441</span>                     .attr("minOccurs", "0")<a name="line.441"></a>
-<span class="sourceLineNo">442</span>                     .ceTag().nl(i+2);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>                  w.eTag(i+1, "sequence").nl(i+1);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>               } else {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>                  Namespace cNs = first(elementType.getExtendedMeta(XmlClassMeta.class).getNamespace(), cm.getExtendedMeta(XmlClassMeta.class).getNamespace(), defaultNs);<a name="line.445"></a>
-<span class="sourceLineNo">446</span>                  schemas.queueType(cNs, null, elementType);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>                  w.sTag(i+1, "sequence").nl(i+1);<a name="line.447"></a>
-<span class="sourceLineNo">448</span>                  w.oTag(i+2, "any")<a name="line.448"></a>
-<span class="sourceLineNo">449</span>                     .attr("processContents", "skip")<a name="line.449"></a>
-<span class="sourceLineNo">450</span>                     .attr("maxOccurs", "unbounded")<a name="line.450"></a>
-<span class="sourceLineNo">451</span>                     .attr("minOccurs", "0")<a name="line.451"></a>
-<span class="sourceLineNo">452</span>                     .ceTag().nl(i+2);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>                  w.eTag(i+1, "sequence").nl(i+1);<a name="line.453"></a>
-<span class="sourceLineNo">454</span>               }<a name="line.454"></a>
-<span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>            //----- Map -----<a name="line.456"></a>
-<span class="sourceLineNo">457</span>            } else if (cm.isMap() || cm.isAbstract() || cm.isObject()) {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>               w.sTag(i+1, "sequence").nl(i+1);<a name="line.458"></a>
-<span class="sourceLineNo">459</span>               w.oTag(i+2, "any")<a name="line.459"></a>
-<span class="sourceLineNo">460</span>                  .attr("processContents", "skip")<a name="line.460"></a>
-<span class="sourceLineNo">461</span>                  .attr("maxOccurs", "unbounded")<a name="line.461"></a>
-<span class="sourceLineNo">462</span>                  .attr("minOccurs", "0")<a name="line.462"></a>
-<span class="sourceLineNo">463</span>                  .ceTag().nl(i+2);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>               w.eTag(i+1, "sequence").nl(i+1);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>            }<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>            w.oTag(i+1, "attribute")<a name="line.467"></a>
-<span class="sourceLineNo">468</span>               .attr("name", getBeanTypePropertyName(null))<a name="line.468"></a>
-<span class="sourceLineNo">469</span>               .attr("type", "string")<a name="line.469"></a>
-<span class="sourceLineNo">470</span>               .ceTag().nl(i+1);<a name="line.470"></a>
-<span class="sourceLineNo">471</span>         }<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>         w.eTag(i, "complexType").nl(i);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>         schemas.processQueue();<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>         return true;<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      }<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>      private String getElementName(ClassMeta&lt;?&gt; cm) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>         cm = cm.getSerializedClassMeta();<a name="line.480"></a>
-<span class="sourceLineNo">481</span>         String name = cm.getDictionaryName();<a name="line.481"></a>
-<span class="sourceLineNo">482</span><a name="line.482"></a>
-<span class="sourceLineNo">483</span>         if (name == null) {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>            if (cm.isBoolean())<a name="line.484"></a>
-<span class="sourceLineNo">485</span>               name = "boolean";<a name="line.485"></a>
-<span class="sourceLineNo">486</span>            else if (cm.isNumber())<a name="line.486"></a>
-<span class="sourceLineNo">487</span>               name = "number";<a name="line.487"></a>
-<span class="sourceLineNo">488</span>            else if (cm.isCollectionOrArray())<a name="line.488"></a>
-<span class="sourceLineNo">489</span>               name = "array";<a name="line.489"></a>
-<span class="sourceLineNo">490</span>            else if (! (cm.isMapOrBean() || cm.isCollectionOrArray() || cm.isObject() || cm.isAbstract()))<a name="line.490"></a>
-<span class="sourceLineNo">491</span>               name = "string";<a name="line.491"></a>
-<span class="sourceLineNo">492</span>            else<a name="line.492"></a>
-<span class="sourceLineNo">493</span>               name = "object";<a name="line.493"></a>
-<span class="sourceLineNo">494</span>         }<a name="line.494"></a>
-<span class="sourceLineNo">495</span>         return name;<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      }<a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span>      @Override /* Object */<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      public String toString() {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>         try {<a name="line.500"></a>
-<span class="sourceLineNo">501</span>            w.eTag(indent, "schema").nl(indent);<a name="line.501"></a>
-<span class="sourceLineNo">502</span>         } catch (IOException e) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>            throw new RuntimeException(e); // Shouldn't happen.<a name="line.503"></a>
-<span class="sourceLineNo">504</span>         }<a name="line.504"></a>
-<span class="sourceLineNo">505</span>         return sw.toString();<a name="line.505"></a>
-<span class="sourceLineNo">506</span>      }<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>      private String getXmlType(Namespace currentNs, ClassMeta&lt;?&gt; cm) {<a name="line.508"></a>
-<span class="sourceLineNo">509</span>         String name = null;<a name="line.509"></a>
-<span class="sourceLineNo">510</span>         cm = cm.getSerializedClassMeta();<a name="line.510"></a>
-<span class="sourceLineNo">511</span>         if (currentNs == targetNs) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>            if (cm.isPrimitive()) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>               if (cm.isBoolean())<a name="line.513"></a>
-<span class="sourceLineNo">514</span>                  name = "boolean";<a name="line.514"></a>
-<span class="sourceLineNo">515</span>               else if (cm.isNumber()) {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>                  if (cm.isDecimal())<a name="line.516"></a>
-<span class="sourceLineNo">517</span>                     name = "decimal";<a name="line.517"></a>
-<span class="sourceLineNo">518</span>                  else<a name="line.518"></a>
-<span class="sourceLineNo">519</span>                     name = "integer";<a name="line.519"></a>
-<span class="sourceLineNo">520</span>               }<a name="line.520"></a>
-<span class="sourceLineNo">521</span>            }<a name="line.521"></a>
-<span class="sourceLineNo">522</span>         }<a name="line.522"></a>
-<span class="sourceLineNo">523</span>         if (name == null) {<a name="line.523"></a>
-<span class="sourceLineNo">524</span>            name = XmlUtils.encodeElementName(cm);<a name="line.524"></a>
-<span class="sourceLineNo">525</span>            schemas.queueType(currentNs, name, cm);<a name="line.525"></a>
-<span class="sourceLineNo">526</span>            return currentNs.getName() + ":" + name;<a name="line.526"></a>
-<span class="sourceLineNo">527</span>         }<a name="line.527"></a>
-<span class="sourceLineNo">528</span><a name="line.528"></a>
-<span class="sourceLineNo">529</span>         return name;<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>   }<a name="line.531"></a>
-<span class="sourceLineNo">532</span><a name="line.532"></a>
-<span class="sourceLineNo">533</span>   private static &lt;T&gt; T first(T...tt) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      for (T t : tt)<a name="line.534"></a>
-<span class="sourceLineNo">535</span>         if (t != null)<a name="line.535"></a>
-<span class="sourceLineNo">536</span>            return t;<a name="line.536"></a>
-<span class="sourceLineNo">537</span>      return null;<a name="line.537"></a>
-<span class="sourceLineNo">538</span>   }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span>   private static String getXmlAttrType(ClassMeta&lt;?&gt; cm) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      if (cm.isBoolean())<a name="line.541"></a>
-<span class="sourceLineNo">542</span>         return "boolean";<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      if (cm.isNumber()) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>         if (cm.isDecimal())<a name="line.544"></a>
-<span class="sourceLineNo">545</span>            return "decimal";<a name="line.545"></a>
-<span class="sourceLineNo">546</span>         return "integer";<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      }<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      return "string";<a name="line.548"></a>
-<span class="sourceLineNo">549</span>   }<a name="line.549"></a>
-<span class="sourceLineNo">550</span>}<a name="line.550"></a>
+<span class="sourceLineNo">409</span>               }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>               for (BeanPropertyMeta pMeta : bm.getExtendedMeta(XmlBeanMeta.class).getAttrProperties().values()) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                  Namespace pNs = pMeta.getExtendedMeta(XmlBeanPropertyMeta.class).getNamespace();<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                  if (pNs == null)<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                     pNs = defaultNs;<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                  // If the bean attribute has a different namespace than the bean, then it needs to<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                  // be added as a top-level entry in the appropriate schema file.<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                  if (pNs != targetNs) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                     schemas.queueAttribute(pNs, pMeta.getName(), pMeta.getClassMeta());<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                     w.oTag(i+1, "attribute")<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                        //.attr("name", pMeta.getName(), true)<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                        .attr("ref", pNs.getName() + ':' + pMeta.getName())<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        .ceTag().nl(i+1);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                  }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                  // Otherwise, it's just a plain attribute of this bean.<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                  else {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                     w.oTag(i+1, "attribute")<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                        .attr("name", pMeta.getName(), true)<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                        .attr("type", getXmlAttrType(pMeta.getClassMeta()))<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        .ceTag().nl(i+1);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                  }<a name="line.432"></a>
+<span class="sourceLineNo">433</span>               }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>            //----- Collection -----<a name="line.435"></a>
+<span class="sourceLineNo">436</span>            } else if (cm.isCollectionOrArray()) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>               ClassMeta&lt;?&gt; elementType = cm.getElementType();<a name="line.437"></a>
+<span class="sourceLineNo">438</span>               if (elementType.isObject()) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                  w.sTag(i+1, "sequence").nl(i+1);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                  w.oTag(i+2, "any")<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                     .attr("processContents", "skip")<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                     .attr("maxOccurs", "unbounded")<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                     .attr("minOccurs", "0")<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                     .ceTag().nl(i+2);<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                  w.eTag(i+1, "sequence").nl(i+1);<a name="line.445"></a>
+<span class="sourceLineNo">446</span>               } else {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                  Namespace cNs = first(elementType.getExtendedMeta(XmlClassMeta.class).getNamespace(), cm.getExtendedMeta(XmlClassMeta.class).getNamespace(), defaultNs);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                  schemas.queueType(cNs, null, elementType);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                  w.sTag(i+1, "sequence").nl(i+1);<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                  w.oTag(i+2, "any")<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                     .attr("processContents", "skip")<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                     .attr("maxOccurs", "unbounded")<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                     .attr("minOccurs", "0")<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                     .ceTag().nl(i+2);<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                  w.eTag(i+1, "sequence").nl(i+1);<a name="line.455"></a>
+<span class="sourceLineNo">456</span>               }<a name="line.456"></a>
+<span class="sourceLineNo">457</span><a name="line.457"></a>
+<span class="sourceLineNo">458</span>            //----- Map -----<a name="line.458"></a>
+<span class="sourceLineNo">459</span>            } else if (cm.isMap() || cm.isAbstract() || cm.isObject()) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>               w.sTag(i+1, "sequence").nl(i+1);<a name="line.460"></a>
+<span class="sourceLineNo">461</span>               w.oTag(i+2, "any")<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                  .attr("processContents", "skip")<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                  .attr("maxOccurs", "unbounded")<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                  .attr("minOccurs", "0")<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                  .ceTag().nl(i+2);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>               w.eTag(i+1, "sequence").nl(i+1);<a name="line.466"></a>
+<span class="sourceLineNo">467</span>            }<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>            w.oTag(i+1, "attribute")<a name="line.469"></a>
+<span class="sourceLineNo">470</span>               .attr("name", getBeanTypePropertyName(null))<a name="line.470"></a>
+<span class="sourceLineNo">471</span>               .attr("type", "string")<a name="line.471"></a>
+<span class="sourceLineNo">472</span>               .ceTag().nl(i+1);<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>         w.eTag(i, "complexType").nl(i);<a name="line.475"></a>
+<span class="sourceLineNo">476</span>         schemas.processQueue();<a name="line.476"></a>
+<span class="sourceLineNo">477</span><a name="line.477"></a>
+<span class="sourceLineNo">478</span>         return true;<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>      private String getElementName(ClassMeta&lt;?&gt; cm) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>         cm = cm.getSerializedClassMeta(schemas.session);<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         String name = cm.getDictionaryName();<a name="line.483"></a>
+<span class="sourceLineNo">484</span><a name="line.484"></a>
+<span class="sourceLineNo">485</span>         if (name == null) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>            if (cm.isBoolean())<a name="line.486"></a>
+<span class="sourceLineNo">487</span>               name = "boolean";<a name="line.487"></a>
+<span class="sourceLineNo">488</span>            else if (cm.isNumber())<a name="line.488"></a>
+<span class="sourceLineNo">489</span>               name = "number";<a name="line.489"></a>
+<span class="sourceLineNo">490</span>            else if (cm.isCollectionOrArray())<a name="line.490"></a>
+<span class="sourceLineNo">491</span>               name = "array";<a name="line.491"></a>
+<span class="sourceLineNo">492</span>            else if (! (cm.isMapOrBean() || cm.isCollectionOrArray() || cm.isObject() || cm.isAbstract()))<a name="line.492"></a>
+<span class="sourceLineNo">493</span>               name = "string";<a name="line.493"></a>
+<span class="sourceLineNo">494</span>            else<a name="line.494"></a>
+<span class="sourceLineNo">495</span>               name = "object";<a name="line.495"></a>
+<span class="sourceLineNo">496</span>         }<a name="line.496"></a>
+<span class="sourceLineNo">497</span>         return name;<a name="line.497"></a>
+<span class="sourceLineNo">498</span>      }<a name="line.498"></a>
+<span class="sourceLineNo">499</span><a name="line.499"></a>
+<span class="sourceLineNo">500</span>      @Override /* Object */<a name="line.500"></a>
+<span class="sourceLineNo">501</span>      public String toString() {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         try {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>            w.eTag(indent, "schema").nl(indent);<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         } catch (IOException e) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>            throw new RuntimeException(e); // Shouldn't happen.<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         }<a name="line.506"></a>
+<span class="sourceLineNo">507</span>         return sw.toString();<a name="line.507"></a>
+<span class="sourceLineNo">508</span>      }<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span>      private String getXmlType(Namespace currentNs, ClassMeta&lt;?&gt; cm) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>         String name = null;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>         cm = cm.getSerializedClassMeta(schemas.session);<a name="line.512"></a>
+<span class="sourceLineNo">513</span>         if (currentNs == targetNs) {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>            if (cm.isPrimitive()) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>               if (cm.isBoolean())<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                  name = "boolean";<a name="line.516"></a>
+<span class="sourceLineNo">517</span>               else if (cm.isNumber()) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                  if (cm.isDecimal())<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                     name = "decimal";<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                  else<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                     name = "integer";<a name="line.521"></a>
+<span class="sourceLineNo">522</span>               }<a name="line.522"></a>
+<span class="sourceLineNo">523</span>            }<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         }<a name="line.524"></a>
+<span class="sourceLineNo">525</span>         if (name == null) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>            name = XmlUtils.encodeElementName(cm);<a name="line.526"></a>
+<span class="sourceLineNo">527</span>            schemas.queueType(currentNs, name, cm);<a name="line.527"></a>
+<span class="sourceLineNo">528</span>            return currentNs.getName() + ":" + name;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>         }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>         return name;<a name="line.531"></a>
+<span class="sourceLineNo">532</span>      }<a name="line.532"></a>
+<span class="sourceLineNo">533</span>   }<a name="line.533"></a>
+<span class="sourceLineNo">534</span><a name="line.534"></a>
+<span class="sourceLineNo">535</span>   private static &lt;T&gt; T first(T...tt) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>      for (T t : tt)<a name="line.536"></a>
+<span class="sourceLineNo">537</span>         if (t != null)<a name="line.537"></a>
+<span class="sourceLineNo">538</span>            return t;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>      return null;<a name="line.539"></a>
+<span class="sourceLineNo">540</span>   }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>   private static String getXmlAttrType(ClassMeta&lt;?&gt; cm) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>      if (cm.isBoolean())<a name="line.543"></a>
+<span class="sourceLineNo">544</span>         return "boolean";<a name="line.544"></a>
+<span class="sourceLineNo">545</span>      if (cm.isNumber()) {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>         if (cm.isDecimal())<a name="line.546"></a>
+<span class="sourceLineNo">547</span>            return "decimal";<a name="line.547"></a>
+<span class="sourceLineNo">548</span>         return "integer";<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      }<a name="line.549"></a>
+<span class="sourceLineNo">550</span>      return "string";<a name="line.550"></a>
+<span class="sourceLineNo">551</span>   }<a name="line.551"></a>
+<span class="sourceLineNo">552</span>}<a name="line.552"></a>
 
 
 


[18/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/ClassMeta.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/ClassMeta.html b/content/site/apidocs/src-html/org/apache/juneau/ClassMeta.html
index 7eeef6b..bcff7b5 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/ClassMeta.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/ClassMeta.html
@@ -30,162 +30,162 @@
 <span class="sourceLineNo">022</span>import java.net.*;<a name="line.22"></a>
 <span class="sourceLineNo">023</span>import java.net.URI;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import java.util.*;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.concurrent.*;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.util.concurrent.locks.*;<a name="line.26"></a>
-<span class="sourceLineNo">027</span><a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.juneau.annotation.*;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.juneau.internal.*;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.juneau.parser.*;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.juneau.remoteable.*;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.juneau.serializer.*;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.juneau.transform.*;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.juneau.utils.*;<a name="line.34"></a>
-<span class="sourceLineNo">035</span><a name="line.35"></a>
-<span class="sourceLineNo">036</span>/**<a name="line.36"></a>
-<span class="sourceLineNo">037</span> * A wrapper class around the {@link Class} object that provides cached information about that class.<a name="line.37"></a>
-<span class="sourceLineNo">038</span> *<a name="line.38"></a>
-<span class="sourceLineNo">039</span> * &lt;p&gt;<a name="line.39"></a>
-<span class="sourceLineNo">040</span> * Instances of this class can be created through the {@link BeanContext#getClassMeta(Class)} method.<a name="line.40"></a>
-<span class="sourceLineNo">041</span> *<a name="line.41"></a>
-<span class="sourceLineNo">042</span> * &lt;p&gt;<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * The {@link BeanContext} class will cache and reuse instances of this class except for the following class types:<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * &lt;ul&gt;<a name="line.44"></a>
-<span class="sourceLineNo">045</span> *    &lt;li&gt;Arrays<a name="line.45"></a>
-<span class="sourceLineNo">046</span> *    &lt;li&gt;Maps with non-Object key/values.<a name="line.46"></a>
-<span class="sourceLineNo">047</span> *    &lt;li&gt;Collections with non-Object key/values.<a name="line.47"></a>
-<span class="sourceLineNo">048</span> * &lt;/ul&gt;<a name="line.48"></a>
-<span class="sourceLineNo">049</span> *<a name="line.49"></a>
-<span class="sourceLineNo">050</span> * &lt;p&gt;<a name="line.50"></a>
-<span class="sourceLineNo">051</span> * This class is tied to the {@link BeanContext} class because it's that class that makes the determination of what is<a name="line.51"></a>
-<span class="sourceLineNo">052</span> * a bean.<a name="line.52"></a>
-<span class="sourceLineNo">053</span> *<a name="line.53"></a>
-<span class="sourceLineNo">054</span> * @param &lt;T&gt; The class type of the wrapped class.<a name="line.54"></a>
-<span class="sourceLineNo">055</span> */<a name="line.55"></a>
-<span class="sourceLineNo">056</span>@Bean(properties="innerClass,classCategory,elementType,keyType,valueType,notABeanReason,initException,beanMeta")<a name="line.56"></a>
-<span class="sourceLineNo">057</span>public final class ClassMeta&lt;T&gt; implements Type {<a name="line.57"></a>
-<span class="sourceLineNo">058</span><a name="line.58"></a>
-<span class="sourceLineNo">059</span>   /** Class categories. */<a name="line.59"></a>
-<span class="sourceLineNo">060</span>   enum ClassCategory {<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      MAP, COLLECTION, CLASS, METHOD, NUMBER, DECIMAL, BOOLEAN, CHAR, DATE, ARRAY, ENUM, OTHER, CHARSEQ, STR, OBJ, URI, BEANMAP, READER, INPUTSTREAM, VOID, ARGS<a name="line.61"></a>
-<span class="sourceLineNo">062</span>   }<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>   final Class&lt;T&gt; innerClass;                              // The class being wrapped.<a name="line.64"></a>
+<span class="sourceLineNo">025</span>import java.util.Date;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.concurrent.*;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.util.concurrent.locks.*;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.juneau.annotation.*;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.juneau.http.*;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.juneau.internal.*;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.juneau.parser.*;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.juneau.remoteable.*;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.juneau.serializer.*;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.juneau.transform.*;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.juneau.utils.*;<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>/**<a name="line.38"></a>
+<span class="sourceLineNo">039</span> * A wrapper class around the {@link Class} object that provides cached information about that class.<a name="line.39"></a>
+<span class="sourceLineNo">040</span> *<a name="line.40"></a>
+<span class="sourceLineNo">041</span> * &lt;p&gt;<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * Instances of this class can be created through the {@link BeanContext#getClassMeta(Class)} method.<a name="line.42"></a>
+<span class="sourceLineNo">043</span> *<a name="line.43"></a>
+<span class="sourceLineNo">044</span> * &lt;p&gt;<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * The {@link BeanContext} class will cache and reuse instances of this class except for the following class types:<a name="line.45"></a>
+<span class="sourceLineNo">046</span> * &lt;ul&gt;<a name="line.46"></a>
+<span class="sourceLineNo">047</span> *    &lt;li&gt;Arrays<a name="line.47"></a>
+<span class="sourceLineNo">048</span> *    &lt;li&gt;Maps with non-Object key/values.<a name="line.48"></a>
+<span class="sourceLineNo">049</span> *    &lt;li&gt;Collections with non-Object key/values.<a name="line.49"></a>
+<span class="sourceLineNo">050</span> * &lt;/ul&gt;<a name="line.50"></a>
+<span class="sourceLineNo">051</span> *<a name="line.51"></a>
+<span class="sourceLineNo">052</span> * &lt;p&gt;<a name="line.52"></a>
+<span class="sourceLineNo">053</span> * This class is tied to the {@link BeanContext} class because it's that class that makes the determination of what is<a name="line.53"></a>
+<span class="sourceLineNo">054</span> * a bean.<a name="line.54"></a>
+<span class="sourceLineNo">055</span> *<a name="line.55"></a>
+<span class="sourceLineNo">056</span> * @param &lt;T&gt; The class type of the wrapped class.<a name="line.56"></a>
+<span class="sourceLineNo">057</span> */<a name="line.57"></a>
+<span class="sourceLineNo">058</span>@Bean(properties="innerClass,classCategory,elementType,keyType,valueType,notABeanReason,initException,beanMeta")<a name="line.58"></a>
+<span class="sourceLineNo">059</span>public final class ClassMeta&lt;T&gt; implements Type {<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>   /** Class categories. */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   enum ClassCategory {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      MAP, COLLECTION, CLASS, METHOD, NUMBER, DECIMAL, BOOLEAN, CHAR, DATE, ARRAY, ENUM, OTHER, CHARSEQ, STR, OBJ, URI, BEANMAP, READER, INPUTSTREAM, VOID, ARGS<a name="line.63"></a>
+<span class="sourceLineNo">064</span>   }<a name="line.64"></a>
 <span class="sourceLineNo">065</span><a name="line.65"></a>
-<span class="sourceLineNo">066</span>   private final Class&lt;? extends T&gt; implClass;             // The implementation class to use if this is an interface.<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   private final ClassCategory cc;                         // The class category.<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   private final Method fromStringMethod;                  // The static valueOf(String) or fromString(String) or forString(String) method (if it has one).<a name="line.68"></a>
-<span class="sourceLineNo">069</span>   private final Constructor&lt;? extends T&gt;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>      noArgConstructor;                                    // The no-arg constructor for this class (if it has one).<a name="line.70"></a>
-<span class="sourceLineNo">071</span>   private final Constructor&lt;T&gt;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>      stringConstructor,                                   // The X(String) constructor (if it has one).<a name="line.72"></a>
-<span class="sourceLineNo">073</span>      numberConstructor,                                   // The X(Number) constructor (if it has one).<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      swapConstructor;                                     // The X(Swappable) constructor (if it has one).<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   private final Class&lt;?&gt;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      swapMethodType,                                      // The class type of the object in the number constructor.<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      numberConstructorType;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   private final Method<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      swapMethod,                                          // The swap() method (if it has one).<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      unswapMethod;                                        // The unswap() method (if it has one).<a name="line.80"></a>
-<span class="sourceLineNo">081</span>   private final Setter<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      namePropertyMethod,                                  // The method to set the name on an object (if it has one).<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      parentPropertyMethod;                                // The method to set the parent on an object (if it has one).<a name="line.83"></a>
-<span class="sourceLineNo">084</span>   private final boolean<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      isDelegate,                                          // True if this class extends Delegate.<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      isAbstract,                                          // True if this class is abstract.<a name="line.86"></a>
-<span class="sourceLineNo">087</span>      isMemberClass;                                       // True if this is a non-static member class.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   private final Object primitiveDefault;                  // Default value for primitive type classes.<a name="line.88"></a>
-<span class="sourceLineNo">089</span>   private final Map&lt;String,Method&gt;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>      remoteableMethods,                                   // Methods annotated with @RemoteMethod.<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      publicMethods;                                       // All public methods, including static methods.<a name="line.91"></a>
-<span class="sourceLineNo">092</span>   private final PojoSwap&lt;?,?&gt;[] childPojoSwaps;           // Any PojoSwaps where the normal type is a subclass of this class.<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   private final ConcurrentHashMap&lt;Class&lt;?&gt;,PojoSwap&lt;?,?&gt;&gt;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      childSwapMap,                                        // Maps normal subclasses to PojoSwaps.<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      childUnswapMap;                                      // Maps swap subclasses to PojoSwaps.<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   private final PojoSwap&lt;T,?&gt; pojoSwap;                   // The object POJO swap associated with this bean (if it has one).<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   private final BeanFilter beanFilter;                    // The bean filter associated with this bean (if it has one).<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   private final MetadataMap extMeta;                      // Extended metadata<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   private final BeanContext beanContext;                  // The bean context that created this object.<a name="line.99"></a>
-<span class="sourceLineNo">100</span>   private final ClassMeta&lt;?&gt;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      serializedClassMeta,                                 // The transformed class type (if class has swap associated with it).<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      elementType,                                         // If ARRAY or COLLECTION, the element class type.<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      keyType,                                             // If MAP, the key class type.<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      valueType;                                           // If MAP, the value class type.<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   private final BeanMeta&lt;T&gt; beanMeta;                     // The bean meta for this bean class (if it's a bean).<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   private final String<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      typePropertyName,                                    // The property name of the _type property for this class and subclasses.<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      notABeanReason,                                      // If this isn't a bean, the reason why.<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      dictionaryName;                                      // The dictionary name of this class if it has one.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   private final Throwable initException;                  // Any exceptions thrown in the init() method.<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   private final InvocationHandler invocationHandler;      // The invocation handler for this class (if it has one).<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   private final BeanRegistry beanRegistry;                // The bean registry of this class meta (if it has one).<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   private final ClassMeta&lt;?&gt;[] args;                      // Arg types if this is an array of args.<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>   private ReadWriteLock lock = new ReentrantReadWriteLock(false);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   private Lock rLock = lock.readLock(), wLock = lock.writeLock();<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>   /**<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    * Construct a new {@code ClassMeta} based on the specified {@link Class}.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    *<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    * @param innerClass The class being wrapped.<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    * @param beanContext The bean context that created this object.<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    * @param implClass<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    *    For interfaces and abstract classes, this represents the "real" class to instantiate.<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    *    Can be &lt;jk&gt;null&lt;/jk&gt;.<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    * @param beanFilter<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    *    The {@link BeanFilter} programmatically associated with this class.<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    *    Can be &lt;jk&gt;null&lt;/jk&gt;.<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    * @param pojoSwap<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    *    The {@link PojoSwap} programmatically associated with this class.<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    *    Can be &lt;jk&gt;null&lt;/jk&gt;.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    * @param childPojoSwap<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    *    The child {@link PojoSwap PojoSwaps} programmatically associated with this class.<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    *    These are the &lt;code&gt;PojoSwaps&lt;/code&gt; that have normal classes that are subclasses of this class.<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    *    Can be &lt;jk&gt;null&lt;/jk&gt;.<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    * @param delayedInit<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    *    Don't call init() in constructor.<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    *    Used for delayed initialization when the possibility of class reference loops exist.<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    */<a name="line.139"></a>
-<span class="sourceLineNo">140</span>   @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.140"></a>
-<span class="sourceLineNo">141</span>   ClassMeta(Class&lt;T&gt; innerClass, BeanContext beanContext, Class&lt;? extends T&gt; implClass, BeanFilter beanFilter, PojoSwap&lt;T,?&gt; pojoSwap, PojoSwap&lt;?,?&gt;[] childPojoSwaps) {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      this.innerClass = innerClass;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      this.beanContext = beanContext;<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>      wLock.lock();<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      try {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>         // We always immediately add this class meta to the bean context cache so that we can resolve recursive references.<a name="line.147"></a>
-<span class="sourceLineNo">148</span>         if (beanContext != null &amp;&amp; beanContext.cmCache != null)<a name="line.148"></a>
-<span class="sourceLineNo">149</span>            beanContext.cmCache.put(innerClass, this);<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>         ClassMetaBuilder&lt;T&gt; builder = new ClassMetaBuilder(innerClass, beanContext, implClass, beanFilter, pojoSwap, childPojoSwaps);<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>         this.cc = builder.cc;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>         this.isDelegate = builder.isDelegate;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>         this.fromStringMethod = builder.fromStringMethod;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>         this.swapMethod = builder.swapMethod;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>         this.unswapMethod = builder.unswapMethod;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>         this.swapMethodType = builder.swapMethodType;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>         this.parentPropertyMethod = builder.parentPropertyMethod;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>         this.namePropertyMethod = builder.namePropertyMethod;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>         this.noArgConstructor = builder.noArgConstructor;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>         this.stringConstructor = builder.stringConstructor;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>         this.swapConstructor = builder.swapConstructor;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>         this.numberConstructor = builder.numberConstructor;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>         this.numberConstructorType = builder.numberConstructorType;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>         this.primitiveDefault = builder.primitiveDefault;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>         this.publicMethods = builder.publicMethods;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>         this.remoteableMethods = builder.remoteableMethods;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>         this.beanFilter = beanFilter;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>         this.pojoSwap = builder.pojoSwap;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>         this.extMeta = new MetadataMap();<a name="line.171"></a>
-<span class="sourceLineNo">172</span>         this.keyType = builder.keyType;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>         this.valueType = builder.valueType;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>         this.elementType = builder.elementType;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>         this.notABeanReason = builder.notABeanReason;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>         this.beanMeta = builder.beanMeta;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>         this.initException = builder.initException;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>         this.typePropertyName = builder.typePropertyName;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>         this.dictionaryName = builder.dictionaryName;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>         this.serializedClassMeta = builder.serializedClassMeta;<a name="line.180"></a>
+<span class="sourceLineNo">066</span>   final Class&lt;T&gt; innerClass;                              // The class being wrapped.<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>   private final Class&lt;? extends T&gt; implClass;             // The implementation class to use if this is an interface.<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   private final ClassCategory cc;                         // The class category.<a name="line.69"></a>
+<span class="sourceLineNo">070</span>   private final Method fromStringMethod;                  // The static valueOf(String) or fromString(String) or forString(String) method (if it has one).<a name="line.70"></a>
+<span class="sourceLineNo">071</span>   private final Constructor&lt;? extends T&gt;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      noArgConstructor;                                    // The no-arg constructor for this class (if it has one).<a name="line.72"></a>
+<span class="sourceLineNo">073</span>   private final Constructor&lt;T&gt;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>      stringConstructor,                                   // The X(String) constructor (if it has one).<a name="line.74"></a>
+<span class="sourceLineNo">075</span>      numberConstructor,                                   // The X(Number) constructor (if it has one).<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      swapConstructor;                                     // The X(Swappable) constructor (if it has one).<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   private final Class&lt;?&gt;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      swapMethodType,                                      // The class type of the object in the number constructor.<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      numberConstructorType;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>   private final Method<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      swapMethod,                                          // The swap() method (if it has one).<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      unswapMethod;                                        // The unswap() method (if it has one).<a name="line.82"></a>
+<span class="sourceLineNo">083</span>   private final Setter<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      namePropertyMethod,                                  // The method to set the name on an object (if it has one).<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      parentPropertyMethod;                                // The method to set the parent on an object (if it has one).<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   private final boolean<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      isDelegate,                                          // True if this class extends Delegate.<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      isAbstract,                                          // True if this class is abstract.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      isMemberClass;                                       // True if this is a non-static member class.<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   private final Object primitiveDefault;                  // Default value for primitive type classes.<a name="line.90"></a>
+<span class="sourceLineNo">091</span>   private final Map&lt;String,Method&gt;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      remoteableMethods,                                   // Methods annotated with @RemoteMethod.<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      publicMethods;                                       // All public methods, including static methods.<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   private final PojoSwap&lt;?,?&gt;[] childPojoSwaps;           // Any PojoSwaps where the normal type is a subclass of this class.<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   private final ConcurrentHashMap&lt;Class&lt;?&gt;,PojoSwap&lt;?,?&gt;&gt;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      childSwapMap,                                        // Maps normal subclasses to PojoSwaps.<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      childUnswapMap;                                      // Maps swap subclasses to PojoSwaps.<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   private final PojoSwap&lt;T,?&gt;[] pojoSwaps;                // The object POJO swaps associated with this bean (if it has any).<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   private final BeanFilter beanFilter;                    // The bean filter associated with this bean (if it has one).<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   private final MetadataMap extMeta;                      // Extended metadata<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   private final BeanContext beanContext;                  // The bean context that created this object.<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   private final ClassMeta&lt;?&gt;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      elementType,                                         // If ARRAY or COLLECTION, the element class type.<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      keyType,                                             // If MAP, the key class type.<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      valueType;                                           // If MAP, the value class type.<a name="line.105"></a>
+<span class="sourceLineNo">106</span>   private final BeanMeta&lt;T&gt; beanMeta;                     // The bean meta for this bean class (if it's a bean).<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   private final String<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      typePropertyName,                                    // The property name of the _type property for this class and subclasses.<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      notABeanReason,                                      // If this isn't a bean, the reason why.<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      dictionaryName;                                      // The dictionary name of this class if it has one.<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   private final Throwable initException;                  // Any exceptions thrown in the init() method.<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   private final InvocationHandler invocationHandler;      // The invocation handler for this class (if it has one).<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   private final BeanRegistry beanRegistry;                // The bean registry of this class meta (if it has one).<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   private final ClassMeta&lt;?&gt;[] args;                      // Arg types if this is an array of args.<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>   private ReadWriteLock lock = new ReentrantReadWriteLock(false);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   private Lock rLock = lock.readLock(), wLock = lock.writeLock();<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>   /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    * Construct a new {@code ClassMeta} based on the specified {@link Class}.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    *<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    * @param innerClass The class being wrapped.<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    * @param beanContext The bean context that created this object.<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    * @param implClass<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    *    For interfaces and abstract classes, this represents the "real" class to instantiate.<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    *    Can be &lt;jk&gt;null&lt;/jk&gt;.<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    * @param beanFilter<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    *    The {@link BeanFilter} programmatically associated with this class.<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    *    Can be &lt;jk&gt;null&lt;/jk&gt;.<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    * @param pojoSwap<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    *    The {@link PojoSwap} programmatically associated with this class.<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    *    Can be &lt;jk&gt;null&lt;/jk&gt;.<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    * @param childPojoSwap<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    *    The child {@link PojoSwap PojoSwaps} programmatically associated with this class.<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    *    These are the &lt;code&gt;PojoSwaps&lt;/code&gt; that have normal classes that are subclasses of this class.<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    *    Can be &lt;jk&gt;null&lt;/jk&gt;.<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    * @param delayedInit<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    *    Don't call init() in constructor.<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    *    Used for delayed initialization when the possibility of class reference loops exist.<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    */<a name="line.140"></a>
+<span class="sourceLineNo">141</span>   @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.141"></a>
+<span class="sourceLineNo">142</span>   ClassMeta(Class&lt;T&gt; innerClass, BeanContext beanContext, Class&lt;? extends T&gt; implClass, BeanFilter beanFilter, PojoSwap&lt;T,?&gt;[] pojoSwaps, PojoSwap&lt;?,?&gt;[] childPojoSwaps) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      this.innerClass = innerClass;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      this.beanContext = beanContext;<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>      wLock.lock();<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      try {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         // We always immediately add this class meta to the bean context cache so that we can resolve recursive references.<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         if (beanContext != null &amp;&amp; beanContext.cmCache != null)<a name="line.149"></a>
+<span class="sourceLineNo">150</span>            beanContext.cmCache.put(innerClass, this);<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>         ClassMetaBuilder&lt;T&gt; builder = new ClassMetaBuilder(innerClass, beanContext, implClass, beanFilter, pojoSwaps, childPojoSwaps);<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>         this.cc = builder.cc;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         this.isDelegate = builder.isDelegate;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         this.fromStringMethod = builder.fromStringMethod;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         this.swapMethod = builder.swapMethod;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>         this.unswapMethod = builder.unswapMethod;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>         this.swapMethodType = builder.swapMethodType;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>         this.parentPropertyMethod = builder.parentPropertyMethod;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>         this.namePropertyMethod = builder.namePropertyMethod;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>         this.noArgConstructor = builder.noArgConstructor;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         this.stringConstructor = builder.stringConstructor;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>         this.swapConstructor = builder.swapConstructor;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         this.numberConstructor = builder.numberConstructor;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>         this.numberConstructorType = builder.numberConstructorType;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         this.primitiveDefault = builder.primitiveDefault;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         this.publicMethods = builder.publicMethods;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         this.remoteableMethods = builder.remoteableMethods;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         this.beanFilter = beanFilter;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         this.pojoSwaps = builder.pojoSwaps.isEmpty() ? null : builder.pojoSwaps.toArray(new PojoSwap[builder.pojoSwaps.size()]);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>         this.extMeta = new MetadataMap();<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         this.keyType = builder.keyType;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         this.valueType = builder.valueType;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>         this.elementType = builder.elementType;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>         this.notABeanReason = builder.notABeanReason;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>         this.beanMeta = builder.beanMeta;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>         this.initException = builder.initException;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>         this.typePropertyName = builder.typePropertyName;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>         this.dictionaryName = builder.dictionaryName;<a name="line.180"></a>
 <span class="sourceLineNo">181</span>         this.invocationHandler = builder.invocationHandler;<a name="line.181"></a>
 <span class="sourceLineNo">182</span>         this.beanRegistry = builder.beanRegistry;<a name="line.182"></a>
 <span class="sourceLineNo">183</span>         this.isMemberClass = builder.isMemberClass;<a name="line.183"></a>
@@ -239,1484 +239,1524 @@
 <span class="sourceLineNo">231</span>      this.remoteableMethods = mainType.remoteableMethods;<a name="line.231"></a>
 <span class="sourceLineNo">232</span>      this.publicMethods = mainType.publicMethods;<a name="line.232"></a>
 <span class="sourceLineNo">233</span>      this.beanContext = mainType.beanContext;<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      this.serializedClassMeta = this;<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      this.elementType = elementType;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      this.keyType = keyType;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      this.valueType = valueType;<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      this.invocationHandler = mainType.invocationHandler;<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      this.beanMeta = mainType.beanMeta;<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      this.typePropertyName = mainType.typePropertyName;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      this.dictionaryName = mainType.dictionaryName;<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      this.notABeanReason = mainType.notABeanReason;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      this.pojoSwap = mainType.pojoSwap;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      this.beanFilter = mainType.beanFilter;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      this.extMeta = mainType.extMeta;<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      this.initException = mainType.initException;<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      this.beanRegistry = mainType.beanRegistry;<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      this.args = null;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>   }<a name="line.249"></a>
-<span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span>   /**<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    * Constructor for args-arrays.<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    */<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   @SuppressWarnings("unchecked")<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   ClassMeta(ClassMeta&lt;?&gt;[] args) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      this.innerClass = (Class&lt;T&gt;) Object[].class;<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      this.args = args;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      this.implClass = null;<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      this.childPojoSwaps = null;<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      this.childSwapMap = null;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      this.childUnswapMap = null;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      this.cc = ARGS;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      this.fromStringMethod = null;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      this.noArgConstructor = null;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      this.stringConstructor = null;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      this.numberConstructor = null;<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      this.swapConstructor = null;<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      this.swapMethodType = null;<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      this.numberConstructorType = null;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      this.swapMethod = null;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      this.unswapMethod = null;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      this.namePropertyMethod = null;<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      this.parentPropertyMethod = null;<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      this.isDelegate = false;<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      this.isAbstract = false;<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      this.isMemberClass = false;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      this.primitiveDefault = null;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      this.remoteableMethods = null;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      this.publicMethods = null;<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      this.beanContext = null;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      this.serializedClassMeta = this;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      this.elementType = null;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      this.keyType = null;<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      this.valueType = null;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      this.invocationHandler = null;<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      this.beanMeta = null;<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      this.typePropertyName = null;<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      this.dictionaryName = null;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      this.notABeanReason = null;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      this.pojoSwap = null;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      this.beanFilter = null;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      this.extMeta = new MetadataMap();<a name="line.292"></a>
-<span class="sourceLineNo">293</span>      this.initException = null;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      this.beanRegistry = null;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>   }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>   @SuppressWarnings({"unchecked","rawtypes","hiding"})<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   private class ClassMetaBuilder&lt;T&gt; {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      Class&lt;T&gt; innerClass;<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      Class&lt;? extends T&gt; implClass;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      BeanContext beanContext;<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      ClassCategory cc = ClassCategory.OTHER;<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      boolean<a name="line.303"></a>
-<span class="sourceLineNo">304</span>         isDelegate = false,<a name="line.304"></a>
-<span class="sourceLineNo">305</span>         isMemberClass = false,<a name="line.305"></a>
-<span class="sourceLineNo">306</span>         isAbstract = false;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      Method<a name="line.307"></a>
-<span class="sourceLineNo">308</span>         fromStringMethod = null,<a name="line.308"></a>
-<span class="sourceLineNo">309</span>         swapMethod = null,<a name="line.309"></a>
-<span class="sourceLineNo">310</span>         unswapMethod = null;<a name="line.310"></a>
-<span class="sourceLineNo">311</span>      Setter<a name="line.311"></a>
-<span class="sourceLineNo">312</span>         parentPropertyMethod = null,<a name="line.312"></a>
-<span class="sourceLineNo">313</span>         namePropertyMethod = null;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      Constructor&lt;T&gt;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>         noArgConstructor = null,<a name="line.315"></a>
-<span class="sourceLineNo">316</span>         stringConstructor = null,<a name="line.316"></a>
-<span class="sourceLineNo">317</span>         swapConstructor = null,<a name="line.317"></a>
-<span class="sourceLineNo">318</span>         numberConstructor = null;<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      Class&lt;?&gt;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>         swapMethodType = null,<a name="line.320"></a>
-<span class="sourceLineNo">321</span>         numberConstructorType = null;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      Object primitiveDefault = null;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      Map&lt;String,Method&gt;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>         publicMethods = new LinkedHashMap&lt;String,Method&gt;(),<a name="line.324"></a>
-<span class="sourceLineNo">325</span>         remoteableMethods = new LinkedHashMap&lt;String,Method&gt;();<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      ClassMeta&lt;?&gt;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>         keyType = null,<a name="line.327"></a>
-<span class="sourceLineNo">328</span>         valueType = null,<a name="line.328"></a>
-<span class="sourceLineNo">329</span>         elementType = null,<a name="line.329"></a>
-<span class="sourceLineNo">330</span>         serializedClassMeta = null;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      String<a name="line.331"></a>
-<span class="sourceLineNo">332</span>         typePropertyName = null,<a name="line.332"></a>
-<span class="sourceLineNo">333</span>         notABeanReason = null,<a name="line.333"></a>
-<span class="sourceLineNo">334</span>         dictionaryName = null;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      Throwable initException = null;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      BeanMeta beanMeta = null;<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      PojoSwap pojoSwap = null;<a name="line.337"></a>
-<span class="sourceLineNo">338</span>      InvocationHandler invocationHandler = null;<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      BeanRegistry beanRegistry = null;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      PojoSwap&lt;?,?&gt;[] childPojoSwaps;<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      ConcurrentHashMap&lt;Class&lt;?&gt;,PojoSwap&lt;?,?&gt;&gt;<a name="line.341"></a>
-<span class="sourceLineNo">342</span>         childSwapMap,<a name="line.342"></a>
-<span class="sourceLineNo">343</span>         childUnswapMap;<a name="line.343"></a>
-<span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>      private ClassMetaBuilder(Class&lt;T&gt; innerClass, BeanContext beanContext, Class&lt;? extends T&gt; implClass, BeanFilter beanFilter, PojoSwap&lt;T,?&gt; pojoSwap, PojoSwap&lt;?,?&gt;[] childPojoSwaps) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>         this.innerClass = innerClass;<a name="line.346"></a>
-<span class="sourceLineNo">347</span>         this.beanContext = beanContext;<a name="line.347"></a>
-<span class="sourceLineNo">348</span><a name="line.348"></a>
-<span class="sourceLineNo">349</span>         this.implClass = implClass;<a name="line.349"></a>
-<span class="sourceLineNo">350</span>         this.childPojoSwaps = childPojoSwaps;<a name="line.350"></a>
-<span class="sourceLineNo">351</span>         this.childSwapMap = childPojoSwaps == null ? null : new ConcurrentHashMap&lt;Class&lt;?&gt;,PojoSwap&lt;?,?&gt;&gt;();<a name="line.351"></a>
-<span class="sourceLineNo">352</span>         this.childUnswapMap = childPojoSwaps == null ? null : new ConcurrentHashMap&lt;Class&lt;?&gt;,PojoSwap&lt;?,?&gt;&gt;();<a name="line.352"></a>
-<span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>         Class&lt;T&gt; c = innerClass;<a name="line.354"></a>
-<span class="sourceLineNo">355</span>         if (c.isPrimitive()) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>            if (c == Boolean.TYPE)<a name="line.356"></a>
-<span class="sourceLineNo">357</span>               cc = BOOLEAN;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>            else if (c == Byte.TYPE || c == Short.TYPE || c == Integer.TYPE || c == Long.TYPE || c == Float.TYPE || c == Double.TYPE) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>               if (c == Float.TYPE || c == Double.TYPE)<a name="line.359"></a>
-<span class="sourceLineNo">360</span>                  cc = DECIMAL;<a name="line.360"></a>
-<span class="sourceLineNo">361</span>               else<a name="line.361"></a>
-<span class="sourceLineNo">362</span>                  cc = NUMBER;<a name="line.362"></a>
-<span class="sourceLineNo">363</span>            }<a name="line.363"></a>
-<span class="sourceLineNo">364</span>            else if (c == Character.TYPE)<a name="line.364"></a>
-<span class="sourceLineNo">365</span>               cc = CHAR;<a name="line.365"></a>
-<span class="sourceLineNo">366</span>            else if (c == void.class || c == Void.class)<a name="line.366"></a>
-<span class="sourceLineNo">367</span>               cc = VOID;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>         } else {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>            if (isParentClass(Delegate.class, c))<a name="line.369"></a>
-<span class="sourceLineNo">370</span>               isDelegate = true;<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>            if (c == Object.class)<a name="line.372"></a>
-<span class="sourceLineNo">373</span>               cc = OBJ;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>            else if (c.isEnum())<a name="line.374"></a>
-<span class="sourceLineNo">375</span>               cc = ENUM;<a name="line.375"></a>
-<span class="sourceLineNo">376</span>            else if (c.equals(Class.class))<a name="line.376"></a>
-<span class="sourceLineNo">377</span>               cc = CLASS;<a name="line.377"></a>
-<span class="sourceLineNo">378</span>            else if (isParentClass(Method.class, c))<a name="line.378"></a>
-<span class="sourceLineNo">379</span>               cc = METHOD;<a name="line.379"></a>
-<span class="sourceLineNo">380</span>            else if (isParentClass(CharSequence.class, c)) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>               if (c.equals(String.class))<a name="line.381"></a>
-<span class="sourceLineNo">382</span>                  cc = STR;<a name="line.382"></a>
-<span class="sourceLineNo">383</span>               else<a name="line.383"></a>
-<span class="sourceLineNo">384</span>                  cc = CHARSEQ;<a name="line.384"></a>
-<span class="sourceLineNo">385</span>            }<a name="line.385"></a>
-<span class="sourceLineNo">386</span>            else if (isParentClass(Number.class, c)) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>               if (isParentClass(Float.class, c) || isParentClass(Double.class, c))<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                  cc = DECIMAL;<a name="line.388"></a>
-<span class="sourceLineNo">389</span>               else<a name="line.389"></a>
-<span class="sourceLineNo">390</span>                  cc = NUMBER;<a name="line.390"></a>
-<span class="sourceLineNo">391</span>            }<a name="line.391"></a>
-<span class="sourceLineNo">392</span>            else if (isParentClass(Collection.class, c))<a name="line.392"></a>
-<span class="sourceLineNo">393</span>               cc = COLLECTION;<a name="line.393"></a>
-<span class="sourceLineNo">394</span>            else if (isParentClass(Map.class, c)) {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>               if (isParentClass(BeanMap.class, c))<a name="line.395"></a>
-<span class="sourceLineNo">396</span>                  cc = BEANMAP;<a name="line.396"></a>
-<span class="sourceLineNo">397</span>               else<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                  cc = MAP;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>            }<a name="line.399"></a>
-<span class="sourceLineNo">400</span>            else if (c == Character.class)<a name="line.400"></a>
-<span class="sourceLineNo">401</span>               cc = CHAR;<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            else if (c == Boolean.class)<a name="line.402"></a>
-<span class="sourceLineNo">403</span>               cc = BOOLEAN;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>            else if (isParentClass(Date.class, c) || isParentClass(Calendar.class, c))<a name="line.404"></a>
-<span class="sourceLineNo">405</span>               cc = DATE;<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            else if (c.isArray())<a name="line.406"></a>
-<span class="sourceLineNo">407</span>               cc = ARRAY;<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            else if (isParentClass(URL.class, c) || isParentClass(URI.class, c) || c.isAnnotationPresent(org.apache.juneau.annotation.URI.class))<a name="line.408"></a>
-<span class="sourceLineNo">409</span>               cc = URI;<a name="line.409"></a>
-<span class="sourceLineNo">410</span>            else if (isParentClass(Reader.class, c))<a name="line.410"></a>
-<span class="sourceLineNo">411</span>               cc = READER;<a name="line.411"></a>
-<span class="sourceLineNo">412</span>            else if (isParentClass(InputStream.class, c))<a name="line.412"></a>
-<span class="sourceLineNo">413</span>               cc = INPUTSTREAM;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>         }<a name="line.414"></a>
+<span class="sourceLineNo">234</span>      this.elementType = elementType;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      this.keyType = keyType;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      this.valueType = valueType;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      this.invocationHandler = mainType.invocationHandler;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      this.beanMeta = mainType.beanMeta;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      this.typePropertyName = mainType.typePropertyName;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      this.dictionaryName = mainType.dictionaryName;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      this.notABeanReason = mainType.notABeanReason;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      this.pojoSwaps = mainType.pojoSwaps;<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      this.beanFilter = mainType.beanFilter;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      this.extMeta = mainType.extMeta;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      this.initException = mainType.initException;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      this.beanRegistry = mainType.beanRegistry;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      this.args = null;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>   }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>   /**<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    * Constructor for args-arrays.<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    */<a name="line.252"></a>
+<span class="sourceLineNo">253</span>   @SuppressWarnings("unchecked")<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   ClassMeta(ClassMeta&lt;?&gt;[] args) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      this.innerClass = (Class&lt;T&gt;) Object[].class;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      this.args = args;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      this.implClass = null;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      this.childPojoSwaps = null;<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      this.childSwapMap = null;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      this.childUnswapMap = null;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      this.cc = ARGS;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      this.fromStringMethod = null;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      this.noArgConstructor = null;<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      this.stringConstructor = null;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      this.numberConstructor = null;<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      this.swapConstructor = null;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      this.swapMethodType = null;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      this.numberConstructorType = null;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      this.swapMethod = null;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      this.unswapMethod = null;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      this.namePropertyMethod = null;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      this.parentPropertyMethod = null;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      this.isDelegate = false;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      this.isAbstract = false;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      this.isMemberClass = false;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      this.primitiveDefault = null;<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      this.remoteableMethods = null;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      this.publicMethods = null;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      this.beanContext = null;<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      this.elementType = null;<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      this.keyType = null;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      this.valueType = null;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      this.invocationHandler = null;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      this.beanMeta = null;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      this.typePropertyName = null;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      this.dictionaryName = null;<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      this.notABeanReason = null;<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      this.pojoSwaps = null;<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      this.beanFilter = null;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      this.extMeta = new MetadataMap();<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      this.initException = null;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      this.beanRegistry = null;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>   }<a name="line.293"></a>
+<span class="sourceLineNo">294</span><a name="line.294"></a>
+<span class="sourceLineNo">295</span>   @SuppressWarnings({"unchecked","rawtypes","hiding"})<a name="line.295"></a>
+<span class="sourceLineNo">296</span>   private class ClassMetaBuilder&lt;T&gt; {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      Class&lt;T&gt; innerClass;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      Class&lt;? extends T&gt; implClass;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      BeanContext beanContext;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      ClassCategory cc = ClassCategory.OTHER;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      boolean<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         isDelegate = false,<a name="line.302"></a>
+<span class="sourceLineNo">303</span>         isMemberClass = false,<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         isAbstract = false;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      Method<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         fromStringMethod = null,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         swapMethod = null,<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         unswapMethod = null;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      Setter<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         parentPropertyMethod = null,<a name="line.310"></a>
+<span class="sourceLineNo">311</span>         namePropertyMethod = null;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      Constructor&lt;T&gt;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>         noArgConstructor = null,<a name="line.313"></a>
+<span class="sourceLineNo">314</span>         stringConstructor = null,<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         swapConstructor = null,<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         numberConstructor = null;<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      Class&lt;?&gt;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         swapMethodType = null,<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         numberConstructorType = null;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      Object primitiveDefault = null;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      Map&lt;String,Method&gt;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>         publicMethods = new LinkedHashMap&lt;String,Method&gt;(),<a name="line.322"></a>
+<span class="sourceLineNo">323</span>         remoteableMethods = new LinkedHashMap&lt;String,Method&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      ClassMeta&lt;?&gt;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         keyType = null,<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         valueType = null,<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         elementType = null,<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         serializedClassMeta = null;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      String<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         typePropertyName = null,<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         notABeanReason = null,<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         dictionaryName = null;<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      Throwable initException = null;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      BeanMeta beanMeta = null;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      List&lt;PojoSwap&gt; pojoSwaps = new ArrayList&lt;PojoSwap&gt;();<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      InvocationHandler invocationHandler = null;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      BeanRegistry beanRegistry = null;<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      PojoSwap&lt;?,?&gt;[] childPojoSwaps;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      ConcurrentHashMap&lt;Class&lt;?&gt;,PojoSwap&lt;?,?&gt;&gt;<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         childSwapMap,<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         childUnswapMap;<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span>      private ClassMetaBuilder(Class&lt;T&gt; innerClass, BeanContext beanContext, Class&lt;? extends T&gt; implClass, BeanFilter beanFilter, PojoSwap&lt;T,?&gt;[] pojoSwaps, PojoSwap&lt;?,?&gt;[] childPojoSwaps) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         this.innerClass = innerClass;<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         this.beanContext = beanContext;<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>         this.implClass = implClass;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>         this.childPojoSwaps = childPojoSwaps;<a name="line.348"></a>
+<span class="sourceLineNo">349</span>         this.childSwapMap = childPojoSwaps == null ? null : new ConcurrentHashMap&lt;Class&lt;?&gt;,PojoSwap&lt;?,?&gt;&gt;();<a name="line.349"></a>
+<span class="sourceLineNo">350</span>         this.childUnswapMap = childPojoSwaps == null ? null : new ConcurrentHashMap&lt;Class&lt;?&gt;,PojoSwap&lt;?,?&gt;&gt;();<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>         Class&lt;T&gt; c = innerClass;<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         if (c.isPrimitive()) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>            if (c == Boolean.TYPE)<a name="line.354"></a>
+<span class="sourceLineNo">355</span>               cc = BOOLEAN;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>            else if (c == Byte.TYPE || c == Short.TYPE || c == Integer.TYPE || c == Long.TYPE || c == Float.TYPE || c == Double.TYPE) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>               if (c == Float.TYPE || c == Double.TYPE)<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                  cc = DECIMAL;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>               else<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                  cc = NUMBER;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>            }<a name="line.361"></a>
+<span class="sourceLineNo">362</span>            else if (c == Character.TYPE)<a name="line.362"></a>
+<span class="sourceLineNo">363</span>               cc = CHAR;<a name="line.363"></a>
+<span class="sourceLineNo">364</span>            else if (c == void.class || c == Void.class)<a name="line.364"></a>
+<span class="sourceLineNo">365</span>               cc = VOID;<a name="line.365"></a>
+<span class="sourceLineNo">366</span>         } else {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>            if (isParentClass(Delegate.class, c))<a name="line.367"></a>
+<span class="sourceLineNo">368</span>               isDelegate = true;<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>            if (c == Object.class)<a name="line.370"></a>
+<span class="sourceLineNo">371</span>               cc = OBJ;<a name="line.371"></a>
+<span class="sourceLineNo">372</span>            else if (c.isEnum())<a name="line.372"></a>
+<span class="sourceLineNo">373</span>               cc = ENUM;<a name="line.373"></a>
+<span class="sourceLineNo">374</span>            else if (c.equals(Class.class))<a name="line.374"></a>
+<span class="sourceLineNo">375</span>               cc = CLASS;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            else if (isParentClass(Method.class, c))<a name="line.376"></a>
+<span class="sourceLineNo">377</span>               cc = METHOD;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>            else if (isParentClass(CharSequence.class, c)) {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>               if (c.equals(String.class))<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                  cc = STR;<a name="line.380"></a>
+<span class="sourceLineNo">381</span>               else<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                  cc = CHARSEQ;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>            }<a name="line.383"></a>
+<span class="sourceLineNo">384</span>            else if (isParentClass(Number.class, c)) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>               if (isParentClass(Float.class, c) || isParentClass(Double.class, c))<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                  cc = DECIMAL;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>               else<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                  cc = NUMBER;<a name="line.388"></a>
+<span class="sourceLineNo">389</span>            }<a name="line.389"></a>
+<span class="sourceLineNo">390</span>            else if (isParentClass(Collection.class, c))<a name="line.390"></a>
+<span class="sourceLineNo">391</span>               cc = COLLECTION;<a name="line.391"></a>
+<span class="sourceLineNo">392</span>            else if (isParentClass(Map.class, c)) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>               if (isParentClass(BeanMap.class, c))<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                  cc = BEANMAP;<a name="line.394"></a>
+<span class="sourceLineNo">395</span>               else<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                  cc = MAP;<a name="line.396"></a>
+<span class="sourceLineNo">397</span>            }<a name="line.397"></a>
+<span class="sourceLineNo">398</span>            else if (c == Character.class)<a name="line.398"></a>
+<span class="sourceLineNo">399</span>               cc = CHAR;<a name="line.399"></a>
+<span class="sourceLineNo">400</span>            else if (c == Boolean.class)<a name="line.400"></a>
+<span class="sourceLineNo">401</span>               cc = BOOLEAN;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>            else if (isParentClass(Date.class, c) || isParentClass(Calendar.class, c))<a name="line.402"></a>
+<span class="sourceLineNo">403</span>               cc = DATE;<a name="line.403"></a>
+<span class="sourceLineNo">404</span>            else if (c.isArray())<a name="line.404"></a>
+<span class="sourceLineNo">405</span>               cc = ARRAY;<a name="line.405"></a>
+<span class="sourceLineNo">406</span>            else if (isParentClass(URL.class, c) || isParentClass(URI.class, c) || c.isAnnotationPresent(org.apache.juneau.annotation.URI.class))<a name="line.406"></a>
+<span class="sourceLineNo">407</span>               cc = URI;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>            else if (isParentClass(Reader.class, c))<a name="line.408"></a>
+<span class="sourceLineNo">409</span>               cc = READER;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>            else if (isParentClass(InputStream.class, c))<a name="line.410"></a>
+<span class="sourceLineNo">411</span>               cc = INPUTSTREAM;<a name="line.411"></a>
+<span class="sourceLineNo">412</span>         }<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>         isMemberClass = c.isMemberClass() &amp;&amp; ! isStatic(c);<a name="line.414"></a>
 <span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>         isMemberClass = c.isMemberClass() &amp;&amp; ! isStatic(c);<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>         // Find static fromString(String) or equivalent method.<a name="line.418"></a>
-<span class="sourceLineNo">419</span>         // fromString() must be checked before valueOf() so that Enum classes can create their own<a name="line.419"></a>
-<span class="sourceLineNo">420</span>         //    specialized fromString() methods to override the behavior of Enum.valueOf(String).<a name="line.420"></a>
-<span class="sourceLineNo">421</span>         // valueOf() is used by enums.<a name="line.421"></a>
-<span class="sourceLineNo">422</span>         // parse() is used by the java logging Level class.<a name="line.422"></a>
-<span class="sourceLineNo">423</span>         // forName() is used by Class and Charset<a name="line.423"></a>
-<span class="sourceLineNo">424</span>         for (String methodName : new String[]{"fromString","fromValue","valueOf","parse","parseString","forName","forString"}) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>            if (fromStringMethod == null) {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>               for (Method m : c.getMethods()) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>                  if (isStatic(m) &amp;&amp; isPublic(m) &amp;&amp; isNotDeprecated(m)) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>                     String mName = m.getName();<a name="line.428"></a>
-<span class="sourceLineNo">429</span>                     if (mName.equals(methodName) &amp;&amp; m.getReturnType() == c) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>                        Class&lt;?&gt;[] args = m.getParameterTypes();<a name="line.430"></a>
-<span class="sourceLineNo">431</span>                        if (args.length == 1 &amp;&amp; args[0] == String.class) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>                           fromStringMethod = m;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>                           break;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>                        }<a name="line.434"></a>
-<span class="sourceLineNo">435</span>                     }<a name="line.435"></a>
-<span class="sourceLineNo">436</span>                  }<a name="line.436"></a>
-<span class="sourceLineNo">437</span>               }<a name="line.437"></a>
-<span class="sourceLineNo">438</span>            }<a name="line.438"></a>
-<span class="sourceLineNo">439</span>         }<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>         // Special cases<a name="line.441"></a>
-<span class="sourceLineNo">442</span>         try {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>            if (c == TimeZone.class)<a name="line.443"></a>
-<span class="sourceLineNo">444</span>               fromStringMethod = c.getMethod("getTimeZone", String.class);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>            else if (c == Locale.class)<a name="line.445"></a>
-<span class="sourceLineNo">446</span>               fromStringMethod = LocaleAsString.class.getMethod("fromString", String.class);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>         } catch (NoSuchMethodException e1) {}<a name="line.447"></a>
-<span class="sourceLineNo">448</span><a name="line.448"></a>
-<span class="sourceLineNo">449</span>         // Find swap() method if present.<a name="line.449"></a>
-<span class="sourceLineNo">450</span>         for (Method m : c.getMethods()) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>            if (isPublic(m) &amp;&amp; isNotDeprecated(m) &amp;&amp; ! isStatic(m)) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>               String mName = m.getName();<a name="line.452"></a>
-<span class="sourceLineNo">453</span>               if (mName.equals("swap")) {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>                  Class&lt;?&gt;[] pt = m.getParameterTypes();<a name="line.454"></a>
-<span class="sourceLineNo">455</span>                  if (pt.length == 1 &amp;&amp; pt[0] == BeanSession.class) {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>                     swapMethod = m;<a name="line.456"></a>
-<span class="sourceLineNo">457</span>                     swapMethodType = m.getReturnType();<a name="line.457"></a>
-<span class="sourceLineNo">458</span>                     break;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>                  }<a name="line.459"></a>
-<span class="sourceLineNo">460</span>               }<a name="line.460"></a>
-<span class="sourceLineNo">461</span>            }<a name="line.461"></a>
-<span class="sourceLineNo">462</span>         }<a name="line.462"></a>
-<span class="sourceLineNo">463</span>         // Find unswap() method if present.<a name="line.463"></a>
-<span class="sourceLineNo">464</span>         if (swapMethod != null) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>            for (Method m : c.getMethods()) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>               if (isPublic(m) &amp;&amp; isNotDeprecated(m) &amp;&amp; isStatic(m)) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>                  String mName = m.getName();<a name="line.467"></a>
-<span class="sourceLineNo">468</span>                  if (mName.equals("unswap")) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>                     Class&lt;?&gt;[] pt = m.getParameterTypes();<a name="line.469"></a>
-<span class="sourceLineNo">470</span>                     if (pt.length == 2 &amp;&amp; pt[0] == BeanSession.class &amp;&amp; pt[1] == swapMethodType) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>                        unswapMethod = m;<a name="line.471"></a>
-<span class="sourceLineNo">472</span>                        break;<a name="line.472"></a>
-<span class="sourceLineNo">473</span>                     }<a name="line.473"></a>
-<span class="sourceLineNo">474</span>                  }<a name="line.474"></a>
-<span class="sourceLineNo">475</span>               }<a name="line.475"></a>
-<span class="sourceLineNo">476</span>            }<a name="line.476"></a>
-<span class="sourceLineNo">477</span>         }<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>         for (Field f : getAllFields(c, true)) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>            if (f.isAnnotationPresent(ParentProperty.class)) {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>               f.setAccessible(true);<a name="line.481"></a>
-<span class="sourceLineNo">482</span>               parentPropertyMethod = new Setter.FieldSetter(f);<a name="line.482"></a>
-<span class="sourceLineNo">483</span>            }<a name="line.483"></a>
-<span class="sourceLineNo">484</span>            if (f.isAnnotationPresent(NameProperty.class)) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>               f.setAccessible(true);<a name="line.485"></a>
-<span class="sourceLineNo">486</span>               namePropertyMethod = new Setter.FieldSetter(f);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>            }<a name="line.487"></a>
-<span class="sourceLineNo">488</span>         }<a name="line.488"></a>
-<span class="sourceLineNo">489</span><a name="line.489"></a>
-<span class="sourceLineNo">490</span>         // Find @NameProperty and @ParentProperty methods if present.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>         for (Method m : getAllMethods(c, true)) {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>            if (m.isAnnotationPresent(ParentProperty.class) &amp;&amp; m.getParameterTypes().length == 1) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>               m.setAccessible(true);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>               parentPropertyMethod = new Setter.MethodSetter(m);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>            }<a name="line.495"></a>
-<span class="sourceLineNo">496</span>            if (m.isAnnotationPresent(NameProperty.class) &amp;&amp; m.getParameterTypes().length == 1) {<a name="line.496"></a>
-<span class="sourceLineNo">497</span>               m.setAccessible(true);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>               namePropertyMethod = new Setter.MethodSetter(m);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>            }<a name="line.499"></a>
-<span class="sourceLineNo">500</span>         }<a name="line.500"></a>
-<span class="sourceLineNo">501</span><a name="line.501"></a>
-<span class="sourceLineNo">502</span>         // Note:  Primitive types are normally abstract.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>         isAbstract = Modifier.isAbstract(c.getModifiers()) &amp;&amp; ! c.isPrimitive();<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>         // Find constructor(String) method if present.<a name="line.505"></a>
-<span class="sourceLineNo">506</span>         for (Constructor cs : c.getConstructors()) {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>            if (isPublic(cs) &amp;&amp; isNotDeprecated(cs)) {<a name="line.507"></a>
-<span class="sourceLineNo">508</span>               Class&lt;?&gt;[] args = cs.getParameterTypes();<a name="line.508"></a>
-<span class="sourceLineNo">509</span>               if (args.length == (isMemberClass ? 1 : 0) &amp;&amp; c != Object.class &amp;&amp; ! isAbstract) {<a name="line.509"></a>
-<span class="sourceLineNo">510</span>                  noArgConstructor = cs;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>               } else if (args.length == (isMemberClass ? 2 : 1)) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>                  Class&lt;?&gt; arg = args[(isMemberClass ? 1 : 0)];<a name="line.512"></a>
-<span class="sourceLineNo">513</span>                  if (arg == String.class)<a name="line.513"></a>
-<span class="sourceLineNo">514</span>                     stringConstructor = cs;<a name="line.514"></a>
-<span class="sourceLineNo">515</span>                  else if (swapMethodType != null &amp;&amp; swapMethodType.isAssignableFrom(arg))<a name="line.515"></a>
-<span class="sourceLineNo">516</span>                     swapConstructor = cs;<a name="line.516"></a>
-<span class="sourceLineNo">517</span>                  else if (cc != NUMBER &amp;&amp; (Number.class.isAssignableFrom(arg) || (arg.isPrimitive() &amp;&amp; (arg == int.class || arg == short.class || arg == long.class || arg == float.class || arg == double.class)))) {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>                     numberConstructor = cs;<a name="line.518"></a>
-<span class="sourceLineNo">519</span>                     numberConstructorType = getWrapperIfPrimitive(arg);<a name="line.519"></a>
-<span class="sourceLineNo">520</span>                  }<a name="line.520"></a>
-<span class="sourceLineNo">521</span>               }<a name="line.521"></a>
-<span class="sourceLineNo">522</span>            }<a name="line.522"></a>
-<span class="sourceLineNo">523</span>         }<a name="line.523"></a>
+<span class="sourceLineNo">416</span>         // Find static fromString(String) or equivalent method.<a name="line.416"></a>
+<span class="sourceLineNo">417</span>         // fromString() must be checked before valueOf() so that Enum classes can create their own<a name="line.417"></a>
+<span class="sourceLineNo">418</span>         //    specialized fromString() methods to override the behavior of Enum.valueOf(String).<a name="line.418"></a>
+<span class="sourceLineNo">419</span>         // valueOf() is used by enums.<a name="line.419"></a>
+<span class="sourceLineNo">420</span>         // parse() is used by the java logging Level class.<a name="line.420"></a>
+<span class="sourceLineNo">421</span>         // forName() is used by Class and Charset<a name="line.421"></a>
+<span class="sourceLineNo">422</span>         for (String methodName : new String[]{"fromString","fromValue","valueOf","parse","parseString","forName","forString"}) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>            if (fromStringMethod == null) {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>               for (Method m : c.getMethods()) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                  if (isStatic(m) &amp;&amp; isPublic(m) &amp;&amp; isNotDeprecated(m)) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                     String mName = m.getName();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                     if (mName.equals(methodName) &amp;&amp; m.getReturnType() == c) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        Class&lt;?&gt;[] args = m.getParameterTypes();<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                        if (args.length == 1 &amp;&amp; args[0] == String.class) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                           fromStringMethod = m;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                           break;<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                        }<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                     }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                  }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>               }<a name="line.435"></a>
+<span class="sourceLineNo">436</span>            }<a name="line.436"></a>
+<span class="sourceLineNo">437</span>         }<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span>         // Special cases<a name="line.439"></a>
+<span class="sourceLineNo">440</span>         try {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>            if (c == TimeZone.class)<a name="line.441"></a>
+<span class="sourceLineNo">442</span>               fromStr

<TRUNCATED>


[13/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/src-html/org/apache/juneau/internal/ClassUtils.ClassComparator.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/internal/ClassUtils.ClassComparator.html b/content/site/apidocs/src-html/org/apache/juneau/internal/ClassUtils.ClassComparator.html
index 6cbb889..57fc64b 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/internal/ClassUtils.ClassComparator.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/internal/ClassUtils.ClassComparator.html
@@ -464,656 +464,662 @@
 <span class="sourceLineNo">456</span>         oc = oc.getSuperclass();<a name="line.456"></a>
 <span class="sourceLineNo">457</span>      }<a name="line.457"></a>
 <span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span>      ParameterizedType opt = (ParameterizedType)oc.getGenericSuperclass();<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      Type actualType = opt.getActualTypeArguments()[index];<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>      if (typeMap.containsKey(actualType))<a name="line.462"></a>
-<span class="sourceLineNo">463</span>         actualType = typeMap.get(actualType);<a name="line.463"></a>
+<span class="sourceLineNo">459</span>      Type gsc = oc.getGenericSuperclass();<a name="line.459"></a>
+<span class="sourceLineNo">460</span>      <a name="line.460"></a>
+<span class="sourceLineNo">461</span>      // Not actually a parameterized type.<a name="line.461"></a>
+<span class="sourceLineNo">462</span>      if (! (gsc instanceof ParameterizedType))<a name="line.462"></a>
+<span class="sourceLineNo">463</span>         return Object.class;<a name="line.463"></a>
 <span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>      if (actualType instanceof Class) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>         return (Class&lt;?&gt;)actualType;<a name="line.466"></a>
+<span class="sourceLineNo">465</span>      ParameterizedType opt = (ParameterizedType)gsc;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>      Type actualType = opt.getActualTypeArguments()[index];<a name="line.466"></a>
 <span class="sourceLineNo">467</span><a name="line.467"></a>
-<span class="sourceLineNo">468</span>      } else if (actualType instanceof GenericArrayType) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>         Class&lt;?&gt; cmpntType = (Class&lt;?&gt;)((GenericArrayType)actualType).getGenericComponentType();<a name="line.469"></a>
-<span class="sourceLineNo">470</span>         return Array.newInstance(cmpntType, 0).getClass();<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>      } else if (actualType instanceof TypeVariable) {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>         TypeVariable&lt;?&gt; typeVariable = (TypeVariable&lt;?&gt;)actualType;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>         List&lt;Class&lt;?&gt;&gt; nestedOuterTypes = new LinkedList&lt;Class&lt;?&gt;&gt;();<a name="line.474"></a>
-<span class="sourceLineNo">475</span>         for (Class&lt;?&gt; ec = oc.getEnclosingClass(); ec != null; ec = ec.getEnclosingClass()) {<a name="line.475"></a>
-<span class="sourceLineNo">476</span>            try {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>               Class&lt;?&gt; outerClass = oc.getClass();<a name="line.477"></a>
-<span class="sourceLineNo">478</span>               nestedOuterTypes.add(outerClass);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>               Map&lt;Type,Type&gt; outerTypeMap = new HashMap&lt;Type,Type&gt;();<a name="line.479"></a>
-<span class="sourceLineNo">480</span>               extractTypes(outerTypeMap, outerClass);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>               for (Map.Entry&lt;Type,Type&gt; entry : outerTypeMap.entrySet()) {<a name="line.481"></a>
-<span class="sourceLineNo">482</span>                  Type key = entry.getKey(), value = entry.getValue();<a name="line.482"></a>
-<span class="sourceLineNo">483</span>                  if (key instanceof TypeVariable) {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>                     TypeVariable&lt;?&gt; keyType = (TypeVariable&lt;?&gt;)key;<a name="line.484"></a>
-<span class="sourceLineNo">485</span>                     if (keyType.getName().equals(typeVariable.getName()) &amp;&amp; isInnerClass(keyType.getGenericDeclaration(), typeVariable.getGenericDeclaration())) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>                        if (value instanceof Class)<a name="line.486"></a>
-<span class="sourceLineNo">487</span>                           return (Class&lt;?&gt;)value;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>                        typeVariable = (TypeVariable&lt;?&gt;)entry.getValue();<a name="line.488"></a>
-<span class="sourceLineNo">489</span>                     }<a name="line.489"></a>
-<span class="sourceLineNo">490</span>                  }<a name="line.490"></a>
-<span class="sourceLineNo">491</span>               }<a name="line.491"></a>
-<span class="sourceLineNo">492</span>            } catch (Exception e) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>               throw new RuntimeException(e);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>            }<a name="line.494"></a>
-<span class="sourceLineNo">495</span>         }<a name="line.495"></a>
-<span class="sourceLineNo">496</span>         throw new FormattedRuntimeException("Could not resolve type: {0}", actualType);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      } else {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>         throw new FormattedRuntimeException("Invalid type found in resolveParameterType: {0}", actualType);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      }<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   }<a name="line.500"></a>
-<span class="sourceLineNo">501</span><a name="line.501"></a>
-<span class="sourceLineNo">502</span>   private static boolean isInnerClass(GenericDeclaration od, GenericDeclaration id) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      if (od instanceof Class &amp;&amp; id instanceof Class) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>         Class&lt;?&gt; oc = (Class&lt;?&gt;)od;<a name="line.504"></a>
-<span class="sourceLineNo">505</span>         Class&lt;?&gt; ic = (Class&lt;?&gt;)id;<a name="line.505"></a>
-<span class="sourceLineNo">506</span>         while ((ic = ic.getEnclosingClass()) != null)<a name="line.506"></a>
-<span class="sourceLineNo">507</span>            if (ic == oc)<a name="line.507"></a>
-<span class="sourceLineNo">508</span>               return true;<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      }<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      return false;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   }<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>   private static void extractTypes(Map&lt;Type,Type&gt; typeMap, Class&lt;?&gt; c) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      Type gs = c.getGenericSuperclass();<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      if (gs instanceof ParameterizedType) {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>         ParameterizedType pt = (ParameterizedType)gs;<a name="line.516"></a>
-<span class="sourceLineNo">517</span>         Type[] typeParameters = ((Class&lt;?&gt;)pt.getRawType()).getTypeParameters();<a name="line.517"></a>
-<span class="sourceLineNo">518</span>         Type[] actualTypeArguments = pt.getActualTypeArguments();<a name="line.518"></a>
-<span class="sourceLineNo">519</span>         for (int i = 0; i &lt; typeParameters.length; i++) {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>            if (typeMap.containsKey(actualTypeArguments[i]))<a name="line.520"></a>
-<span class="sourceLineNo">521</span>               actualTypeArguments[i] = typeMap.get(actualTypeArguments[i]);<a name="line.521"></a>
-<span class="sourceLineNo">522</span>            typeMap.put(typeParameters[i], actualTypeArguments[i]);<a name="line.522"></a>
-<span class="sourceLineNo">523</span>         }<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
-<span class="sourceLineNo">525</span>   }<a name="line.525"></a>
-<span class="sourceLineNo">526</span><a name="line.526"></a>
-<span class="sourceLineNo">527</span>   /**<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    * Finds a public method with the specified parameters.<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    *<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    * @param c The class to look for the method.<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    * @param name The method name.<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    * @param returnType<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    *    The return type of the method.<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    *    Can be a super type of the actual return type.<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    *    For example, if the actual return type is &lt;code&gt;CharSequence&lt;/code&gt;, then &lt;code&gt;Object&lt;/code&gt; will match but<a name="line.535"></a>
-<span class="sourceLineNo">536</span>    *    &lt;code&gt;String&lt;/code&gt; will not.<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    * @param parameterTypes<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    *    The parameter types of the method.<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    *    Can be subtypes of the actual parameter types.<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    *    For example, if the parameter type is &lt;code&gt;CharSequence&lt;/code&gt;, then &lt;code&gt;String&lt;/code&gt; will match but<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    *    &lt;code&gt;Object&lt;/code&gt; will not.<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    * @return The matched method, or &lt;jk&gt;null&lt;/jk&gt; if no match was found.<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    */<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   public static Method findPublicMethod(Class&lt;?&gt; c, String name, Class&lt;?&gt; returnType, Class&lt;?&gt;...parameterTypes) {<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      for (Method m : c.getMethods()) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>         if (isPublic(m) &amp;&amp; m.getName().equals(name)) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>            Class&lt;?&gt; rt = m.getReturnType();<a name="line.547"></a>
-<span class="sourceLineNo">548</span>            if (isParentClass(returnType, rt)) {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>               Class&lt;?&gt;[] pt = m.getParameterTypes();<a name="line.549"></a>
-<span class="sourceLineNo">550</span>               if (pt.length == parameterTypes.length) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>                  boolean matches = true;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>                  for (int i = 0; i &lt; pt.length; i++) {<a name="line.552"></a>
-<span class="sourceLineNo">553</span>                     if (! isParentClass(pt[i], parameterTypes[i])) {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>                        matches = false;<a name="line.554"></a>
-<span class="sourceLineNo">555</span>                        break;<a name="line.555"></a>
-<span class="sourceLineNo">556</span>                     }<a name="line.556"></a>
-<span class="sourceLineNo">557</span>                  }<a name="line.557"></a>
-<span class="sourceLineNo">558</span>                  if (matches)<a name="line.558"></a>
-<span class="sourceLineNo">559</span>                     return m;<a name="line.559"></a>
-<span class="sourceLineNo">560</span>               }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>            }<a name="line.561"></a>
-<span class="sourceLineNo">562</span>         }<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      }<a name="line.563"></a>
-<span class="sourceLineNo">564</span>      return null;<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   }<a name="line.565"></a>
-<span class="sourceLineNo">566</span><a name="line.566"></a>
-<span class="sourceLineNo">567</span>   /**<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    * Finds a public constructor with the specified parameters without throwing an exception.<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    *<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    * @param c The class to search for a constructor.<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    * @param parameterTypes<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    *    The parameter types in the constructor.<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    *    Can be subtypes of the actual constructor argument types.<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    * @return The matching constructor, or &lt;jk&gt;null&lt;/jk&gt; if constructor could not be found.<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    */<a name="line.575"></a>
-<span class="sourceLineNo">576</span>   @SuppressWarnings("unchecked")<a name="line.576"></a>
-<span class="sourceLineNo">577</span>   public static &lt;T&gt; Constructor&lt;T&gt; findPublicConstructor(Class&lt;T&gt; c, Class&lt;?&gt;...parameterTypes) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      for (Constructor&lt;?&gt; n : c.getConstructors()) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>         if (isPublic(n)) {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>            Class&lt;?&gt;[] pt = n.getParameterTypes();<a name="line.580"></a>
-<span class="sourceLineNo">581</span>            if (pt.length == parameterTypes.length) {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>               boolean matches = true;<a name="line.582"></a>
-<span class="sourceLineNo">583</span>               for (int i = 0; i &lt; pt.length; i++) {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>                  if (! isParentClass(pt[i], parameterTypes[i])) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>                     matches = false;<a name="line.585"></a>
-<span class="sourceLineNo">586</span>                     break;<a name="line.586"></a>
-<span class="sourceLineNo">587</span>                  }<a name="line.587"></a>
-<span class="sourceLineNo">588</span>               }<a name="line.588"></a>
-<span class="sourceLineNo">589</span>               if (matches)<a name="line.589"></a>
-<span class="sourceLineNo">590</span>                  return (Constructor&lt;T&gt;)n;<a name="line.590"></a>
-<span class="sourceLineNo">591</span>            }<a name="line.591"></a>
-<span class="sourceLineNo">592</span>         }<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      }<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      return null;<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   }<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>   /**<a name="line.597"></a>
-<span class="sourceLineNo">598</span>    * Finds the public constructor that can take in the specified arguments.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>    *<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    * @param c The class we're trying to construct.<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    * @param args The arguments we want to pass into the constructor.<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    * @return<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    *    The constructor, or &lt;jk&gt;null&lt;/jk&gt; if a public constructor could not be found that takes in the specified<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    *    arguments.<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    */<a name="line.605"></a>
-<span class="sourceLineNo">606</span>   public static &lt;T&gt; Constructor&lt;T&gt; findPublicConstructor(Class&lt;T&gt; c, Object...args) {<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      return findPublicConstructor(c, getClasses(args));<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   }<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>   /**<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    * Returns the class types for the specified arguments.<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    *<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    * @param args The objects we're getting the classes of.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    * @return The classes of the arguments.<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    */<a name="line.615"></a>
-<span class="sourceLineNo">616</span>   public static Class&lt;?&gt;[] getClasses(Object...args) {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>      Class&lt;?&gt;[] pt = new Class&lt;?&gt;[args.length];<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      for (int i = 0; i &lt; args.length; i++)<a name="line.618"></a>
-<span class="sourceLineNo">619</span>         pt[i] = args[i] == null ? null : args[i].getClass();<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      return pt;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>   }<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>// This code is inherently unsafe (but still potentially useful?)<a name="line.623"></a>
-<span class="sourceLineNo">624</span>//<a name="line.624"></a>
-<span class="sourceLineNo">625</span>// /**<a name="line.625"></a>
-<span class="sourceLineNo">626</span>//  * Converts class name strings to ClassMeta objects.<a name="line.626"></a>
-<span class="sourceLineNo">627</span>//  *<a name="line.627"></a>
-<span class="sourceLineNo">628</span>//  * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.628"></a>
-<span class="sourceLineNo">629</span>//  * &lt;ul&gt;<a name="line.629"></a>
-<span class="sourceLineNo">630</span>//  *    &lt;li&gt;&lt;js&gt;"java.lang.String"&lt;/js&gt;<a name="line.630"></a>
-<span class="sourceLineNo">631</span>//  *    &lt;li&gt;&lt;js&gt;"com.foo.sample.MyBean[]"&lt;/js&gt;<a name="line.631"></a>
-<span class="sourceLineNo">632</span>//  *    &lt;li&gt;&lt;js&gt;"java.util.HashMap&lt;java.lang.String,java.lang.Integer&gt;"&lt;/js&gt;<a name="line.632"></a>
-<span class="sourceLineNo">633</span>//  *    &lt;li&gt;&lt;js&gt;"[Ljava.lang.String;"&lt;/js&gt; (i.e. the value of &lt;code&gt;String[].&lt;jk&gt;class&lt;/jk&gt;.getName()&lt;/code&gt;)<a name="line.633"></a>
-<span class="sourceLineNo">634</span>//  * &lt;/ul&gt;<a name="line.634"></a>
-<span class="sourceLineNo">635</span>//  *<a name="line.635"></a>
-<span class="sourceLineNo">636</span>//  * @param s The class name.<a name="line.636"></a>
-<span class="sourceLineNo">637</span>//  * @return The ClassMeta corresponding to the class name string.<a name="line.637"></a>
-<span class="sourceLineNo">638</span>//  */<a name="line.638"></a>
-<span class="sourceLineNo">639</span>// protected final ClassMeta&lt;?&gt; getClassMetaFromString(String s) {<a name="line.639"></a>
-<span class="sourceLineNo">640</span>//    int d = 0;<a name="line.640"></a>
-<span class="sourceLineNo">641</span>//    if (s == null || s.isEmpty())<a name="line.641"></a>
-<span class="sourceLineNo">642</span>//       return null;<a name="line.642"></a>
-<span class="sourceLineNo">643</span>//<a name="line.643"></a>
-<span class="sourceLineNo">644</span>//    // Check for Class.getName() on array class types.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>//    if (s.charAt(0) == '[') {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>//       try {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>//          return getClassMeta(findClass(s));<a name="line.647"></a>
-<span class="sourceLineNo">648</span>//       } catch (ClassNotFoundException e) {<a name="line.648"></a>
-<span class="sourceLineNo">649</span>//          throw new RuntimeException(e);<a name="line.649"></a>
-<span class="sourceLineNo">650</span>//       }<a name="line.650"></a>
-<span class="sourceLineNo">651</span>//    }<a name="line.651"></a>
-<span class="sourceLineNo">652</span>//<a name="line.652"></a>
-<span class="sourceLineNo">653</span>//    int i1 = 0;<a name="line.653"></a>
-<span class="sourceLineNo">654</span>//    int i2 = 0;<a name="line.654"></a>
-<span class="sourceLineNo">655</span>//    int dim = 0;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>//    List&lt;ClassMeta&lt;?&gt;&gt; p = null;<a name="line.656"></a>
-<span class="sourceLineNo">657</span>//    for (int i = 0; i &lt; s.length(); i++) {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>//       char c = s.charAt(i);<a name="line.658"></a>
-<span class="sourceLineNo">659</span>//       if (c == '&lt;') {<a name="line.659"></a>
-<span class="sourceLineNo">660</span>//          if (d == 0) {<a name="line.660"></a>
-<span class="sourceLineNo">661</span>//             i1 = i;<a name="line.661"></a>
-<span class="sourceLineNo">662</span>//             i2 = i+1;<a name="line.662"></a>
-<span class="sourceLineNo">663</span>//             p = new LinkedList&lt;ClassMeta&lt;?&gt;&gt;();<a name="line.663"></a>
-<span class="sourceLineNo">664</span>//          }<a name="line.664"></a>
-<span class="sourceLineNo">665</span>//          d++;<a name="line.665"></a>
-<span class="sourceLineNo">666</span>//       } else if (c == '&gt;') {<a name="line.666"></a>
-<span class="sourceLineNo">667</span>//          d--;<a name="line.667"></a>
-<span class="sourceLineNo">668</span>//          if (d == 0 &amp;&amp; p != null)<a name="line.668"></a>
-<span class="sourceLineNo">669</span>//             p.add(getClassMetaFromString(s.substring(i2, i)));<a name="line.669"></a>
-<span class="sourceLineNo">670</span>//       } else if (c == ',' &amp;&amp; d == 1) {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>//          if (p != null)<a name="line.671"></a>
-<span class="sourceLineNo">672</span>//             p.add(getClassMetaFromString(s.substring(i2, i)));<a name="line.672"></a>
-<span class="sourceLineNo">673</span>//          i2 = i+1;<a name="line.673"></a>
-<span class="sourceLineNo">674</span>//       }<a name="line.674"></a>
-<span class="sourceLineNo">675</span>//       if (c == '[') {<a name="line.675"></a>
-<span class="sourceLineNo">676</span>//          if (i1 == 0)<a name="line.676"></a>
-<span class="sourceLineNo">677</span>//             i1 = i;<a name="line.677"></a>
-<span class="sourceLineNo">678</span>//          dim++;<a name="line.678"></a>
-<span class="sourceLineNo">679</span>//       }<a name="line.679"></a>
-<span class="sourceLineNo">680</span>//    }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>//    if (i1 == 0)<a name="line.681"></a>
-<span class="sourceLineNo">682</span>//       i1 = s.length();<a name="line.682"></a>
-<span class="sourceLineNo">683</span>//    try {<a name="line.683"></a>
-<span class="sourceLineNo">684</span>//       String name = s.substring(0, i1).trim();<a name="line.684"></a>
-<span class="sourceLineNo">685</span>//       char x = name.charAt(0);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>//       Class&lt;?&gt; c = null;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>//       if (x &gt;= 'b' &amp;&amp; x &lt;= 's') {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>//          if (x == 'b' &amp;&amp; name.equals("boolean"))<a name="line.688"></a>
-<span class="sourceLineNo">689</span>//             c = boolean.class;<a name="line.689"></a>
-<span class="sourceLineNo">690</span>//          else if (x == 'b' &amp;&amp; name.equals("byte"))<a name="line.690"></a>
-<span class="sourceLineNo">691</span>//             c = byte.class;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>//          else if (x == 'c' &amp;&amp; name.equals("char"))<a name="line.692"></a>
-<span class="sourceLineNo">693</span>//             c = char.class;<a name="line.693"></a>
-<span class="sourceLineNo">694</span>//          else if (x == 'd' &amp;&amp; name.equals("double"))<a name="line.694"></a>
-<span class="sourceLineNo">695</span>//             c = double.class;<a name="line.695"></a>
-<span class="sourceLineNo">696</span>//          else if (x == 'i' &amp;&amp; name.equals("int"))<a name="line.696"></a>
-<span class="sourceLineNo">697</span>//             c = int.class;<a name="line.697"></a>
-<span class="sourceLineNo">698</span>//          else if (x == 'l' &amp;&amp; name.equals("long"))<a name="line.698"></a>
-<span class="sourceLineNo">699</span>//             c = long.class;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>//          else if (x == 's' &amp;&amp; name.equals("short"))<a name="line.700"></a>
-<span class="sourceLineNo">701</span>//             c = short.class;<a name="line.701"></a>
-<span class="sourceLineNo">702</span>//          else<a name="line.702"></a>
-<span class="sourceLineNo">703</span>//             c = findClass(name);<a name="line.703"></a>
-<span class="sourceLineNo">704</span>//       } else {<a name="line.704"></a>
-<span class="sourceLineNo">705</span>//          c = findClass(name);<a name="line.705"></a>
-<span class="sourceLineNo">706</span>//       }<a name="line.706"></a>
-<span class="sourceLineNo">707</span>//<a name="line.707"></a>
-<span class="sourceLineNo">708</span>//       ClassMeta&lt;?&gt; cm = getClassMeta(c);<a name="line.708"></a>
-<span class="sourceLineNo">709</span>//<a name="line.709"></a>
-<span class="sourceLineNo">710</span>//       if (p != null) {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>//          if (cm.isMap())<a name="line.711"></a>
-<span class="sourceLineNo">712</span>//             cm = new ClassMeta(c, this).setKeyType(p.get(0)).setValueType(p.get(1));<a name="line.712"></a>
-<span class="sourceLineNo">713</span>//          if (cm.isCollection())<a name="line.713"></a>
-<span class="sourceLineNo">714</span>//             cm = new ClassMeta(c, this).setElementType(p.get(0));<a name="line.714"></a>
-<span class="sourceLineNo">715</span>//       }<a name="line.715"></a>
-<span class="sourceLineNo">716</span>//<a name="line.716"></a>
-<span class="sourceLineNo">717</span>//       while (dim &gt; 0) {<a name="line.717"></a>
-<span class="sourceLineNo">718</span>//          cm = new ClassMeta(Array.newInstance(cm.getInnerClass(), 0).getClass(), this);<a name="line.718"></a>
-<span class="sourceLineNo">719</span>//          dim--;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>//       }<a name="line.720"></a>
-<span class="sourceLineNo">721</span>//<a name="line.721"></a>
-<span class="sourceLineNo">722</span>//       return cm;<a name="line.722"></a>
-<span class="sourceLineNo">723</span>//    } catch (ClassNotFoundException e) {<a name="line.723"></a>
-<span class="sourceLineNo">724</span>//       throw new RuntimeException(e);<a name="line.724"></a>
-<span class="sourceLineNo">725</span>//    }<a name="line.725"></a>
-<span class="sourceLineNo">726</span>// }<a name="line.726"></a>
+<span class="sourceLineNo">468</span>      if (typeMap.containsKey(actualType))<a name="line.468"></a>
+<span class="sourceLineNo">469</span>         actualType = typeMap.get(actualType);<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>      if (actualType instanceof Class) {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         return (Class&lt;?&gt;)actualType;<a name="line.472"></a>
+<span class="sourceLineNo">473</span><a name="line.473"></a>
+<span class="sourceLineNo">474</span>      } else if (actualType instanceof GenericArrayType) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>         Class&lt;?&gt; cmpntType = (Class&lt;?&gt;)((GenericArrayType)actualType).getGenericComponentType();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>         return Array.newInstance(cmpntType, 0).getClass();<a name="line.476"></a>
+<span class="sourceLineNo">477</span><a name="line.477"></a>
+<span class="sourceLineNo">478</span>      } else if (actualType instanceof TypeVariable) {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>         TypeVariable&lt;?&gt; typeVariable = (TypeVariable&lt;?&gt;)actualType;<a name="line.479"></a>
+<span class="sourceLineNo">480</span>         List&lt;Class&lt;?&gt;&gt; nestedOuterTypes = new LinkedList&lt;Class&lt;?&gt;&gt;();<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         for (Class&lt;?&gt; ec = oc.getEnclosingClass(); ec != null; ec = ec.getEnclosingClass()) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>            try {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>               Class&lt;?&gt; outerClass = oc.getClass();<a name="line.483"></a>
+<span class="sourceLineNo">484</span>               nestedOuterTypes.add(outerClass);<a name="line.484"></a>
+<span class="sourceLineNo">485</span>               Map&lt;Type,Type&gt; outerTypeMap = new HashMap&lt;Type,Type&gt;();<a name="line.485"></a>
+<span class="sourceLineNo">486</span>               extractTypes(outerTypeMap, outerClass);<a name="line.486"></a>
+<span class="sourceLineNo">487</span>               for (Map.Entry&lt;Type,Type&gt; entry : outerTypeMap.entrySet()) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                  Type key = entry.getKey(), value = entry.getValue();<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                  if (key instanceof TypeVariable) {<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                     TypeVariable&lt;?&gt; keyType = (TypeVariable&lt;?&gt;)key;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                     if (keyType.getName().equals(typeVariable.getName()) &amp;&amp; isInnerClass(keyType.getGenericDeclaration(), typeVariable.getGenericDeclaration())) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                        if (value instanceof Class)<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                           return (Class&lt;?&gt;)value;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                        typeVariable = (TypeVariable&lt;?&gt;)entry.getValue();<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                     }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                  }<a name="line.496"></a>
+<span class="sourceLineNo">497</span>               }<a name="line.497"></a>
+<span class="sourceLineNo">498</span>            } catch (Exception e) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>               throw new RuntimeException(e);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>            }<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         }<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         throw new FormattedRuntimeException("Could not resolve type: {0}", actualType);<a name="line.502"></a>
+<span class="sourceLineNo">503</span>      } else {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         throw new FormattedRuntimeException("Invalid type found in resolveParameterType: {0}", actualType);<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      }<a name="line.505"></a>
+<span class="sourceLineNo">506</span>   }<a name="line.506"></a>
+<span class="sourceLineNo">507</span><a name="line.507"></a>
+<span class="sourceLineNo">508</span>   private static boolean isInnerClass(GenericDeclaration od, GenericDeclaration id) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>      if (od instanceof Class &amp;&amp; id instanceof Class) {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>         Class&lt;?&gt; oc = (Class&lt;?&gt;)od;<a name="line.510"></a>
+<span class="sourceLineNo">511</span>         Class&lt;?&gt; ic = (Class&lt;?&gt;)id;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>         while ((ic = ic.getEnclosingClass()) != null)<a name="line.512"></a>
+<span class="sourceLineNo">513</span>            if (ic == oc)<a name="line.513"></a>
+<span class="sourceLineNo">514</span>               return true;<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
+<span class="sourceLineNo">516</span>      return false;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>   }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>   private static void extractTypes(Map&lt;Type,Type&gt; typeMap, Class&lt;?&gt; c) {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      Type gs = c.getGenericSuperclass();<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      if (gs instanceof ParameterizedType) {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         ParameterizedType pt = (ParameterizedType)gs;<a name="line.522"></a>
+<span class="sourceLineNo">523</span>         Type[] typeParameters = ((Class&lt;?&gt;)pt.getRawType()).getTypeParameters();<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         Type[] actualTypeArguments = pt.getActualTypeArguments();<a name="line.524"></a>
+<span class="sourceLineNo">525</span>         for (int i = 0; i &lt; typeParameters.length; i++) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>            if (typeMap.containsKey(actualTypeArguments[i]))<a name="line.526"></a>
+<span class="sourceLineNo">527</span>               actualTypeArguments[i] = typeMap.get(actualTypeArguments[i]);<a name="line.527"></a>
+<span class="sourceLineNo">528</span>            typeMap.put(typeParameters[i], actualTypeArguments[i]);<a name="line.528"></a>
+<span class="sourceLineNo">529</span>         }<a name="line.529"></a>
+<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
+<span class="sourceLineNo">531</span>   }<a name="line.531"></a>
+<span class="sourceLineNo">532</span><a name="line.532"></a>
+<span class="sourceLineNo">533</span>   /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>    * Finds a public method with the specified parameters.<a name="line.534"></a>
+<span class="sourceLineNo">535</span>    *<a name="line.535"></a>
+<span class="sourceLineNo">536</span>    * @param c The class to look for the method.<a name="line.536"></a>
+<span class="sourceLineNo">537</span>    * @param name The method name.<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    * @param returnType<a name="line.538"></a>
+<span class="sourceLineNo">539</span>    *    The return type of the method.<a name="line.539"></a>
+<span class="sourceLineNo">540</span>    *    Can be a super type of the actual return type.<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    *    For example, if the actual return type is &lt;code&gt;CharSequence&lt;/code&gt;, then &lt;code&gt;Object&lt;/code&gt; will match but<a name="line.541"></a>
+<span class="sourceLineNo">542</span>    *    &lt;code&gt;String&lt;/code&gt; will not.<a name="line.542"></a>
+<span class="sourceLineNo">543</span>    * @param parameterTypes<a name="line.543"></a>
+<span class="sourceLineNo">544</span>    *    The parameter types of the method.<a name="line.544"></a>
+<span class="sourceLineNo">545</span>    *    Can be subtypes of the actual parameter types.<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    *    For example, if the parameter type is &lt;code&gt;CharSequence&lt;/code&gt;, then &lt;code&gt;String&lt;/code&gt; will match but<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    *    &lt;code&gt;Object&lt;/code&gt; will not.<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    * @return The matched method, or &lt;jk&gt;null&lt;/jk&gt; if no match was found.<a name="line.548"></a>
+<span class="sourceLineNo">549</span>    */<a name="line.549"></a>
+<span class="sourceLineNo">550</span>   public static Method findPublicMethod(Class&lt;?&gt; c, String name, Class&lt;?&gt; returnType, Class&lt;?&gt;...parameterTypes) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>      for (Method m : c.getMethods()) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         if (isPublic(m) &amp;&amp; m.getName().equals(name)) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>            Class&lt;?&gt; rt = m.getReturnType();<a name="line.553"></a>
+<span class="sourceLineNo">554</span>            if (isParentClass(returnType, rt)) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>               Class&lt;?&gt;[] pt = m.getParameterTypes();<a name="line.555"></a>
+<span class="sourceLineNo">556</span>               if (pt.length == parameterTypes.length) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                  boolean matches = true;<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                  for (int i = 0; i &lt; pt.length; i++) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                     if (! isParentClass(pt[i], parameterTypes[i])) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        matches = false;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                        break;<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                     }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                  }<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                  if (matches)<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                     return m;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>               }<a name="line.566"></a>
+<span class="sourceLineNo">567</span>            }<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         }<a name="line.568"></a>
+<span class="sourceLineNo">569</span>      }<a name="line.569"></a>
+<span class="sourceLineNo">570</span>      return null;<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>   /**<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    * Finds a public constructor with the specified parameters without throwing an exception.<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    *<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    * @param c The class to search for a constructor.<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    * @param parameterTypes<a name="line.577"></a>
+<span class="sourceLineNo">578</span>    *    The parameter types in the constructor.<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    *    Can be subtypes of the actual constructor argument types.<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    * @return The matching constructor, or &lt;jk&gt;null&lt;/jk&gt; if constructor could not be found.<a name="line.580"></a>
+<span class="sourceLineNo">581</span>    */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>   @SuppressWarnings("unchecked")<a name="line.582"></a>
+<span class="sourceLineNo">583</span>   public static &lt;T&gt; Constructor&lt;T&gt; findPublicConstructor(Class&lt;T&gt; c, Class&lt;?&gt;...parameterTypes) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>      for (Constructor&lt;?&gt; n : c.getConstructors()) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         if (isPublic(n)) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>            Class&lt;?&gt;[] pt = n.getParameterTypes();<a name="line.586"></a>
+<span class="sourceLineNo">587</span>            if (pt.length == parameterTypes.length) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>               boolean matches = true;<a name="line.588"></a>
+<span class="sourceLineNo">589</span>               for (int i = 0; i &lt; pt.length; i++) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                  if (! isParentClass(pt[i], parameterTypes[i])) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                     matches = false;<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                     break;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                  }<a name="line.593"></a>
+<span class="sourceLineNo">594</span>               }<a name="line.594"></a>
+<span class="sourceLineNo">595</span>               if (matches)<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                  return (Constructor&lt;T&gt;)n;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>            }<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>      }<a name="line.599"></a>
+<span class="sourceLineNo">600</span>      return null;<a name="line.600"></a>
+<span class="sourceLineNo">601</span>   }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>   /**<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    * Finds the public constructor that can take in the specified arguments.<a name="line.604"></a>
+<span class="sourceLineNo">605</span>    *<a name="line.605"></a>
+<span class="sourceLineNo">606</span>    * @param c The class we're trying to construct.<a name="line.606"></a>
+<span class="sourceLineNo">607</span>    * @param args The arguments we want to pass into the constructor.<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    * @return<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    *    The constructor, or &lt;jk&gt;null&lt;/jk&gt; if a public constructor could not be found that takes in the specified<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    *    arguments.<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    */<a name="line.611"></a>
+<span class="sourceLineNo">612</span>   public static &lt;T&gt; Constructor&lt;T&gt; findPublicConstructor(Class&lt;T&gt; c, Object...args) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>      return findPublicConstructor(c, getClasses(args));<a name="line.613"></a>
+<span class="sourceLineNo">614</span>   }<a name="line.614"></a>
+<span class="sourceLineNo">615</span><a name="line.615"></a>
+<span class="sourceLineNo">616</span>   /**<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    * Returns the class types for the specified arguments.<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    *<a name="line.618"></a>
+<span class="sourceLineNo">619</span>    * @param args The objects we're getting the classes of.<a name="line.619"></a>
+<span class="sourceLineNo">620</span>    * @return The classes of the arguments.<a name="line.620"></a>
+<span class="sourceLineNo">621</span>    */<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   public static Class&lt;?&gt;[] getClasses(Object...args) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>      Class&lt;?&gt;[] pt = new Class&lt;?&gt;[args.length];<a name="line.623"></a>
+<span class="sourceLineNo">624</span>      for (int i = 0; i &lt; args.length; i++)<a name="line.624"></a>
+<span class="sourceLineNo">625</span>         pt[i] = args[i] == null ? null : args[i].getClass();<a name="line.625"></a>
+<span class="sourceLineNo">626</span>      return pt;<a name="line.626"></a>
+<span class="sourceLineNo">627</span>   }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>// This code is inherently unsafe (but still potentially useful?)<a name="line.629"></a>
+<span class="sourceLineNo">630</span>//<a name="line.630"></a>
+<span class="sourceLineNo">631</span>// /**<a name="line.631"></a>
+<span class="sourceLineNo">632</span>//  * Converts class name strings to ClassMeta objects.<a name="line.632"></a>
+<span class="sourceLineNo">633</span>//  *<a name="line.633"></a>
+<span class="sourceLineNo">634</span>//  * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;<a name="line.634"></a>
+<span class="sourceLineNo">635</span>//  * &lt;ul&gt;<a name="line.635"></a>
+<span class="sourceLineNo">636</span>//  *    &lt;li&gt;&lt;js&gt;"java.lang.String"&lt;/js&gt;<a name="line.636"></a>
+<span class="sourceLineNo">637</span>//  *    &lt;li&gt;&lt;js&gt;"com.foo.sample.MyBean[]"&lt;/js&gt;<a name="line.637"></a>
+<span class="sourceLineNo">638</span>//  *    &lt;li&gt;&lt;js&gt;"java.util.HashMap&lt;java.lang.String,java.lang.Integer&gt;"&lt;/js&gt;<a name="line.638"></a>
+<span class="sourceLineNo">639</span>//  *    &lt;li&gt;&lt;js&gt;"[Ljava.lang.String;"&lt;/js&gt; (i.e. the value of &lt;code&gt;String[].&lt;jk&gt;class&lt;/jk&gt;.getName()&lt;/code&gt;)<a name="line.639"></a>
+<span class="sourceLineNo">640</span>//  * &lt;/ul&gt;<a name="line.640"></a>
+<span class="sourceLineNo">641</span>//  *<a name="line.641"></a>
+<span class="sourceLineNo">642</span>//  * @param s The class name.<a name="line.642"></a>
+<span class="sourceLineNo">643</span>//  * @return The ClassMeta corresponding to the class name string.<a name="line.643"></a>
+<span class="sourceLineNo">644</span>//  */<a name="line.644"></a>
+<span class="sourceLineNo">645</span>// protected final ClassMeta&lt;?&gt; getClassMetaFromString(String s) {<a name="line.645"></a>
+<span class="sourceLineNo">646</span>//    int d = 0;<a name="line.646"></a>
+<span class="sourceLineNo">647</span>//    if (s == null || s.isEmpty())<a name="line.647"></a>
+<span class="sourceLineNo">648</span>//       return null;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>//<a name="line.649"></a>
+<span class="sourceLineNo">650</span>//    // Check for Class.getName() on array class types.<a name="line.650"></a>
+<span class="sourceLineNo">651</span>//    if (s.charAt(0) == '[') {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>//       try {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>//          return getClassMeta(findClass(s));<a name="line.653"></a>
+<span class="sourceLineNo">654</span>//       } catch (ClassNotFoundException e) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>//          throw new RuntimeException(e);<a name="line.655"></a>
+<span class="sourceLineNo">656</span>//       }<a name="line.656"></a>
+<span class="sourceLineNo">657</span>//    }<a name="line.657"></a>
+<span class="sourceLineNo">658</span>//<a name="line.658"></a>
+<span class="sourceLineNo">659</span>//    int i1 = 0;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>//    int i2 = 0;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>//    int dim = 0;<a name="line.661"></a>
+<span class="sourceLineNo">662</span>//    List&lt;ClassMeta&lt;?&gt;&gt; p = null;<a name="line.662"></a>
+<span class="sourceLineNo">663</span>//    for (int i = 0; i &lt; s.length(); i++) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>//       char c = s.charAt(i);<a name="line.664"></a>
+<span class="sourceLineNo">665</span>//       if (c == '&lt;') {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>//          if (d == 0) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>//             i1 = i;<a name="line.667"></a>
+<span class="sourceLineNo">668</span>//             i2 = i+1;<a name="line.668"></a>
+<span class="sourceLineNo">669</span>//             p = new LinkedList&lt;ClassMeta&lt;?&gt;&gt;();<a name="line.669"></a>
+<span class="sourceLineNo">670</span>//          }<a name="line.670"></a>
+<span class="sourceLineNo">671</span>//          d++;<a name="line.671"></a>
+<span class="sourceLineNo">672</span>//       } else if (c == '&gt;') {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>//          d--;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>//          if (d == 0 &amp;&amp; p != null)<a name="line.674"></a>
+<span class="sourceLineNo">675</span>//             p.add(getClassMetaFromString(s.substring(i2, i)));<a name="line.675"></a>
+<span class="sourceLineNo">676</span>//       } else if (c == ',' &amp;&amp; d == 1) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>//          if (p != null)<a name="line.677"></a>
+<span class="sourceLineNo">678</span>//             p.add(getClassMetaFromString(s.substring(i2, i)));<a name="line.678"></a>
+<span class="sourceLineNo">679</span>//          i2 = i+1;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>//       }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>//       if (c == '[') {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>//          if (i1 == 0)<a name="line.682"></a>
+<span class="sourceLineNo">683</span>//             i1 = i;<a name="line.683"></a>
+<span class="sourceLineNo">684</span>//          dim++;<a name="line.684"></a>
+<span class="sourceLineNo">685</span>//       }<a name="line.685"></a>
+<span class="sourceLineNo">686</span>//    }<a name="line.686"></a>
+<span class="sourceLineNo">687</span>//    if (i1 == 0)<a name="line.687"></a>
+<span class="sourceLineNo">688</span>//       i1 = s.length();<a name="line.688"></a>
+<span class="sourceLineNo">689</span>//    try {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>//       String name = s.substring(0, i1).trim();<a name="line.690"></a>
+<span class="sourceLineNo">691</span>//       char x = name.charAt(0);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>//       Class&lt;?&gt; c = null;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>//       if (x &gt;= 'b' &amp;&amp; x &lt;= 's') {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>//          if (x == 'b' &amp;&amp; name.equals("boolean"))<a name="line.694"></a>
+<span class="sourceLineNo">695</span>//             c = boolean.class;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>//          else if (x == 'b' &amp;&amp; name.equals("byte"))<a name="line.696"></a>
+<span class="sourceLineNo">697</span>//             c = byte.class;<a name="line.697"></a>
+<span class="sourceLineNo">698</span>//          else if (x == 'c' &amp;&amp; name.equals("char"))<a name="line.698"></a>
+<span class="sourceLineNo">699</span>//             c = char.class;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>//          else if (x == 'd' &amp;&amp; name.equals("double"))<a name="line.700"></a>
+<span class="sourceLineNo">701</span>//             c = double.class;<a name="line.701"></a>
+<span class="sourceLineNo">702</span>//          else if (x == 'i' &amp;&amp; name.equals("int"))<a name="line.702"></a>
+<span class="sourceLineNo">703</span>//             c = int.class;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>//          else if (x == 'l' &amp;&amp; name.equals("long"))<a name="line.704"></a>
+<span class="sourceLineNo">705</span>//             c = long.class;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>//          else if (x == 's' &amp;&amp; name.equals("short"))<a name="line.706"></a>
+<span class="sourceLineNo">707</span>//             c = short.class;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>//          else<a name="line.708"></a>
+<span class="sourceLineNo">709</span>//             c = findClass(name);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>//       } else {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>//          c = findClass(name);<a name="line.711"></a>
+<span class="sourceLineNo">712</span>//       }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>//<a name="line.713"></a>
+<span class="sourceLineNo">714</span>//       ClassMeta&lt;?&gt; cm = getClassMeta(c);<a name="line.714"></a>
+<span class="sourceLineNo">715</span>//<a name="line.715"></a>
+<span class="sourceLineNo">716</span>//       if (p != null) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>//          if (cm.isMap())<a name="line.717"></a>
+<span class="sourceLineNo">718</span>//             cm = new ClassMeta(c, this).setKeyType(p.get(0)).setValueType(p.get(1));<a name="line.718"></a>
+<span class="sourceLineNo">719</span>//          if (cm.isCollection())<a name="line.719"></a>
+<span class="sourceLineNo">720</span>//             cm = new ClassMeta(c, this).setElementType(p.get(0));<a name="line.720"></a>
+<span class="sourceLineNo">721</span>//       }<a name="line.721"></a>
+<span class="sourceLineNo">722</span>//<a name="line.722"></a>
+<span class="sourceLineNo">723</span>//       while (dim &gt; 0) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>//          cm = new ClassMeta(Array.newInstance(cm.getInnerClass(), 0).getClass(), this);<a name="line.724"></a>
+<span class="sourceLineNo">725</span>//          dim--;<a name="line.725"></a>
+<span class="sourceLineNo">726</span>//       }<a name="line.726"></a>
 <span class="sourceLineNo">727</span>//<a name="line.727"></a>
-<span class="sourceLineNo">728</span>// private Class&lt;?&gt; findClass(String name) throws ClassNotFoundException {<a name="line.728"></a>
-<span class="sourceLineNo">729</span>//    return classLoader == null ? Class.forName(name) : Class.forName(name, true, classLoader);<a name="line.729"></a>
-<span class="sourceLineNo">730</span>// }<a name="line.730"></a>
-<span class="sourceLineNo">731</span><a name="line.731"></a>
-<span class="sourceLineNo">732</span>   /**<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    * Returns a {@link MethodInfo} bean that describes the specified method.<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    *<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    * @param m The method to describe.<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    * @return The bean with information about the method.<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    */<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   public static MethodInfo getMethodInfo(Method m) {<a name="line.738"></a>
-<span class="sourceLineNo">739</span>      return new MethodInfo(m);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>   }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>   /**<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    * Returns {@link MethodInfo} beans that describe the specified methods.<a name="line.743"></a>
-<span class="sourceLineNo">744</span>    *<a name="line.744"></a>
-<span class="sourceLineNo">745</span>    * @param m The methods to describe.<a name="line.745"></a>
-<span class="sourceLineNo">746</span>    * @return The beans with information about the methods.<a name="line.746"></a>
-<span class="sourceLineNo">747</span>    */<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   public static MethodInfo[] getMethodInfo(Collection&lt;Method&gt; m) {<a name="line.748"></a>
-<span class="sourceLineNo">749</span>      MethodInfo[] mi = new MethodInfo[m.size()];<a name="line.749"></a>
-<span class="sourceLineNo">750</span>      int i = 0;<a name="line.750"></a>
-<span class="sourceLineNo">751</span>      for (Method mm : m)<a name="line.751"></a>
-<span class="sourceLineNo">752</span>         mi[i++] = getMethodInfo(mm);<a name="line.752"></a>
-<span class="sourceLineNo">753</span>      return mi;<a name="line.753"></a>
-<span class="sourceLineNo">754</span>   }<a name="line.754"></a>
-<span class="sourceLineNo">755</span><a name="line.755"></a>
-<span class="sourceLineNo">756</span>   /**<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    * Simple bean that shows the name, parameter types, and return type of a method.<a name="line.757"></a>
-<span class="sourceLineNo">758</span>    */<a name="line.758"></a>
-<span class="sourceLineNo">759</span>   @SuppressWarnings("javadoc")<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   public static class MethodInfo {<a name="line.760"></a>
-<span class="sourceLineNo">761</span>      public final String methodName;<a name="line.761"></a>
-<span class="sourceLineNo">762</span>      public final String[] parameterTypes;<a name="line.762"></a>
-<span class="sourceLineNo">763</span>      public final String returnType;<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>      MethodInfo(Method m) {<a name="line.765"></a>
-<span class="sourceLineNo">766</span>         methodName = m.getName();<a name="line.766"></a>
-<span class="sourceLineNo">767</span>         Type[] pt = m.getGenericParameterTypes();<a name="line.767"></a>
-<span class="sourceLineNo">768</span>         parameterTypes = new String[pt.length];<a name="line.768"></a>
-<span class="sourceLineNo">769</span>         for (int i  = 0; i &lt; pt.length; i++)<a name="line.769"></a>
-<span class="sourceLineNo">770</span>            parameterTypes[i] = BeanContext.DEFAULT.getClassMeta(pt[i]).toString();<a name="line.770"></a>
-<span class="sourceLineNo">771</span>         returnType = BeanContext.DEFAULT.getClassMeta(m.getGenericReturnType()).toString();<a name="line.771"></a>
-<span class="sourceLineNo">772</span>      }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>   }<a name="line.773"></a>
-<span class="sourceLineNo">774</span><a name="line.774"></a>
-<span class="sourceLineNo">775</span>   /**<a name="line.775"></a>
-<span class="sourceLineNo">776</span>    * Creates an instance of the specified class without throwing exceptions.<a name="line.776"></a>
-<span class="sourceLineNo">777</span>    *<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    * @param c The class to cast to.<a name="line.778"></a>
-<span class="sourceLineNo">779</span>    * @param c2<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    *    The class to instantiate.<a name="line.780"></a>
-<span class="sourceLineNo">781</span>    *    Can also be an instance of the class.<a name="line.781"></a>
-<span class="sourceLineNo">782</span>    * @param args The arguments to pass to the constructor.<a name="line.782"></a>
-<span class="sourceLineNo">783</span>    * @return The new class instance, or &lt;jk&gt;null&lt;/jk&gt; if the class was &lt;jk&gt;null&lt;/jk&gt; or is abstract or an interface.<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    * @throws RuntimeException if constructor could not be found or called.<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    */<a name="line.785"></a>
-<span class="sourceLineNo">786</span>   public static &lt;T&gt; T newInstance(Class&lt;T&gt; c, Object c2, Object...args) {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>      return newInstanceFromOuter(null, c, c2, args);<a name="line.787"></a>
-<span class="sourceLineNo">788</span>   }<a name="line.788"></a>
-<span class="sourceLineNo">789</span><a name="line.789"></a>
-<span class="sourceLineNo">790</span>   /**<a name="line.790"></a>
-<span class="sourceLineNo">791</span>    * Creates an instance of the specified class from within the context of another object.<a name="line.791"></a>
-<span class="sourceLineNo">792</span>    *<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    * @param outer<a name="line.793"></a>
-<span class="sourceLineNo">794</span>    *    The outer object.<a name="line.794"></a>
-<span class="sourceLineNo">795</span>    *    Can be &lt;jk&gt;null&lt;/jk&gt;.<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    * @param c The class to cast to.<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    * @param c2<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    *    The class to instantiate.<a name="line.798"></a>
-<span class="sourceLineNo">799</span>    *    Can also be an instance of the class.<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    * @param args The arguments to pass to the constructor.<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    * @return The new class instance, or &lt;jk&gt;null&lt;/jk&gt; if the class was &lt;jk&gt;null&lt;/jk&gt; or is abstract or an interface.<a name="line.801"></a>
-<span class="sourceLineNo">802</span>    * @throws RuntimeException if constructor could not be found or called.<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    */<a name="line.803"></a>
-<span class="sourceLineNo">804</span>   @SuppressWarnings("unchecked")<a name="line.804"></a>
-<span class="sourceLineNo">805</span>   public static &lt;T&gt; T newInstanceFromOuter(Object outer, Class&lt;T&gt; c, Object c2, Object...args) {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>      if (c2 == null)<a name="line.806"></a>
-<span class="sourceLineNo">807</span>         return null;<a name="line.807"></a>
-<span class="sourceLineNo">808</span>      if (c2 instanceof Class) {<a name="line.808"></a>
-<span class="sourceLineNo">809</span>         try {<a name="line.809"></a>
-<span class="sourceLineNo">810</span>            Class&lt;?&gt; c3 = (Class&lt;?&gt;)c2;<a name="line.810"></a>
-<span class="sourceLineNo">811</span>            if (c3.isInterface() || isAbstract(c3))<a name="line.811"></a>
-<span class="sourceLineNo">812</span>               return null;<a name="line.812"></a>
-<span class="sourceLineNo">813</span>            Constructor&lt;?&gt; con = findPublicConstructor(c3, args);<a name="line.813"></a>
-<span class="sourceLineNo">814</span>            if (con != null)<a name="line.814"></a>
-<span class="sourceLineNo">815</span>               return (T)con.newInstance(args);<a name="line.815"></a>
-<span class="sourceLineNo">816</span>            if (outer != null) {<a name="line.816"></a>
-<span class="sourceLineNo">817</span>               Object[] args2 = new AList&lt;Object&gt;().append(outer).appendAll(args).toArray();<a name="line.817"></a>
-<span class="sourceLineNo">818</span>               con = findPublicConstructor(c3, args2);<a name="line.818"></a>
-<span class="sourceLineNo">819</span>               if (con != null)<a name="line.819"></a>
-<span class="sourceLineNo">820</span>                  return (T)con.newInstance(args2);<a name="line.820"></a>
-<span class="sourceLineNo">821</span>            }<a name="line.821"></a>
-<span class="sourceLineNo">822</span>            return (T)c3.getConstructor(getClasses(args)).newInstance(args);<a name="line.822"></a>
-<span class="sourceLineNo">823</span>         } catch (Exception e) {<a name="line.823"></a>
-<span class="sourceLineNo">824</span>            throw new FormattedRuntimeException(e, "Could not instantiate class {0}", c.getName());<a name="line.824"></a>
-<span class="sourceLineNo">825</span>         }<a name="line.825"></a>
-<span class="sourceLineNo">826</span>      } else if (isParentClass(c, c2.getClass())) {<a name="line.826"></a>
-<span class="sourceLineNo">827</span>         return (T)c2;<a name="line.827"></a>
-<span class="sourceLineNo">828</span>      } else {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>         throw new FormattedRuntimeException("Object of type {0} found but was expecting {1}.", c2.getClass(), c.getClass());<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      }<a name="line.830"></a>
-<span class="sourceLineNo">831</span>   }<a name="line.831"></a>
-<span class="sourceLineNo">832</span><a name="line.832"></a>
-<span class="sourceLineNo">833</span>   /**<a name="line.833"></a>
-<span class="sourceLineNo">834</span>    * Returns all the fields in the specified class and all parent classes.<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    *<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    * &lt;p&gt;<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    * Fields are ordered in either parent-to-child, or child-to-parent order, then alphabetically.<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    *<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    * @param c The class to get all fields on.<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    * @param parentFirst Order them in parent-class-to-child-class order, otherwise child-class-to-parent-class order.<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    * @return An iterable of all fields in the specified class.<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    */<a name="line.842"></a>
-<span class="sourceLineNo">843</span>   @SuppressWarnings("rawtypes")<a name="line.843"></a>
-<span class="sourceLineNo">844</span>   public static Iterable&lt;Field&gt; getAllFields(final Class c, final boolean parentFirst) {<a name="line.844"></a>
-<span class="sourceLineNo">845</span>      return new Iterable&lt;Field&gt;() {<a name="line.845"></a>
-<span class="sourceLineNo">846</span>         @Override<a name="line.846"></a>
-<span class="sourceLineNo">847</span>         public Iterator&lt;Field&gt; iterator() {<a name="line.847"></a>
-<span class="sourceLineNo">848</span>            return new Iterator&lt;Field&gt;(){<a name="line.848"></a>
-<span class="sourceLineNo">849</span>               final Iterator&lt;Class&lt;?&gt;&gt; classIterator = getParentClasses(c, parentFirst, false);<a name="line.849"></a>
-<span class="sourceLineNo">850</span>               Field[] fields = classIterator.hasNext() ? sort(classIterator.next().getDeclaredFields()) : new Field[0];<a name="line.850"></a>
-<span class="sourceLineNo">851</span>               int fIndex = 0;<a name="line.851"></a>
-<span class="sourceLineNo">852</span>               Field next;<a name="line.852"></a>
-<span class="sourceLineNo">853</span><a name="line.853"></a>
-<span class="sourceLineNo">854</span>               @Override<a name="line.854"></a>
-<span class="sourceLineNo">855</span>               public boolean hasNext() {<a name="line.855"></a>
-<span class="sourceLineNo">856</span>                  prime();<a name="line.856"></a>
-<span class="sourceLineNo">857</span>                  return next != null;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>               }<a name="line.858"></a>
+<span class="sourceLineNo">728</span>//       return cm;<a name="line.728"></a>
+<span class="sourceLineNo">729</span>//    } catch (ClassNotFoundException e) {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>//       throw new RuntimeException(e);<a name="line.730"></a>
+<span class="sourceLineNo">731</span>//    }<a name="line.731"></a>
+<span class="sourceLineNo">732</span>// }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>//<a name="line.733"></a>
+<span class="sourceLineNo">734</span>// private Class&lt;?&gt; findClass(String name) throws ClassNotFoundException {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>//    return classLoader == null ? Class.forName(name) : Class.forName(name, true, classLoader);<a name="line.735"></a>
+<span class="sourceLineNo">736</span>// }<a name="line.736"></a>
+<span class="sourceLineNo">737</span><a name="line.737"></a>
+<span class="sourceLineNo">738</span>   /**<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    * Returns a {@link MethodInfo} bean that describes the specified method.<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    *<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    * @param m The method to describe.<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    * @return The bean with information about the method.<a name="line.742"></a>
+<span class="sourceLineNo">743</span>    */<a name="line.743"></a>
+<span class="sourceLineNo">744</span>   public static MethodInfo getMethodInfo(Method m) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>      return new MethodInfo(m);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>   }<a name="line.746"></a>
+<span class="sourceLineNo">747</span><a name="line.747"></a>
+<span class="sourceLineNo">748</span>   /**<a name="line.748"></a>
+<span class="sourceLineNo">749</span>    * Returns {@link MethodInfo} beans that describe the specified methods.<a name="line.749"></a>
+<span class="sourceLineNo">750</span>    *<a name="line.750"></a>
+<span class="sourceLineNo">751</span>    * @param m The methods to describe.<a name="line.751"></a>
+<span class="sourceLineNo">752</span>    * @return The beans with information about the methods.<a name="line.752"></a>
+<span class="sourceLineNo">753</span>    */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>   public static MethodInfo[] getMethodInfo(Collection&lt;Method&gt; m) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>      MethodInfo[] mi = new MethodInfo[m.size()];<a name="line.755"></a>
+<span class="sourceLineNo">756</span>      int i = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>      for (Method mm : m)<a name="line.757"></a>
+<span class="sourceLineNo">758</span>         mi[i++] = getMethodInfo(mm);<a name="line.758"></a>
+<span class="sourceLineNo">759</span>      return mi;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>   }<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>   /**<a name="line.762"></a>
+<span class="sourceLineNo">763</span>    * Simple bean that shows the name, parameter types, and return type of a method.<a name="line.763"></a>
+<span class="sourceLineNo">764</span>    */<a name="line.764"></a>
+<span class="sourceLineNo">765</span>   @SuppressWarnings("javadoc")<a name="line.765"></a>
+<span class="sourceLineNo">766</span>   public static class MethodInfo {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>      public final String methodName;<a name="line.767"></a>
+<span class="sourceLineNo">768</span>      public final String[] parameterTypes;<a name="line.768"></a>
+<span class="sourceLineNo">769</span>      public final String returnType;<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>      MethodInfo(Method m) {<a name="line.771"></a>
+<span class="sourceLineNo">772</span>         methodName = m.getName();<a name="line.772"></a>
+<span class="sourceLineNo">773</span>         Type[] pt = m.getGenericParameterTypes();<a name="line.773"></a>
+<span class="sourceLineNo">774</span>         parameterTypes = new String[pt.length];<a name="line.774"></a>
+<span class="sourceLineNo">775</span>         for (int i  = 0; i &lt; pt.length; i++)<a name="line.775"></a>
+<span class="sourceLineNo">776</span>            parameterTypes[i] = BeanContext.DEFAULT.getClassMeta(pt[i]).toString();<a name="line.776"></a>
+<span class="sourceLineNo">777</span>         returnType = BeanContext.DEFAULT.getClassMeta(m.getGenericReturnType()).toString();<a name="line.777"></a>
+<span class="sourceLineNo">778</span>      }<a name="line.778"></a>
+<span class="sourceLineNo">779</span>   }<a name="line.779"></a>
+<span class="sourceLineNo">780</span><a name="line.780"></a>
+<span class="sourceLineNo">781</span>   /**<a name="line.781"></a>
+<span class="sourceLineNo">782</span>    * Creates an instance of the specified class without throwing exceptions.<a name="line.782"></a>
+<span class="sourceLineNo">783</span>    *<a name="line.783"></a>
+<span class="sourceLineNo">784</span>    * @param c The class to cast to.<a name="line.784"></a>
+<span class="sourceLineNo">785</span>    * @param c2<a name="line.785"></a>
+<span class="sourceLineNo">786</span>    *    The class to instantiate.<a name="line.786"></a>
+<span class="sourceLineNo">787</span>    *    Can also be an instance of the class.<a name="line.787"></a>
+<span class="sourceLineNo">788</span>    * @param args The arguments to pass to the constructor.<a name="line.788"></a>
+<span class="sourceLineNo">789</span>    * @return The new class instance, or &lt;jk&gt;null&lt;/jk&gt; if the class was &lt;jk&gt;null&lt;/jk&gt; or is abstract or an interface.<a name="line.789"></a>
+<span class="sourceLineNo">790</span>    * @throws RuntimeException if constructor could not be found or called.<a name="line.790"></a>
+<span class="sourceLineNo">791</span>    */<a name="line.791"></a>
+<span class="sourceLineNo">792</span>   public static &lt;T&gt; T newInstance(Class&lt;T&gt; c, Object c2, Object...args) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>      return newInstanceFromOuter(null, c, c2, args);<a name="line.793"></a>
+<span class="sourceLineNo">794</span>   }<a name="line.794"></a>
+<span class="sourceLineNo">795</span><a name="line.795"></a>
+<span class="sourceLineNo">796</span>   /**<a name="line.796"></a>
+<span class="sourceLineNo">797</span>    * Creates an instance of the specified class from within the context of another object.<a name="line.797"></a>
+<span class="sourceLineNo">798</span>    *<a name="line.798"></a>
+<span class="sourceLineNo">799</span>    * @param outer<a name="line.799"></a>
+<span class="sourceLineNo">800</span>    *    The outer object.<a name="line.800"></a>
+<span class="sourceLineNo">801</span>    *    Can be &lt;jk&gt;null&lt;/jk&gt;.<a name="line.801"></a>
+<span class="sourceLineNo">802</span>    * @param c The class to cast to.<a name="line.802"></a>
+<span class="sourceLineNo">803</span>    * @param c2<a name="line.803"></a>
+<span class="sourceLineNo">804</span>    *    The class to instantiate.<a name="line.804"></a>
+<span class="sourceLineNo">805</span>    *    Can also be an instance of the class.<a name="line.805"></a>
+<span class="sourceLineNo">806</span>    * @param args The arguments to pass to the constructor.<a name="line.806"></a>
+<span class="sourceLineNo">807</span>    * @return The new class instance, or &lt;jk&gt;null&lt;/jk&gt; if the class was &lt;jk&gt;null&lt;/jk&gt; or is abstract or an interface.<a name="line.807"></a>
+<span class="sourceLineNo">808</span>    * @throws RuntimeException if constructor could not be found or called.<a name="line.808"></a>
+<span class="sourceLineNo">809</span>    */<a name="line.809"></a>
+<span class="sourceLineNo">810</span>   @SuppressWarnings("unchecked")<a name="line.810"></a>
+<span class="sourceLineNo">811</span>   public static &lt;T&gt; T newInstanceFromOuter(Object outer, Class&lt;T&gt; c, Object c2, Object...args) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>      if (c2 == null)<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         return null;<a name="line.813"></a>
+<span class="sourceLineNo">814</span>      if (c2 instanceof Class) {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         try {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>            Class&lt;?&gt; c3 = (Class&lt;?&gt;)c2;<a name="line.816"></a>
+<span class="sourceLineNo">817</span>            if (c3.isInterface() || isAbstract(c3))<a name="line.817"></a>
+<span class="sourceLineNo">818</span>               return null;<a name="line.818"></a>
+<span class="sourceLineNo">819</span>            Constructor&lt;?&gt; con = findPublicConstructor(c3, args);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>            if (con != null)<a name="line.820"></a>
+<span class="sourceLineNo">821</span>               return (T)con.newInstance(args);<a name="line.821"></a>
+<span class="sourceLineNo">822</span>            if (outer != null) {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>               Object[] args2 = new AList&lt;Object&gt;().append(outer).appendAll(args).toArray();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>               con = findPublicConstructor(c3, args2);<a name="line.824"></a>
+<span class="sourceLineNo">825</span>               if (con != null)<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                  return (T)con.newInstance(args2);<a name="line.826"></a>
+<span class="sourceLineNo">827</span>            }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>            return (T)c3.getConstructor(getClasses(args)).newInstance(args);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>         } catch (Exception e) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>            throw new FormattedRuntimeException(e, "Could not instantiate class {0}", c.getName());<a name="line.830"></a>
+<span class="sourceLineNo">831</span>         }<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      } else if (isParentClass(c, c2.getClass())) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>         return (T)c2;<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      } else {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>         throw new FormattedRuntimeException("Object of type {0} found but was expecting {1}.", c2.getClass(), c.getClass());<a name="line.835"></a>
+<span class="sourceLineNo">836</span>      }<a name="line.836"></a>
+<span class="sourceLineNo">837</span>   }<a name="line.837"></a>
+<span class="sourceLineNo">838</span><a name="line.838"></a>
+<span class="sourceLineNo">839</span>   /**<a name="line.839"></a>
+<span class="sourceLineNo">840</span>    * Returns all the fields in the specified class and all parent classes.<a name="line.840"></a>
+<span class="sourceLineNo">841</span>    *<a name="line.841"></a>
+<span class="sourceLineNo">842</span>    * &lt;p&gt;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    * Fields are ordered in either parent-to-child, or child-to-parent order, then alphabetically.<a name="line.843"></a>
+<span class="sourceLineNo">844</span>    *<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    * @param c The class to get all fields on.<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    * @param parentFirst Order them in parent-class-to-child-class order, otherwise child-class-to-parent-class order.<a name="line.846"></a>
+<span class="sourceLineNo">847</span>    * @return An iterable of all fields in the specified class.<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    */<a name="line.848"></a>
+<span class="sourceLineNo">849</span>   @SuppressWarnings("rawtypes")<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   public static Iterable&lt;Field&gt; getAllFields(final Class c, final boolean parentFirst) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>      return new Iterable&lt;Field&gt;() {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>         @Override<a name="line.852"></a>
+<span class="sourceLineNo">853</span>         public Iterator&lt;Field&gt; iterator() {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>            return new Iterator&lt;Field&gt;(){<a name="line.854"></a>
+<span class="sourceLineNo">855</span>               final Iterator&lt;Class&lt;?&gt;&gt; classIterator = getParentClasses(c, parentFirst, false);<a name="line.855"></a>
+<span class="sourceLineNo">856</span>               Field[] fields = classIterator.hasNext() ? sort(classIterator.next().getDeclaredFields()) : new Field[0];<a name="line.856"></a>
+<span class="sourceLineNo">857</span>               int fIndex = 0;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>               Field next;<a name="line.858"></a>
 <span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>               private void prime() {<a name="line.860"></a>
-<span class="sourceLineNo">861</span>                  if (next == null) {<a name="line.861"></a>
-<span class="sourceLineNo">862</span>                     while (fIndex &gt;= fields.length) {<a name="line.862"></a>
-<span class="sourceLineNo">863</span>                        if (classIterator.hasNext()) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>                           fields = sort(classIterator.next().getDeclaredFields());<a name="line.864"></a>
-<span class="sourceLineNo">865</span>                           fIndex = 0;<a name="line.865"></a>
-<span class="sourceLineNo">866</span>                        } else {<a name="line.866"></a>
-<span class="sourceLineNo">867</span>                           fIndex = -1;<a name="line.867"></a>
-<span class="sourceLineNo">868</span>                        }<a name="line.868"></a>
-<span class="sourceLineNo">869</span>                     }<a name="line.869"></a>
-<span class="sourceLineNo">870</span>                     if (fIndex != -1)<a name="line.870"></a>
-<span class="sourceLineNo">871</span>                        next = fields[fIndex++];<a name="line.871"></a>
-<span class="sourceLineNo">872</span>                  }<a name="line.872"></a>
-<span class="sourceLineNo">873</span>               }<a name="line.873"></a>
-<span class="sourceLineNo">874</span><a name="line.874"></a>
-<span class="sourceLineNo">875</span>               @Override<a name="line.875"></a>
-<span class="sourceLineNo">876</span>               public Field next() {<a name="line.876"></a>
-<span class="sourceLineNo">877</span>                  prime();<a name="line.877"></a>
-<span class="sourceLineNo">878</span>                  Field f = next;<a name="line.878"></a>
-<span class="sourceLineNo">879</span>                  next = null;<a name="line.879"></a>
-<span class="sourceLineNo">880</span>                  return f;<a name="line.880"></a>
-<span class="sourceLineNo">881</span>               }<a name="line.881"></a>
-<span class="sourceLineNo">882</span><a name="line.882"></a>
-<span class="sourceLineNo">883</span>               @Override<a name="line.883"></a>
-<span class="sourceLineNo">884</span>               public void remove() {<a name="line.884"></a>
-<span class="sourceLineNo">885</span>               }<a name="line.885"></a>
-<span class="sourceLineNo">886</span>            };<a name="line.886"></a>
-<span class="sourceLineNo">887</span>         }<a name="line.887"></a>
-<span class="sourceLineNo">888</span>      };<a name="line.888"></a>
-<span class="sourceLineNo">889</span>   }<a name="line.889"></a>
-<span class="sourceLineNo">890</span><a name="line.890"></a>
-<span class="sourceLineNo">891</span>   /**<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    * Returns all the methods in the specified class and all parent classes.<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    *<a name="line.893"></a>
-<span class="sourceLineNo">894</span>    * &lt;p&gt;<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    * Methods are ordered in either parent-to-child, or child-to-parent order, then alphabetically.<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    *<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    * @param c The class to get all methods on.<a name="line.897"></a>
-<span class="sourceLineNo">898</span>    * @param parentFirst Order them in parent-class-to-child-class order, otherwise child-class-to-parent-class order.<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    * @return An iterable of all methods in the specified class.<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    */<a name="line.900"></a>
-<span class="sourceLineNo">901</span>   @SuppressWarnings("rawtypes")<a name="line.901"></a>
-<span class="sourceLineNo">902</span>   public static Iterable&lt;Method&gt; getAllMethods(final Class c, final boolean parentFirst) {<a name="line.902"></a>
-<span class="sourceLineNo">903</span>      return new Iterable&lt;Method&gt;() {<a name="line.903"></a>
-<span class="sourceLineNo">904</span>         @Override<a name="line.904"></a>
-<span class="sourceLineNo">905</span>         public Iterator&lt;Method&gt; iterator() {<a name="line.905"></a>
-<span class="sourceLineNo">906</span>            return new Iterator&lt;Method&gt;(){<a name="line.906"></a>
-<span class="sourceLineNo">907</span>               final Iterator&lt;Class&lt;?&gt;&gt; classIterator = getParentClasses(c, parentFirst, true);<a name="line.907"></a>
-<span class="sourceLineNo">908</span>               Method[] methods = classIterator.hasNext() ? sort(classIterator.next().getDeclaredMethods()) : new Method[0];<a name="line.908"></a>
-<span class="sourceLineNo">909</span>               int mIndex = 0;<a name="line.909"></a>
-<span class="sourceLineNo">910</span>               Method next;<a name="line.910"></a>
-<span class="sourceLineNo">911</span><a name="line.911"></a>
-<span class="sourceLineNo">912</span>               @Override<a name="line.912"></a>
-<span class="sourceLineNo">913</span>               public boolean hasNext() {<a name="line.913"></a>
-<span class="sourceLineNo">914</span>                  prime();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>                  return next != null;<a name="line.915"></a>
-<span class="sourceLineNo">916</span>               }<a name="line.916"></a>
+<span class="sourceLineNo">860</span>               @Override<a name="line.860"></a>
+<span class="sourceLineNo">861</span>               public boolean hasNext() {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                  prime();<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                  return next != null;<a name="line.863"></a>
+<span class="sourceLineNo">864</span>               }<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>               private void prime() {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                  if (next == null) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                     while (fIndex &gt;= fields.length) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                        if (classIterator.hasNext()) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                           fields = sort(classIterator.next().getDeclaredFields());<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                           fIndex = 0;<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        } else {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                           fIndex = -1;<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        }<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                     }<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                     if (fIndex != -1)<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                        next = fields[fIndex++];<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                  }<a name="line.878"></a>
+<span class="sourceLineNo">879</span>               }<a name="line.879"></a>
+<span class="sourceLineNo">880</span><a name="line.880"></a>
+<span class="sourceLineNo">881</span>               @Override<a name="line.881"></a>
+<span class="sourceLineNo">882</span>               public Field next() {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                  prime();<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                  Field f = next;<a name="line.884"></a>
+<span class="sour

<TRUNCATED>


[29/34] incubator-juneau-website git commit: Update javadocs

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/json/JsonSchemaSerializerBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/json/JsonSchemaSerializerBuilder.html b/content/site/apidocs/org/apache/juneau/json/JsonSchemaSerializerBuilder.html
index 02cf1e8..3091241 100644
--- a/content/site/apidocs/org/apache/juneau/json/JsonSchemaSerializerBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/json/JsonSchemaSerializerBuilder.html
@@ -2937,7 +2937,7 @@ extends <a href="../../../../org/apache/juneau/json/JsonSerializerBuilder.html"
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/json/JsonSerializerBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/json/JsonSerializerBuilder.html b/content/site/apidocs/org/apache/juneau/json/JsonSerializerBuilder.html
index b9c87ad..8072c73 100644
--- a/content/site/apidocs/org/apache/juneau/json/JsonSerializerBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/json/JsonSerializerBuilder.html
@@ -2962,7 +2962,7 @@ extends <a href="../../../../org/apache/juneau/serializer/SerializerBuilder.html
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/json/JsonSerializerSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/json/JsonSerializerSession.html b/content/site/apidocs/org/apache/juneau/json/JsonSerializerSession.html
index 36374ce..a4741ef 100644
--- a/content/site/apidocs/org/apache/juneau/json/JsonSerializerSession.html
+++ b/content/site/apidocs/org/apache/juneau/json/JsonSerializerSession.html
@@ -322,7 +322,7 @@ extends <a href="../../../../org/apache/juneau/serializer/WriterSerializerSessio
 <ul class="blockList">
 <li class="blockList">
 <h4>isAddBeanTypeProperties</h4>
-<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/juneau/json/JsonSerializerSession.html#line.242">isAddBeanTypeProperties</a>()</pre>
+<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/juneau/json/JsonSerializerSession.html#line.243">isAddBeanTypeProperties</a>()</pre>
 <div class="block">Returns the <a href="../../../../org/apache/juneau/json/JsonSerializerContext.html#JSON_addBeanTypeProperties"><code>JsonSerializerContext.JSON_addBeanTypeProperties</code></a> setting value for this session.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -338,7 +338,7 @@ extends <a href="../../../../org/apache/juneau/serializer/WriterSerializerSessio
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getJsonWriter</h4>
-<pre>protected final&nbsp;<a href="../../../../org/apache/juneau/json/JsonWriter.html" title="class in org.apache.juneau.json">JsonWriter</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/json/JsonSerializerSession.html#line.253">getJsonWriter</a>(<a href="../../../../org/apache/juneau/serializer/SerializerPipe.html" title="class in org.apache.juneau.serializer">SerializerPipe</a>&nbsp;out)
+<pre>protected final&nbsp;<a href="../../../../org/apache/juneau/json/JsonWriter.html" title="class in org.apache.juneau.json">JsonWriter</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/json/JsonSerializerSession.html#line.254">getJsonWriter</a>(<a href="../../../../org/apache/juneau/serializer/SerializerPipe.html" title="class in org.apache.juneau.serializer">SerializerPipe</a>&nbsp;out)
                                   throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Converts the specified output target object to an <a href="../../../../org/apache/juneau/json/JsonWriter.html" title="class in org.apache.juneau.json"><code>JsonWriter</code></a>.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/microservice/resources/DirectoryResource.FileResource.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/microservice/resources/DirectoryResource.FileResource.html b/content/site/apidocs/org/apache/juneau/microservice/resources/DirectoryResource.FileResource.html
index acb963e..3cb6a54 100644
--- a/content/site/apidocs/org/apache/juneau/microservice/resources/DirectoryResource.FileResource.html
+++ b/content/site/apidocs/org/apache/juneau/microservice/resources/DirectoryResource.FileResource.html
@@ -289,7 +289,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastModified</h4>
-<pre><a href="../../../../../org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation">@BeanProperty</a>(<a href="../../../../../org/apache/juneau/annotation/BeanProperty.html#swap--">swap</a>=<a href="../../../../../org/apache/juneau/transforms/DateSwap.ISO8601DTP.html" title="class in org.apache.juneau.transforms">DateSwap.ISO8601DTP.class</a>)
+<pre><a href="../../../../../org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation">@Swap</a>(<a href="../../../../../org/apache/juneau/annotation/Swap.html#value--">value</a>=<a href="../../../../../org/apache/juneau/transforms/DateSwap.ISO8601DTP.html" title="class in org.apache.juneau.transforms">DateSwap.ISO8601DTP.class</a>)
 public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../../src-html/org/apache/juneau/microservice/resources/DirectoryResource.FileResource.html#line.325">getLastModified</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/microservice/resources/LogsResource.FileResource.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/microservice/resources/LogsResource.FileResource.html b/content/site/apidocs/org/apache/juneau/microservice/resources/LogsResource.FileResource.html
index 04f7e46..952dbae 100644
--- a/content/site/apidocs/org/apache/juneau/microservice/resources/LogsResource.FileResource.html
+++ b/content/site/apidocs/org/apache/juneau/microservice/resources/LogsResource.FileResource.html
@@ -244,7 +244,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>lastModified</h4>
-<pre><a href="../../../../../org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation">@BeanProperty</a>(<a href="../../../../../org/apache/juneau/annotation/BeanProperty.html#swap--">swap</a>=<a href="../../../../../org/apache/juneau/transforms/DateSwap.DateTimeMedium.html" title="class in org.apache.juneau.transforms">DateSwap.DateTimeMedium.class</a>)
+<pre><a href="../../../../../org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation">@Swap</a>(<a href="../../../../../org/apache/juneau/annotation/Swap.html#value--">value</a>=<a href="../../../../../org/apache/juneau/transforms/DateSwap.DateTimeMedium.html" title="class in org.apache.juneau.transforms">DateSwap.DateTimeMedium.class</a>)
 public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a> <a href="../../../../../src-html/org/apache/juneau/microservice/resources/LogsResource.FileResource.html#line.311">lastModified</a></pre>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/msgpack/MsgPackParserBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/msgpack/MsgPackParserBuilder.html b/content/site/apidocs/org/apache/juneau/msgpack/MsgPackParserBuilder.html
index a26af70..f7a059d 100644
--- a/content/site/apidocs/org/apache/juneau/msgpack/MsgPackParserBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/msgpack/MsgPackParserBuilder.html
@@ -2172,7 +2172,7 @@ extends <a href="../../../../org/apache/juneau/parser/ParserBuilder.html" title=
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/msgpack/MsgPackSerializerBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/msgpack/MsgPackSerializerBuilder.html b/content/site/apidocs/org/apache/juneau/msgpack/MsgPackSerializerBuilder.html
index 02f6279..2a5644e 100644
--- a/content/site/apidocs/org/apache/juneau/msgpack/MsgPackSerializerBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/msgpack/MsgPackSerializerBuilder.html
@@ -2856,7 +2856,7 @@ extends <a href="../../../../org/apache/juneau/serializer/SerializerBuilder.html
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/parser/ParserBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/parser/ParserBuilder.html b/content/site/apidocs/org/apache/juneau/parser/ParserBuilder.html
index d3a8dc0..6c275c0 100644
--- a/content/site/apidocs/org/apache/juneau/parser/ParserBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/parser/ParserBuilder.html
@@ -2153,7 +2153,7 @@ extends <a href="../../../../org/apache/juneau/CoreObjectBuilder.html" title="cl
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/plaintext/PlainTextParserBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/plaintext/PlainTextParserBuilder.html b/content/site/apidocs/org/apache/juneau/plaintext/PlainTextParserBuilder.html
index 88c347f..c0c013f 100644
--- a/content/site/apidocs/org/apache/juneau/plaintext/PlainTextParserBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/plaintext/PlainTextParserBuilder.html
@@ -2172,7 +2172,7 @@ extends <a href="../../../../org/apache/juneau/parser/ParserBuilder.html" title=
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/plaintext/PlainTextSerializerBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/plaintext/PlainTextSerializerBuilder.html b/content/site/apidocs/org/apache/juneau/plaintext/PlainTextSerializerBuilder.html
index b0d4e2c..655f9ad 100644
--- a/content/site/apidocs/org/apache/juneau/plaintext/PlainTextSerializerBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/plaintext/PlainTextSerializerBuilder.html
@@ -2856,7 +2856,7 @@ extends <a href="../../../../org/apache/juneau/serializer/SerializerBuilder.html
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/rest/client/RestClientBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/client/RestClientBuilder.html b/content/site/apidocs/org/apache/juneau/rest/client/RestClientBuilder.html
index 6d54866..2095490 100644
--- a/content/site/apidocs/org/apache/juneau/rest/client/RestClientBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/rest/client/RestClientBuilder.html
@@ -4137,7 +4137,7 @@ extends <a href="../../../../../org/apache/juneau/CoreObjectBuilder.html" title=
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/rest/converters/Introspectable.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/converters/Introspectable.html b/content/site/apidocs/org/apache/juneau/rest/converters/Introspectable.html
index 65cf425..088d586 100644
--- a/content/site/apidocs/org/apache/juneau/rest/converters/Introspectable.html
+++ b/content/site/apidocs/org/apache/juneau/rest/converters/Introspectable.html
@@ -112,7 +112,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public final class <a href="../../../../../src-html/org/apache/juneau/rest/converters/Introspectable.html#line.47">Introspectable</a>
+<pre>public final class <a href="../../../../../src-html/org/apache/juneau/rest/converters/Introspectable.html#line.48">Introspectable</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/juneau/rest/RestConverter.html" title="interface in org.apache.juneau.rest">RestConverter</a></pre>
 <div class="block">Converter for enablement of <a href="../../../../../org/apache/juneau/utils/PojoIntrospector.html" title="class in org.apache.juneau.utils"><code>PojoIntrospector</code></a> support on response objects returned by a
@@ -209,7 +209,7 @@ implements <a href="../../../../../org/apache/juneau/rest/RestConverter.html" ti
 <ul class="blockListLast">
 <li class="blockList">
 <h4>Introspectable</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/juneau/rest/converters/Introspectable.html#line.47">Introspectable</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/juneau/rest/converters/Introspectable.html#line.48">Introspectable</a>()</pre>
 </li>
 </ul>
 </li>
@@ -226,7 +226,7 @@ implements <a href="../../../../../org/apache/juneau/rest/RestConverter.html" ti
 <ul class="blockListLast">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/juneau/rest/converters/Introspectable.html#line.51">convert</a>(<a href="../../../../../org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest">RestRequest</a>&nbsp;req,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/juneau/rest/converters/Introspectable.html#line.52">convert</a>(<a href="../../../../../org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest">RestRequest</a>&nbsp;req,
                       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
                       <a href="../../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&nbsp;cm)
                throws <a href="../../../../../org/apache/juneau/rest/RestException.html" title="class in org.apache.juneau.rest">RestException</a></pre>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/rest/converters/Traversable.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/converters/Traversable.html b/content/site/apidocs/org/apache/juneau/rest/converters/Traversable.html
index 8d0f347..d7ba496 100644
--- a/content/site/apidocs/org/apache/juneau/rest/converters/Traversable.html
+++ b/content/site/apidocs/org/apache/juneau/rest/converters/Traversable.html
@@ -112,7 +112,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public final class <a href="../../../../../src-html/org/apache/juneau/rest/converters/Traversable.html#line.46">Traversable</a>
+<pre>public final class <a href="../../../../../src-html/org/apache/juneau/rest/converters/Traversable.html#line.47">Traversable</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/juneau/rest/RestConverter.html" title="interface in org.apache.juneau.rest">RestConverter</a></pre>
 <div class="block">Converter for enabling of <a href="../../../../../org/apache/juneau/utils/PojoRest.html" title="class in org.apache.juneau.utils"><code>PojoRest</code></a> support on response objects returned by a <code>@RestMethod</code> method.
@@ -209,7 +209,7 @@ implements <a href="../../../../../org/apache/juneau/rest/RestConverter.html" ti
 <ul class="blockListLast">
 <li class="blockList">
 <h4>Traversable</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/juneau/rest/converters/Traversable.html#line.46">Traversable</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/juneau/rest/converters/Traversable.html#line.47">Traversable</a>()</pre>
 </li>
 </ul>
 </li>
@@ -226,7 +226,7 @@ implements <a href="../../../../../org/apache/juneau/rest/RestConverter.html" ti
 <ul class="blockListLast">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/juneau/rest/converters/Traversable.html#line.50">convert</a>(<a href="../../../../../org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest">RestRequest</a>&nbsp;req,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/juneau/rest/converters/Traversable.html#line.51">convert</a>(<a href="../../../../../org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest">RestRequest</a>&nbsp;req,
                       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
                       <a href="../../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a>&nbsp;cm)
                throws <a href="../../../../../org/apache/juneau/rest/RestException.html" title="class in org.apache.juneau.rest">RestException</a></pre>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/serializer/SerializerBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/serializer/SerializerBuilder.html b/content/site/apidocs/org/apache/juneau/serializer/SerializerBuilder.html
index 7f06a67..428a358 100644
--- a/content/site/apidocs/org/apache/juneau/serializer/SerializerBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/serializer/SerializerBuilder.html
@@ -2792,7 +2792,7 @@ extends <a href="../../../../org/apache/juneau/CoreObjectBuilder.html" title="cl
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/serializer/SerializerGroup.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/serializer/SerializerGroup.html b/content/site/apidocs/org/apache/juneau/serializer/SerializerGroup.html
index 69231e2..cf78c9a 100644
--- a/content/site/apidocs/org/apache/juneau/serializer/SerializerGroup.html
+++ b/content/site/apidocs/org/apache/juneau/serializer/SerializerGroup.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -108,7 +108,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public final class <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.67">SerializerGroup</a>
+<pre>public final class <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.64">SerializerGroup</a>
 extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Represents a group of <a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer"><code>Serializers</code></a> that can be looked up by media type.
 
@@ -121,8 +121,6 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
    <li>
       Sets common properties on all serializers in a single method call.
    <li>
-      Locks all serializers in a single method call.
-   <li>
       Clones existing groups and all serializers within the group in a single method call.
  </ul>
 
@@ -147,8 +145,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
       .build();
 
    <jc>// Find the appropriate serializer by Accept type</jc>
-   String mediaTypeMatch = g.findMatch(<js>"text/foo, text/json;q=0.8, text/*;q:0.6, *\/*;q=0.0"</js>);
-   WriterSerializer s = g.getWriterSerializer(mediaTypeMatch);
+   WriterSerializer s = g.getWriterSerializer(<js>"text/foo, text/json;q=0.8, text/*;q:0.6, *\/*;q=0.0"</js>);
 
    <jc>// Serialize a bean to JSON text </jc>
    AddressBook addressBook = <jk>new</jk> AddressBook();  <jc>// Bean to serialize.</jc>
@@ -235,11 +232,35 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 </td>
 </tr>
 <tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/serializer/OutputStreamSerializer.html" title="class in org.apache.juneau.serializer">OutputStreamSerializer</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getStreamSerializer-org.apache.juneau.http.MediaType-">getStreamSerializer</a></span>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;mediaType)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializer-org.apache.juneau.http.MediaType-"><code>getSerializer(MediaType)</code></a>, but casts it to a <a href="../../../../org/apache/juneau/serializer/OutputStreamSerializer.html" title="class in org.apache.juneau.serializer"><code>OutputStreamSerializer</code></a>.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/serializer/OutputStreamSerializer.html" title="class in org.apache.juneau.serializer">OutputStreamSerializer</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getStreamSerializer-java.lang.String-">getStreamSerializer</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;acceptHeader)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializer-java.lang.String-"><code>getSerializer(String)</code></a>, but casts it to an <a href="../../../../org/apache/juneau/serializer/OutputStreamSerializer.html" title="class in org.apache.juneau.serializer"><code>OutputStreamSerializer</code></a>.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSupportedMediaTypes--">getSupportedMediaTypes</a></span>()</code>
 <div class="block">Returns the media types that all serializers in this group can handle.</div>
 </td>
 </tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/serializer/WriterSerializer.html" title="class in org.apache.juneau.serializer">WriterSerializer</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getWriterSerializer-org.apache.juneau.http.MediaType-">getWriterSerializer</a></span>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;mediaType)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializer-org.apache.juneau.http.MediaType-"><code>getSerializer(MediaType)</code></a>, but casts it to a <a href="../../../../org/apache/juneau/serializer/WriterSerializer.html" title="class in org.apache.juneau.serializer"><code>WriterSerializer</code></a>.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/serializer/WriterSerializer.html" title="class in org.apache.juneau.serializer">WriterSerializer</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getWriterSerializer-java.lang.String-">getWriterSerializer</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;acceptHeader)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializer-java.lang.String-"><code>getSerializer(String)</code></a>, but casts it to a <a href="../../../../org/apache/juneau/serializer/WriterSerializer.html" title="class in org.apache.juneau.serializer"><code>WriterSerializer</code></a>.</div>
+</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -268,7 +289,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SerializerGroup</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.90">SerializerGroup</a>(<a href="../../../../org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau">PropertyStore</a>&nbsp;propertyStore,
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.87">SerializerGroup</a>(<a href="../../../../org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau">PropertyStore</a>&nbsp;propertyStore,
                        <a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a>[]&nbsp;serializers)</pre>
 <div class="block">Constructor.</div>
 <dl>
@@ -295,7 +316,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getSerializerMatch</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/juneau/serializer/SerializerMatch.html" title="class in org.apache.juneau.serializer">SerializerMatch</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.132">getSerializerMatch</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;acceptHeader)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/serializer/SerializerMatch.html" title="class in org.apache.juneau.serializer">SerializerMatch</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.129">getSerializerMatch</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;acceptHeader)</pre>
 <div class="block">Searches the group for a serializer that can handle the specified <code>Accept</code> value.
 
  <p>
@@ -328,7 +349,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getSerializerMatch</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/juneau/serializer/SerializerMatch.html" title="class in org.apache.juneau.serializer">SerializerMatch</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.153">getSerializerMatch</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;mediaType)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/serializer/SerializerMatch.html" title="class in org.apache.juneau.serializer">SerializerMatch</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.150">getSerializerMatch</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;mediaType)</pre>
 <div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializerMatch-java.lang.String-"><code>getSerializerMatch(String)</code></a> but matches using a <a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http"><code>MediaType</code></a> instance.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -344,7 +365,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getSerializer</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.163">getSerializer</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;acceptHeader)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.160">getSerializer</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;acceptHeader)</pre>
 <div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializerMatch-java.lang.String-"><code>getSerializerMatch(String)</code></a> but returns just the matched serializer.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -360,7 +381,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getSerializer</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.174">getSerializer</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;mediaType)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.171">getSerializer</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;mediaType)</pre>
 <div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializerMatch-org.apache.juneau.http.MediaType-"><code>getSerializerMatch(MediaType)</code></a> but returns just the matched serializer.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -370,13 +391,77 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 </dl>
 </li>
 </ul>
+<a name="getWriterSerializer-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriterSerializer</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/serializer/WriterSerializer.html" title="class in org.apache.juneau.serializer">WriterSerializer</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.183">getWriterSerializer</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;acceptHeader)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializer-java.lang.String-"><code>getSerializer(String)</code></a>, but casts it to a <a href="../../../../org/apache/juneau/serializer/WriterSerializer.html" title="class in org.apache.juneau.serializer"><code>WriterSerializer</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>acceptHeader</code> - The HTTP <l>Accept</l> header string.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The serializer that matched the accept header, or <jk>null</jk> if no match was made.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriterSerializer-org.apache.juneau.http.MediaType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriterSerializer</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/serializer/WriterSerializer.html" title="class in org.apache.juneau.serializer">WriterSerializer</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.193">getWriterSerializer</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializer-org.apache.juneau.http.MediaType-"><code>getSerializer(MediaType)</code></a>, but casts it to a <a href="../../../../org/apache/juneau/serializer/WriterSerializer.html" title="class in org.apache.juneau.serializer"><code>WriterSerializer</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaType</code> - The HTTP media type.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The serializer that matched the accept header, or <jk>null</jk> if no match was made.</dd>
+</dl>
+</li>
+</ul>
+<a name="getStreamSerializer-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStreamSerializer</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/serializer/OutputStreamSerializer.html" title="class in org.apache.juneau.serializer">OutputStreamSerializer</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.203">getStreamSerializer</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;acceptHeader)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializer-java.lang.String-"><code>getSerializer(String)</code></a>, but casts it to an <a href="../../../../org/apache/juneau/serializer/OutputStreamSerializer.html" title="class in org.apache.juneau.serializer"><code>OutputStreamSerializer</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>acceptHeader</code> - The HTTP <l>Accept</l> header string.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The serializer that matched the accept header, or <jk>null</jk> if no match was made.</dd>
+</dl>
+</li>
+</ul>
+<a name="getStreamSerializer-org.apache.juneau.http.MediaType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStreamSerializer</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/serializer/OutputStreamSerializer.html" title="class in org.apache.juneau.serializer">OutputStreamSerializer</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.213">getStreamSerializer</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializer-org.apache.juneau.http.MediaType-"><code>getSerializer(MediaType)</code></a>, but casts it to a <a href="../../../../org/apache/juneau/serializer/OutputStreamSerializer.html" title="class in org.apache.juneau.serializer"><code>OutputStreamSerializer</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaType</code> - The HTTP media type.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The serializer that matched the accept header, or <jk>null</jk> if no match was made.</dd>
+</dl>
+</li>
+</ul>
 <a name="getSupportedMediaTypes--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getSupportedMediaTypes</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.188">getSupportedMediaTypes</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.225">getSupportedMediaTypes</a>()</pre>
 <div class="block">Returns the media types that all serializers in this group can handle.
 
  <p>
@@ -393,7 +478,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createPropertyStore</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau">PropertyStore</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.200">createPropertyStore</a>()</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau">PropertyStore</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.237">createPropertyStore</a>()</pre>
 <div class="block">Returns a copy of the property store that was used to create the serializers in this group.
 
  <p>
@@ -410,7 +495,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getSerializers</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.209">getSerializers</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.246">getSerializers</a>()</pre>
 <div class="block">Returns a copy of the serializers in this group.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -424,7 +509,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getBeanContext</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/juneau/BeanContext.html" title="class in org.apache.juneau">BeanContext</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.218">getBeanContext</a>()</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/juneau/BeanContext.html" title="class in org.apache.juneau">BeanContext</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.255">getBeanContext</a>()</pre>
 <div class="block">Returns a bean context with the same properties as this group.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/soap/SoapXmlSerializerBuilder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/soap/SoapXmlSerializerBuilder.html b/content/site/apidocs/org/apache/juneau/soap/SoapXmlSerializerBuilder.html
index a5d9050..67c6610 100644
--- a/content/site/apidocs/org/apache/juneau/soap/SoapXmlSerializerBuilder.html
+++ b/content/site/apidocs/org/apache/juneau/soap/SoapXmlSerializerBuilder.html
@@ -3142,7 +3142,7 @@ extends <a href="../../../../org/apache/juneau/xml/XmlSerializerBuilder.html" ti
  There are two category of classes that can be passed in through this method:
  <ul>
    <li>Subclasses of <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a>.
-   <li>Surrogate classes.  A shortcut for defining a <a href="../../../../org/apache/juneau/transform/SurrogateSwap.html" title="class in org.apache.juneau.transform"><code>SurrogateSwap</code></a>.
+   <li>Implementations of <a href="../../../../org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>.
  </ul>
 
  <h5 class='section'>Notes:</h5>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/org/apache/juneau/transform/MapSwap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/transform/MapSwap.html b/content/site/apidocs/org/apache/juneau/transform/MapSwap.html
index 71fb1c2..0a82888 100644
--- a/content/site/apidocs/org/apache/juneau/transform/MapSwap.html
+++ b/content/site/apidocs/org/apache/juneau/transform/MapSwap.html
@@ -191,7 +191,7 @@ extends <a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="c
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.transform.<a href="../../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a></h3>
-<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanContext-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a></code></li>
+<code><a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes--">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#forMediaTypes-org.apache.juneau.http.MediaType:A-">forMediaTypes</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getNormalClass--">getNormalClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClass--">getSwapClass</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#getSwapClassMeta-org.apache.juneau.BeanSession-">getSwapClassMeta</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isNormalObject-java.lang.Object-">isNormalObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#isSwappedObject-java.lang.Object-">isSwappedObject</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#match-org.apache.juneau.BeanSession-">match</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#swap-org.apache.
 juneau.BeanSession-T-java.lang.String-">swap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#toString--">toString</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#unswap-org.apache.juneau.BeanSession-S-org.apache.juneau.ClassMeta-java.lang.String-">unswap</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate--">withTemplate</a>, <a href="../../../../org/apache/juneau/transform/PojoSwap.html#withTemplate-java.lang.String-">withTemplate</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">