http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapComboTest.java
----------------------------------------------------------------------
diff --git 
a/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapComboTest.java
 
b/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapComboTest.java
index 376cbec..9bdd575 100644
--- 
a/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapComboTest.java
+++ 
b/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapComboTest.java
@@ -12,6 +12,9 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.transforms;
 
+import static org.apache.juneau.TestUtils.*;
+
+import java.lang.reflect.*;
 import java.util.*;
 
 import org.apache.juneau.*;
@@ -39,502 +42,660 @@ public class DateSwapComboTest extends ComboTest {
        public static Collection<Object[]> getParameters() {
                return Arrays.asList(new Object[][] {
                        {       /* 0 */
-                               "DateSwap.ToString/singleDate",
-                               singleDate,
-                               DateSwap.ToString.class,
-                               /* Json */              "'Sun Mar 03 10:11:12 
PST 1901'",
-                               /* JsonT */             "'Sun Mar 03 10:11:12 
PST 1901'",
-                               /* JsonR */             "'Sun Mar 03 10:11:12 
PST 1901'",
-                               /* Xml */               "<string>Sun Mar 03 
10:11:12 PST 1901</string>",
-                               /* XmlT */              "<string>Sun Mar 03 
10:11:12 PST 1901</string>",
-                               /* XmlR */              "<string>Sun Mar 03 
10:11:12 PST 1901</string>\n",
-                               /* XmlNs */             "<string>Sun Mar 03 
10:11:12 PST 1901</string>",
-                               /* Html */              "<string>Sun Mar 03 
10:11:12 PST 1901</string>",
-                               /* HtmlT */             "<string>Sun Mar 03 
10:11:12 PST 1901</string>",
-                               /* HtmlR */             "<string>Sun Mar 03 
10:11:12 PST 1901</string>",
-                               /* Uon */               "'Sun Mar 03 10:11:12 
PST 1901'",
-                               /* UonT */              "'Sun Mar 03 10:11:12 
PST 1901'",
-                               /* UonR */              "'Sun Mar 03 10:11:12 
PST 1901'",
-                               /* UrlEnc */    
"_value='Sun+Mar+03+10:11:12+PST+1901'",
-                               /* UrlEncT */   
"_value='Sun+Mar+03+10:11:12+PST+1901'",
-                               /* UrlEncR */   
"_value='Sun+Mar+03+10:11:12+PST+1901'",
-                               /* MsgPack */   
"BC53756E204D61722030332031303A31313A3132205053542031393031",
-                               /* MsgPackT */  
"BC53756E204D61722030332031303A31313A3132205053542031393031",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun Mar 03 10:11:12 PST 
1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun Mar 03 10:11:12 PST 
1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n  
</rdf:Description>\n</rdf:RDF>\n",
+                               new ComboInput2<Date>(
+                                       "DateSwap.ToString/singleDate",
+                                       Date.class,
+                                       singleDate,
+                                       DateSwap.ToString.class,
+                                       /* Json */              "'Sun Mar 03 
10:11:12 PST 1901'",
+                                       /* JsonT */             "'Sun Mar 03 
10:11:12 PST 1901'",
+                                       /* JsonR */             "'Sun Mar 03 
10:11:12 PST 1901'",
+                                       /* Xml */               "<string>Sun 
Mar 03 10:11:12 PST 1901</string>",
+                                       /* XmlT */              "<string>Sun 
Mar 03 10:11:12 PST 1901</string>",
+                                       /* XmlR */              "<string>Sun 
Mar 03 10:11:12 PST 1901</string>\n",
+                                       /* XmlNs */             "<string>Sun 
Mar 03 10:11:12 PST 1901</string>",
+                                       /* Html */              "<string>Sun 
Mar 03 10:11:12 PST 1901</string>",
+                                       /* HtmlT */             "<string>Sun 
Mar 03 10:11:12 PST 1901</string>",
+                                       /* HtmlR */             "<string>Sun 
Mar 03 10:11:12 PST 1901</string>",
+                                       /* Uon */               "'Sun Mar 03 
10:11:12 PST 1901'",
+                                       /* UonT */              "'Sun Mar 03 
10:11:12 PST 1901'",
+                                       /* UonR */              "'Sun Mar 03 
10:11:12 PST 1901'",
+                                       /* UrlEnc */    
"_value='Sun+Mar+03+10:11:12+PST+1901'",
+                                       /* UrlEncT */   
"_value='Sun+Mar+03+10:11:12+PST+1901'",
+                                       /* UrlEncR */   
"_value='Sun+Mar+03+10:11:12+PST+1901'",
+                                       /* MsgPack */   
"BC53756E204D61722030332031303A31313A3132205053542031393031",
+                                       /* MsgPackT */  
"BC53756E204D61722030332031303A31313A3132205053542031393031",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun Mar 03 10:11:12 PST 
1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun Mar 03 10:11:12 PST 
1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <j:value>Sun Mar 03 10:11:12 PST 1901</j:value>\n  
</rdf:Description>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(Date o) {
+                                               assertType(Date.class, o);
+                                       }
+                               }
                        },
                        {       /* 1 */
-                               "DateSwap.ToString/dateArray",
-                               dateArray,
-                               DateSwap.ToString.class,
-                               /* Json */              "['Sun Mar 03 10:11:12 
PST 1901']",
-                               /* JsonT */             "['Sun Mar 03 10:11:12 
PST 1901']",
-                               /* JsonR */             "[\n\t'Sun Mar 03 
10:11:12 PST 1901'\n]",
-                               /* Xml */               "<array><string>Sun Mar 
03 10:11:12 PST 1901</string></array>",
-                               /* XmlT */              "<array><string>Sun Mar 
03 10:11:12 PST 1901</string></array>",
-                               /* XmlR */              "<array>\n\t<string>Sun 
Mar 03 10:11:12 PST 1901</string>\n</array>\n",
-                               /* XmlNs */             "<array><string>Sun Mar 
03 10:11:12 PST 1901</string></array>",
-                               /* Html */              "<ul><li>Sun Mar 03 
10:11:12 PST 1901</li></ul>",
-                               /* HtmlT */             "<ul><li>Sun Mar 03 
10:11:12 PST 1901</li></ul>",
-                               /* HtmlR */             "<ul>\n\t<li>Sun Mar 03 
10:11:12 PST 1901</li>\n</ul>\n",
-                               /* Uon */               "@('Sun Mar 03 10:11:12 
PST 1901')",
-                               /* UonT */              "@('Sun Mar 03 10:11:12 
PST 1901')",
-                               /* UonR */              "@(\n\t'Sun Mar 03 
10:11:12 PST 1901'\n)",
-                               /* UrlEnc */    
"0='Sun+Mar+03+10:11:12+PST+1901'",
-                               /* UrlEncT */   
"0='Sun+Mar+03+10:11:12+PST+1901'",
-                               /* UrlEncR */   
"0='Sun+Mar+03+10:11:12+PST+1901'",
-                               /* MsgPack */   
"91BC53756E204D61722030332031303A31313A3132205053542031393031",
-                               /* MsgPackT */  
"91BC53756E204D61722030332031303A31313A3132205053542031393031",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun Mar 03 10:11:12 PST 
1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun Mar 03 10:11:12 PST 
1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  <rdf:Seq>\n    
<rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+                               new ComboInput2<Date[]>(
+                                       "DateSwap.ToString/dateArray",
+                                       Date[].class,
+                                       dateArray,
+                                       DateSwap.ToString.class,
+                                       /* Json */              "['Sun Mar 03 
10:11:12 PST 1901']",
+                                       /* JsonT */             "['Sun Mar 03 
10:11:12 PST 1901']",
+                                       /* JsonR */             "[\n\t'Sun Mar 
03 10:11:12 PST 1901'\n]",
+                                       /* Xml */               
"<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
+                                       /* XmlT */              
"<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
+                                       /* XmlR */              
"<array>\n\t<string>Sun Mar 03 10:11:12 PST 1901</string>\n</array>\n",
+                                       /* XmlNs */             
"<array><string>Sun Mar 03 10:11:12 PST 1901</string></array>",
+                                       /* Html */              "<ul><li>Sun 
Mar 03 10:11:12 PST 1901</li></ul>",
+                                       /* HtmlT */             "<ul><li>Sun 
Mar 03 10:11:12 PST 1901</li></ul>",
+                                       /* HtmlR */             
"<ul>\n\t<li>Sun Mar 03 10:11:12 PST 1901</li>\n</ul>\n",
+                                       /* Uon */               "@('Sun Mar 03 
10:11:12 PST 1901')",
+                                       /* UonT */              "@('Sun Mar 03 
10:11:12 PST 1901')",
+                                       /* UonR */              "@(\n\t'Sun Mar 
03 10:11:12 PST 1901'\n)",
+                                       /* UrlEnc */    
"0='Sun+Mar+03+10:11:12+PST+1901'",
+                                       /* UrlEncT */   
"0='Sun+Mar+03+10:11:12+PST+1901'",
+                                       /* UrlEncR */   
"0='Sun+Mar+03+10:11:12+PST+1901'",
+                                       /* MsgPack */   
"91BC53756E204D61722030332031303A31313A3132205053542031393031",
+                                       /* MsgPackT */  
"91BC53756E204D61722030332031303A31313A3132205053542031393031",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun Mar 03 10:11:12 PST 
1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun Mar 03 10:11:12 PST 
1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Seq>\n    <rdf:li>Sun Mar 03 10:11:12 PST 1901</rdf:li>\n  
</rdf:Seq>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(Date[] o) {
+                                               assertType(Date.class, o[0]);
+                                       }
+                               }
                        },
                        {       /* 2 */
-                               "DateSwap.ToString",
-                               dateMap,
-                               DateSwap.ToString.class,
-                               /* Json */              "{foo:'Sun Mar 03 
10:11:12 PST 1901'}",
-                               /* JsonT */             "{foo:'Sun Mar 03 
10:11:12 PST 1901'}",
-                               /* JsonR */             "{\n\tfoo: 'Sun Mar 03 
10:11:12 PST 1901'\n}",
-                               /* Xml */               "<object><foo>Sun Mar 
03 10:11:12 PST 1901</foo></object>",
-                               /* XmlT */              "<object><foo>Sun Mar 
03 10:11:12 PST 1901</foo></object>",
-                               /* XmlR */              "<object>\n\t<foo>Sun 
Mar 03 10:11:12 PST 1901</foo>\n</object>\n",
-                               /* XmlNs */             "<object><foo>Sun Mar 
03 10:11:12 PST 1901</foo></object>",
-                               /* Html */              
"<table><tr><td>foo</td><td>Sun Mar 03 10:11:12 PST 1901</td></tr></table>",
-                               /* HtmlT */             
"<table><tr><td>foo</td><td>Sun Mar 03 10:11:12 PST 1901</td></tr></table>",
-                               /* HtmlR */             
"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Sun Mar 03 10:11:12 PST 
1901</td>\n\t</tr>\n</table>\n",
-                               /* Uon */               "(foo='Sun Mar 03 
10:11:12 PST 1901')",
-                               /* UonT */              "(foo='Sun Mar 03 
10:11:12 PST 1901')",
-                               /* UonR */              "(\n\tfoo='Sun Mar 03 
10:11:12 PST 1901'\n)",
-                               /* UrlEnc */    
"foo='Sun+Mar+03+10:11:12+PST+1901'",
-                               /* UrlEncT */   
"foo='Sun+Mar+03+10:11:12+PST+1901'",
-                               /* UrlEncR */   
"foo='Sun+Mar+03+10:11:12+PST+1901'",
-                               /* MsgPack */   
"81A3666F6FBC53756E204D61722030332031303A31313A3132205053542031393031",
-                               /* MsgPackT */  
"81A3666F6FBC53756E204D61722030332031303A31313A3132205053542031393031",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun Mar 03 10:11:12 PST 
1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun Mar 03 10:11:12 PST 
1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n  
</rdf:Description>\n</rdf:RDF>\n",
+                               new ComboInput2<ObjectMap>(
+                                       "DateSwap.ToString",
+                                       
getType(Map.class,String.class,Date.class),
+                                       dateMap,
+                                       DateSwap.ToString.class,
+                                       /* Json */              "{foo:'Sun Mar 
03 10:11:12 PST 1901'}",
+                                       /* JsonT */             "{foo:'Sun Mar 
03 10:11:12 PST 1901'}",
+                                       /* JsonR */             "{\n\tfoo: 'Sun 
Mar 03 10:11:12 PST 1901'\n}",
+                                       /* Xml */               
"<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
+                                       /* XmlT */              
"<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
+                                       /* XmlR */              
"<object>\n\t<foo>Sun Mar 03 10:11:12 PST 1901</foo>\n</object>\n",
+                                       /* XmlNs */             
"<object><foo>Sun Mar 03 10:11:12 PST 1901</foo></object>",
+                                       /* Html */              
"<table><tr><td>foo</td><td>Sun Mar 03 10:11:12 PST 1901</td></tr></table>",
+                                       /* HtmlT */             
"<table><tr><td>foo</td><td>Sun Mar 03 10:11:12 PST 1901</td></tr></table>",
+                                       /* HtmlR */             
"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Sun Mar 03 10:11:12 PST 
1901</td>\n\t</tr>\n</table>\n",
+                                       /* Uon */               "(foo='Sun Mar 
03 10:11:12 PST 1901')",
+                                       /* UonT */              "(foo='Sun Mar 
03 10:11:12 PST 1901')",
+                                       /* UonR */              "(\n\tfoo='Sun 
Mar 03 10:11:12 PST 1901'\n)",
+                                       /* UrlEnc */    
"foo='Sun+Mar+03+10:11:12+PST+1901'",
+                                       /* UrlEncT */   
"foo='Sun+Mar+03+10:11:12+PST+1901'",
+                                       /* UrlEncR */   
"foo='Sun+Mar+03+10:11:12+PST+1901'",
+                                       /* MsgPack */   
"81A3666F6FBC53756E204D61722030332031303A31313A3132205053542031393031",
+                                       /* MsgPackT */  
"81A3666F6FBC53756E204D61722030332031303A31313A3132205053542031393031",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun Mar 03 10:11:12 PST 
1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun Mar 03 10:11:12 PST 
1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <jp:foo>Sun Mar 03 10:11:12 PST 1901</jp:foo>\n  
</rdf:Description>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(ObjectMap o) {
+                                               assertType(Date.class, 
o.get("foo"));
+                                       }
+                               }
                        },
                        {       /* 3 */
-                               "DateSwap.ISO8601DT/singleDate",
-                               singleDate,
-                               DateSwap.ISO8601DT.class,
-                               /* Json */              
"'1901-03-03T10:11:12-08:00'",
-                               /* JsonT */             
"'1901-03-03T10:11:12-08:00'",
-                               /* JsonR */             
"'1901-03-03T10:11:12-08:00'",
-                               /* Xml */               
"<string>1901-03-03T10:11:12-08:00</string>",
-                               /* XmlT */              
"<string>1901-03-03T10:11:12-08:00</string>",
-                               /* XmlR */              
"<string>1901-03-03T10:11:12-08:00</string>\n",
-                               /* XmlNs */             
"<string>1901-03-03T10:11:12-08:00</string>",
-                               /* Html */              
"<string>1901-03-03T10:11:12-08:00</string>",
-                               /* HtmlT */             
"<string>1901-03-03T10:11:12-08:00</string>",
-                               /* HtmlR */             
"<string>1901-03-03T10:11:12-08:00</string>",
-                               /* Uon */               
"1901-03-03T10:11:12-08:00",
-                               /* UonT */              
"1901-03-03T10:11:12-08:00",
-                               /* UonR */              
"1901-03-03T10:11:12-08:00",
-                               /* UrlEnc */    
"_value=1901-03-03T10:11:12-08:00",
-                               /* UrlEncT */   
"_value=1901-03-03T10:11:12-08:00",
-                               /* UrlEncR */   
"_value=1901-03-03T10:11:12-08:00",
-                               /* MsgPack */   
"B9313930312D30332D30335431303A31313A31322D30383A3030",
-                               /* MsgPackT */  
"B9313930312D30332D30335431303A31313A31322D30383A3030",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<j:value>1901-03-03T10:11:12-08:00</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<j:value>1901-03-03T10:11:12-08:00</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <j:value>1901-03-03T10:11:12-08:00</j:value>\n  
</rdf:Description>\n</rdf:RDF>\n",
+                               new ComboInput2<Date>(
+                                       "DateSwap.ISO8601DT/singleDate",
+                                       Date.class,
+                                       singleDate,
+                                       DateSwap.ISO8601DT.class,
+                                       /* Json */              
"'1901-03-03T10:11:12-08:00'",
+                                       /* JsonT */             
"'1901-03-03T10:11:12-08:00'",
+                                       /* JsonR */             
"'1901-03-03T10:11:12-08:00'",
+                                       /* Xml */               
"<string>1901-03-03T10:11:12-08:00</string>",
+                                       /* XmlT */              
"<string>1901-03-03T10:11:12-08:00</string>",
+                                       /* XmlR */              
"<string>1901-03-03T10:11:12-08:00</string>\n",
+                                       /* XmlNs */             
"<string>1901-03-03T10:11:12-08:00</string>",
+                                       /* Html */              
"<string>1901-03-03T10:11:12-08:00</string>",
+                                       /* HtmlT */             
"<string>1901-03-03T10:11:12-08:00</string>",
+                                       /* HtmlR */             
"<string>1901-03-03T10:11:12-08:00</string>",
+                                       /* Uon */               
"1901-03-03T10:11:12-08:00",
+                                       /* UonT */              
"1901-03-03T10:11:12-08:00",
+                                       /* UonR */              
"1901-03-03T10:11:12-08:00",
+                                       /* UrlEnc */    
"_value=1901-03-03T10:11:12-08:00",
+                                       /* UrlEncT */   
"_value=1901-03-03T10:11:12-08:00",
+                                       /* UrlEncR */   
"_value=1901-03-03T10:11:12-08:00",
+                                       /* MsgPack */   
"B9313930312D30332D30335431303A31313A31322D30383A3030",
+                                       /* MsgPackT */  
"B9313930312D30332D30335431303A31313A31322D30383A3030",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<j:value>1901-03-03T10:11:12-08:00</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<j:value>1901-03-03T10:11:12-08:00</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <j:value>1901-03-03T10:11:12-08:00</j:value>\n  
</rdf:Description>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(Date o) {
+                                               assertType(Date.class, o);
+                                       }
+                               }
                        },
                        {       /* 4 */
-                               "DateSwap.ISO8601DT/dateArray",
-                               dateArray,
-                               DateSwap.ISO8601DT.class,
-                               /* Json */              
"['1901-03-03T10:11:12-08:00']",
-                               /* JsonT */             
"['1901-03-03T10:11:12-08:00']",
-                               /* JsonR */             
"[\n\t'1901-03-03T10:11:12-08:00'\n]",
-                               /* Xml */               
"<array><string>1901-03-03T10:11:12-08:00</string></array>",
-                               /* XmlT */              
"<array><string>1901-03-03T10:11:12-08:00</string></array>",
-                               /* XmlR */              
"<array>\n\t<string>1901-03-03T10:11:12-08:00</string>\n</array>\n",
-                               /* XmlNs */             
"<array><string>1901-03-03T10:11:12-08:00</string></array>",
-                               /* Html */              
"<ul><li>1901-03-03T10:11:12-08:00</li></ul>",
-                               /* HtmlT */             
"<ul><li>1901-03-03T10:11:12-08:00</li></ul>",
-                               /* HtmlR */             
"<ul>\n\t<li>1901-03-03T10:11:12-08:00</li>\n</ul>\n",
-                               /* Uon */               
"@(1901-03-03T10:11:12-08:00)",
-                               /* UonT */              
"@(1901-03-03T10:11:12-08:00)",
-                               /* UonR */              
"@(\n\t1901-03-03T10:11:12-08:00\n)",
-                               /* UrlEnc */    "0=1901-03-03T10:11:12-08:00",
-                               /* UrlEncT */   "0=1901-03-03T10:11:12-08:00",
-                               /* UrlEncR */   "0=1901-03-03T10:11:12-08:00",
-                               /* MsgPack */   
"91B9313930312D30332D30335431303A31313A31322D30383A3030",
-                               /* MsgPackT */  
"91B9313930312D30332D30335431303A31313A31322D30383A3030",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  <rdf:Seq>\n    
<rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+                               new ComboInput2<Date[]>(
+                                       "DateSwap.ISO8601DT/dateArray",
+                                       Date[].class,
+                                       dateArray,
+                                       DateSwap.ISO8601DT.class,
+                                       /* Json */              
"['1901-03-03T10:11:12-08:00']",
+                                       /* JsonT */             
"['1901-03-03T10:11:12-08:00']",
+                                       /* JsonR */             
"[\n\t'1901-03-03T10:11:12-08:00'\n]",
+                                       /* Xml */               
"<array><string>1901-03-03T10:11:12-08:00</string></array>",
+                                       /* XmlT */              
"<array><string>1901-03-03T10:11:12-08:00</string></array>",
+                                       /* XmlR */              
"<array>\n\t<string>1901-03-03T10:11:12-08:00</string>\n</array>\n",
+                                       /* XmlNs */             
"<array><string>1901-03-03T10:11:12-08:00</string></array>",
+                                       /* Html */              
"<ul><li>1901-03-03T10:11:12-08:00</li></ul>",
+                                       /* HtmlT */             
"<ul><li>1901-03-03T10:11:12-08:00</li></ul>",
+                                       /* HtmlR */             
"<ul>\n\t<li>1901-03-03T10:11:12-08:00</li>\n</ul>\n",
+                                       /* Uon */               
"@(1901-03-03T10:11:12-08:00)",
+                                       /* UonT */              
"@(1901-03-03T10:11:12-08:00)",
+                                       /* UonR */              
"@(\n\t1901-03-03T10:11:12-08:00\n)",
+                                       /* UrlEnc */    
"0=1901-03-03T10:11:12-08:00",
+                                       /* UrlEncT */   
"0=1901-03-03T10:11:12-08:00",
+                                       /* UrlEncR */   
"0=1901-03-03T10:11:12-08:00",
+                                       /* MsgPack */   
"91B9313930312D30332D30335431303A31313A31322D30383A3030",
+                                       /* MsgPackT */  
"91B9313930312D30332D30335431303A31313A31322D30383A3030",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Seq>\n    <rdf:li>1901-03-03T10:11:12-08:00</rdf:li>\n  
</rdf:Seq>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(Date[] o) {
+                                               assertType(Date.class, o[0]);
+                                       }
+                               }
                        },
                        {       /* 5 */
-                               "DateSwap.ISO8601DT/dateMap",
-                               dateMap,
-                               DateSwap.ISO8601DT.class,
-                               /* Json */              
"{foo:'1901-03-03T10:11:12-08:00'}",
-                               /* JsonT */             
"{foo:'1901-03-03T10:11:12-08:00'}",
-                               /* JsonR */             "{\n\tfoo: 
'1901-03-03T10:11:12-08:00'\n}",
-                               /* Xml */               
"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
-                               /* XmlT */              
"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
-                               /* XmlR */              
"<object>\n\t<foo>1901-03-03T10:11:12-08:00</foo>\n</object>\n",
-                               /* XmlNs */             
"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
-                               /* Html */              
"<table><tr><td>foo</td><td>1901-03-03T10:11:12-08:00</td></tr></table>",
-                               /* HtmlT */             
"<table><tr><td>foo</td><td>1901-03-03T10:11:12-08:00</td></tr></table>",
-                               /* HtmlR */             
"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>1901-03-03T10:11:12-08:00</td>\n\t</tr>\n</table>\n",
-                               /* Uon */               
"(foo=1901-03-03T10:11:12-08:00)",
-                               /* UonT */              
"(foo=1901-03-03T10:11:12-08:00)",
-                               /* UonR */              
"(\n\tfoo=1901-03-03T10:11:12-08:00\n)",
-                               /* UrlEnc */    "foo=1901-03-03T10:11:12-08:00",
-                               /* UrlEncT */   "foo=1901-03-03T10:11:12-08:00",
-                               /* UrlEncR */   "foo=1901-03-03T10:11:12-08:00",
-                               /* MsgPack */   
"81A3666F6FB9313930312D30332D30335431303A31313A31322D30383A3030",
-                               /* MsgPackT */  
"81A3666F6FB9313930312D30332D30335431303A31313A31322D30383A3030",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n  
</rdf:Description>\n</rdf:RDF>\n",
+                               new ComboInput2<ObjectMap>(
+                                       "DateSwap.ISO8601DT/dateMap",
+                                       
getType(Map.class,String.class,Date.class),
+                                       dateMap,
+                                       DateSwap.ISO8601DT.class,
+                                       /* Json */              
"{foo:'1901-03-03T10:11:12-08:00'}",
+                                       /* JsonT */             
"{foo:'1901-03-03T10:11:12-08:00'}",
+                                       /* JsonR */             "{\n\tfoo: 
'1901-03-03T10:11:12-08:00'\n}",
+                                       /* Xml */               
"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
+                                       /* XmlT */              
"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
+                                       /* XmlR */              
"<object>\n\t<foo>1901-03-03T10:11:12-08:00</foo>\n</object>\n",
+                                       /* XmlNs */             
"<object><foo>1901-03-03T10:11:12-08:00</foo></object>",
+                                       /* Html */              
"<table><tr><td>foo</td><td>1901-03-03T10:11:12-08:00</td></tr></table>",
+                                       /* HtmlT */             
"<table><tr><td>foo</td><td>1901-03-03T10:11:12-08:00</td></tr></table>",
+                                       /* HtmlR */             
"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>1901-03-03T10:11:12-08:00</td>\n\t</tr>\n</table>\n",
+                                       /* Uon */               
"(foo=1901-03-03T10:11:12-08:00)",
+                                       /* UonT */              
"(foo=1901-03-03T10:11:12-08:00)",
+                                       /* UonR */              
"(\n\tfoo=1901-03-03T10:11:12-08:00\n)",
+                                       /* UrlEnc */    
"foo=1901-03-03T10:11:12-08:00",
+                                       /* UrlEncT */   
"foo=1901-03-03T10:11:12-08:00",
+                                       /* UrlEncR */   
"foo=1901-03-03T10:11:12-08:00",
+                                       /* MsgPack */   
"81A3666F6FB9313930312D30332D30335431303A31313A31322D30383A3030",
+                                       /* MsgPackT */  
"81A3666F6FB9313930312D30332D30335431303A31313A31322D30383A3030",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <jp:foo>1901-03-03T10:11:12-08:00</jp:foo>\n  
</rdf:Description>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(ObjectMap o) {
+                                               assertType(Date.class, 
o.get("foo"));
+                                       }
+                               }
                        },
                        {       /* 6 */
-                               "DateSwap.RFC2822DTZ/singleDate",
-                               singleDate,
-                               DateSwap.RFC2822DTZ.class,
-                               /* Json */              "'Sun, 03 Mar 1901 
18:11:12 GMT'",
-                               /* JsonT */             "'Sun, 03 Mar 1901 
18:11:12 GMT'",
-                               /* JsonR */             "'Sun, 03 Mar 1901 
18:11:12 GMT'",
-                               /* Xml */               "<string>Sun, 03 Mar 
1901 18:11:12 GMT</string>",
-                               /* XmlT */              "<string>Sun, 03 Mar 
1901 18:11:12 GMT</string>",
-                               /* XmlR */              "<string>Sun, 03 Mar 
1901 18:11:12 GMT</string>\n",
-                               /* XmlNs */             "<string>Sun, 03 Mar 
1901 18:11:12 GMT</string>",
-                               /* Html */              "<string>Sun, 03 Mar 
1901 18:11:12 GMT</string>",
-                               /* HtmlT */             "<string>Sun, 03 Mar 
1901 18:11:12 GMT</string>",
-                               /* HtmlR */             "<string>Sun, 03 Mar 
1901 18:11:12 GMT</string>",
-                               /* Uon */               "'Sun, 03 Mar 1901 
18:11:12 GMT'",
-                               /* UonT */              "'Sun, 03 Mar 1901 
18:11:12 GMT'",
-                               /* UonR */              "'Sun, 03 Mar 1901 
18:11:12 GMT'",
-                               /* UrlEnc */    
"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
-                               /* UrlEncT */   
"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
-                               /* UrlEncR */   
"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
-                               /* MsgPack */   
"BD53756E2C203033204D617220313930312031383A31313A313220474D54",
-                               /* MsgPackT */  
"BD53756E2C203033204D617220313930312031383A31313A313220474D54",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun, 03 Mar 1901 18:11:12 
GMT</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun, 03 Mar 1901 18:11:12 
GMT</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n  
</rdf:Description>\n</rdf:RDF>\n",
+                               new ComboInput2<Date>(
+                                       "DateSwap.RFC2822DTZ/singleDate",
+                                       Date.class,
+                                       singleDate,
+                                       DateSwap.RFC2822DTZ.class,
+                                       /* Json */              "'Sun, 03 Mar 
1901 18:11:12 GMT'",
+                                       /* JsonT */             "'Sun, 03 Mar 
1901 18:11:12 GMT'",
+                                       /* JsonR */             "'Sun, 03 Mar 
1901 18:11:12 GMT'",
+                                       /* Xml */               "<string>Sun, 
03 Mar 1901 18:11:12 GMT</string>",
+                                       /* XmlT */              "<string>Sun, 
03 Mar 1901 18:11:12 GMT</string>",
+                                       /* XmlR */              "<string>Sun, 
03 Mar 1901 18:11:12 GMT</string>\n",
+                                       /* XmlNs */             "<string>Sun, 
03 Mar 1901 18:11:12 GMT</string>",
+                                       /* Html */              "<string>Sun, 
03 Mar 1901 18:11:12 GMT</string>",
+                                       /* HtmlT */             "<string>Sun, 
03 Mar 1901 18:11:12 GMT</string>",
+                                       /* HtmlR */             "<string>Sun, 
03 Mar 1901 18:11:12 GMT</string>",
+                                       /* Uon */               "'Sun, 03 Mar 
1901 18:11:12 GMT'",
+                                       /* UonT */              "'Sun, 03 Mar 
1901 18:11:12 GMT'",
+                                       /* UonR */              "'Sun, 03 Mar 
1901 18:11:12 GMT'",
+                                       /* UrlEnc */    
"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
+                                       /* UrlEncT */   
"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
+                                       /* UrlEncR */   
"_value='Sun,+03+Mar+1901+18:11:12+GMT'",
+                                       /* MsgPack */   
"BD53756E2C203033204D617220313930312031383A31313A313220474D54",
+                                       /* MsgPackT */  
"BD53756E2C203033204D617220313930312031383A31313A313220474D54",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun, 03 Mar 1901 18:11:12 
GMT</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<j:value>Sun, 03 Mar 1901 18:11:12 
GMT</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value>\n  
</rdf:Description>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(Date o) {
+                                               assertType(Date.class, o);
+                                       }
+                               }
                        },
                        {       /* 7 */
-                               "DateSwap.RFC2822DTZ/dateArray",
-                               dateArray,
-                               DateSwap.RFC2822DTZ.class,
-                               /* Json */              "['Sun, 03 Mar 1901 
18:11:12 GMT']",
-                               /* JsonT */             "['Sun, 03 Mar 1901 
18:11:12 GMT']",
-                               /* JsonR */             "[\n\t'Sun, 03 Mar 1901 
18:11:12 GMT'\n]",
-                               /* Xml */               "<array><string>Sun, 03 
Mar 1901 18:11:12 GMT</string></array>",
-                               /* XmlT */              "<array><string>Sun, 03 
Mar 1901 18:11:12 GMT</string></array>",
-                               /* XmlR */              
"<array>\n\t<string>Sun, 03 Mar 1901 18:11:12 GMT</string>\n</array>\n",
-                               /* XmlNs */             "<array><string>Sun, 03 
Mar 1901 18:11:12 GMT</string></array>",
-                               /* Html */              "<ul><li>Sun, 03 Mar 
1901 18:11:12 GMT</li></ul>",
-                               /* HtmlT */             "<ul><li>Sun, 03 Mar 
1901 18:11:12 GMT</li></ul>",
-                               /* HtmlR */             "<ul>\n\t<li>Sun, 03 
Mar 1901 18:11:12 GMT</li>\n</ul>\n",
-                               /* Uon */               "@('Sun, 03 Mar 1901 
18:11:12 GMT')",
-                               /* UonT */              "@('Sun, 03 Mar 1901 
18:11:12 GMT')",
-                               /* UonR */              "@(\n\t'Sun, 03 Mar 
1901 18:11:12 GMT'\n)",
-                               /* UrlEnc */    
"0='Sun,+03+Mar+1901+18:11:12+GMT'",
-                               /* UrlEncT */   
"0='Sun,+03+Mar+1901+18:11:12+GMT'",
-                               /* UrlEncR */   
"0='Sun,+03+Mar+1901+18:11:12+GMT'",
-                               /* MsgPack */   
"91BD53756E2C203033204D617220313930312031383A31313A313220474D54",
-                               /* MsgPackT */  
"91BD53756E2C203033204D617220313930312031383A31313A313220474D54",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun, 03 Mar 1901 18:11:12 
GMT</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun, 03 Mar 1901 18:11:12 
GMT</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  <rdf:Seq>\n    
<rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+                               new ComboInput2<Date[]>(
+                                       "DateSwap.RFC2822DTZ/dateArray",
+                                       Date[].class,
+                                       dateArray,
+                                       DateSwap.RFC2822DTZ.class,
+                                       /* Json */              "['Sun, 03 Mar 
1901 18:11:12 GMT']",
+                                       /* JsonT */             "['Sun, 03 Mar 
1901 18:11:12 GMT']",
+                                       /* JsonR */             "[\n\t'Sun, 03 
Mar 1901 18:11:12 GMT'\n]",
+                                       /* Xml */               
"<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
+                                       /* XmlT */              
"<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
+                                       /* XmlR */              
"<array>\n\t<string>Sun, 03 Mar 1901 18:11:12 GMT</string>\n</array>\n",
+                                       /* XmlNs */             
"<array><string>Sun, 03 Mar 1901 18:11:12 GMT</string></array>",
+                                       /* Html */              "<ul><li>Sun, 
03 Mar 1901 18:11:12 GMT</li></ul>",
+                                       /* HtmlT */             "<ul><li>Sun, 
03 Mar 1901 18:11:12 GMT</li></ul>",
+                                       /* HtmlR */             
"<ul>\n\t<li>Sun, 03 Mar 1901 18:11:12 GMT</li>\n</ul>\n",
+                                       /* Uon */               "@('Sun, 03 Mar 
1901 18:11:12 GMT')",
+                                       /* UonT */              "@('Sun, 03 Mar 
1901 18:11:12 GMT')",
+                                       /* UonR */              "@(\n\t'Sun, 03 
Mar 1901 18:11:12 GMT'\n)",
+                                       /* UrlEnc */    
"0='Sun,+03+Mar+1901+18:11:12+GMT'",
+                                       /* UrlEncT */   
"0='Sun,+03+Mar+1901+18:11:12+GMT'",
+                                       /* UrlEncR */   
"0='Sun,+03+Mar+1901+18:11:12+GMT'",
+                                       /* MsgPack */   
"91BD53756E2C203033204D617220313930312031383A31313A313220474D54",
+                                       /* MsgPackT */  
"91BD53756E2C203033204D617220313930312031383A31313A313220474D54",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun, 03 Mar 1901 18:11:12 
GMT</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Sun, 03 Mar 1901 18:11:12 
GMT</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Seq>\n    <rdf:li>Sun, 03 Mar 1901 18:11:12 GMT</rdf:li>\n  
</rdf:Seq>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(Date[] o) {
+                                               assertType(Date.class, o[0]);
+                                       }
+                               }
                        },
                        {       /* 8 */
-                               "DateSwap.RFC2822DTZ/dateMap",
-                               dateMap,
-                               DateSwap.RFC2822DTZ.class,
-                               /* Json */              "{foo:'Sun, 03 Mar 1901 
18:11:12 GMT'}",
-                               /* JsonT */             "{foo:'Sun, 03 Mar 1901 
18:11:12 GMT'}",
-                               /* JsonR */             "{\n\tfoo: 'Sun, 03 Mar 
1901 18:11:12 GMT'\n}",
-                               /* Xml */               "<object><foo>Sun, 03 
Mar 1901 18:11:12 GMT</foo></object>",
-                               /* XmlT */              "<object><foo>Sun, 03 
Mar 1901 18:11:12 GMT</foo></object>",
-                               /* XmlR */              "<object>\n\t<foo>Sun, 
03 Mar 1901 18:11:12 GMT</foo>\n</object>\n",
-                               /* XmlNs */             "<object><foo>Sun, 03 
Mar 1901 18:11:12 GMT</foo></object>",
-                               /* Html */              
"<table><tr><td>foo</td><td>Sun, 03 Mar 1901 18:11:12 GMT</td></tr></table>",
-                               /* HtmlT */             
"<table><tr><td>foo</td><td>Sun, 03 Mar 1901 18:11:12 GMT</td></tr></table>",
-                               /* HtmlR */             
"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Sun, 03 Mar 1901 18:11:12 
GMT</td>\n\t</tr>\n</table>\n",
-                               /* Uon */               "(foo='Sun, 03 Mar 1901 
18:11:12 GMT')",
-                               /* UonT */              "(foo='Sun, 03 Mar 1901 
18:11:12 GMT')",
-                               /* UonR */              "(\n\tfoo='Sun, 03 Mar 
1901 18:11:12 GMT'\n)",
-                               /* UrlEnc */    
"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
-                               /* UrlEncT */   
"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
-                               /* UrlEncR */   
"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
-                               /* MsgPack */   
"81A3666F6FBD53756E2C203033204D617220313930312031383A31313A313220474D54",
-                               /* MsgPackT */  
"81A3666F6FBD53756E2C203033204D617220313930312031383A31313A313220474D54",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun, 03 Mar 1901 18:11:12 
GMT</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun, 03 Mar 1901 18:11:12 
GMT</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n  
</rdf:Description>\n</rdf:RDF>\n",
+                               new ComboInput2<ObjectMap>(
+                                       "DateSwap.RFC2822DTZ/dateMap",
+                                       
getType(Map.class,String.class,Date.class),
+                                       dateMap,
+                                       DateSwap.RFC2822DTZ.class,
+                                       /* Json */              "{foo:'Sun, 03 
Mar 1901 18:11:12 GMT'}",
+                                       /* JsonT */             "{foo:'Sun, 03 
Mar 1901 18:11:12 GMT'}",
+                                       /* JsonR */             "{\n\tfoo: 
'Sun, 03 Mar 1901 18:11:12 GMT'\n}",
+                                       /* Xml */               
"<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
+                                       /* XmlT */              
"<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
+                                       /* XmlR */              
"<object>\n\t<foo>Sun, 03 Mar 1901 18:11:12 GMT</foo>\n</object>\n",
+                                       /* XmlNs */             
"<object><foo>Sun, 03 Mar 1901 18:11:12 GMT</foo></object>",
+                                       /* Html */              
"<table><tr><td>foo</td><td>Sun, 03 Mar 1901 18:11:12 GMT</td></tr></table>",
+                                       /* HtmlT */             
"<table><tr><td>foo</td><td>Sun, 03 Mar 1901 18:11:12 GMT</td></tr></table>",
+                                       /* HtmlR */             
"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Sun, 03 Mar 1901 18:11:12 
GMT</td>\n\t</tr>\n</table>\n",
+                                       /* Uon */               "(foo='Sun, 03 
Mar 1901 18:11:12 GMT')",
+                                       /* UonT */              "(foo='Sun, 03 
Mar 1901 18:11:12 GMT')",
+                                       /* UonR */              "(\n\tfoo='Sun, 
03 Mar 1901 18:11:12 GMT'\n)",
+                                       /* UrlEnc */    
"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
+                                       /* UrlEncT */   
"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
+                                       /* UrlEncR */   
"foo='Sun,+03+Mar+1901+18:11:12+GMT'",
+                                       /* MsgPack */   
"81A3666F6FBD53756E2C203033204D617220313930312031383A31313A313220474D54",
+                                       /* MsgPackT */  
"81A3666F6FBD53756E2C203033204D617220313930312031383A31313A313220474D54",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun, 03 Mar 1901 18:11:12 
GMT</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Sun, 03 Mar 1901 18:11:12 
GMT</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <jp:foo>Sun, 03 Mar 1901 18:11:12 GMT</jp:foo>\n  
</rdf:Description>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(ObjectMap o) {
+                                               assertType(Date.class, 
o.get("foo"));
+                                       }
+                               }
                        },
                        {       /* 9 */
-                               "DateLongSwap",
-                               singleDate,
-                               DateLongSwap.class,
-                               /* Json */              "-2172116928000",
-                               /* JsonT */             "-2172116928000",
-                               /* JsonR */             "-2172116928000",
-                               /* Xml */               
"<number>-2172116928000</number>",
-                               /* XmlT */              
"<number>-2172116928000</number>",
-                               /* XmlR */              
"<number>-2172116928000</number>\n",
-                               /* XmlNs */             
"<number>-2172116928000</number>",
-                               /* Html */              
"<number>-2172116928000</number>",
-                               /* HtmlT */             
"<number>-2172116928000</number>",
-                               /* HtmlR */             
"<number>-2172116928000</number>",
-                               /* Uon */               "-2172116928000",
-                               /* UonT */              "-2172116928000",
-                               /* UonR */              "-2172116928000",
-                               /* UrlEnc */    "_value=-2172116928000",
-                               /* UrlEncT */   "_value=-2172116928000",
-                               /* UrlEncR */   "_value=-2172116928000",
-                               /* MsgPack */   "D3FFFFFE0643BDFA00",
-                               /* MsgPackT */  "D3FFFFFE0643BDFA00",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<j:value>-2172116928000</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<j:value>-2172116928000</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <j:value>-2172116928000</j:value>\n  
</rdf:Description>\n</rdf:RDF>\n",
+                               new ComboInput2<Date>(
+                                       "DateLongSwap",
+                                       Date.class,
+                                       singleDate,
+                                       DateLongSwap.class,
+                                       /* Json */              
"-2172116928000",
+                                       /* JsonT */             
"-2172116928000",
+                                       /* JsonR */             
"-2172116928000",
+                                       /* Xml */               
"<number>-2172116928000</number>",
+                                       /* XmlT */              
"<number>-2172116928000</number>",
+                                       /* XmlR */              
"<number>-2172116928000</number>\n",
+                                       /* XmlNs */             
"<number>-2172116928000</number>",
+                                       /* Html */              
"<number>-2172116928000</number>",
+                                       /* HtmlT */             
"<number>-2172116928000</number>",
+                                       /* HtmlR */             
"<number>-2172116928000</number>",
+                                       /* Uon */               
"-2172116928000",
+                                       /* UonT */              
"-2172116928000",
+                                       /* UonR */              
"-2172116928000",
+                                       /* UrlEnc */    "_value=-2172116928000",
+                                       /* UrlEncT */   "_value=-2172116928000",
+                                       /* UrlEncR */   "_value=-2172116928000",
+                                       /* MsgPack */   "D3FFFFFE0643BDFA00",
+                                       /* MsgPackT */  "D3FFFFFE0643BDFA00",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<j:value>-2172116928000</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<j:value>-2172116928000</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <j:value>-2172116928000</j:value>\n  
</rdf:Description>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(Date o) {
+                                               assertType(Date.class, o);
+                                       }
+                               }
                        },
                        {       /* 10 */
-                               "DateLongSwap/dateArray",
-                               dateArray,
-                               DateLongSwap.class,
-                               /* Json */              "[-2172116928000]",
-                               /* JsonT */             "[-2172116928000]",
-                               /* JsonR */             
"[\n\t-2172116928000\n]",
-                               /* Xml */               
"<array><number>-2172116928000</number></array>",
-                               /* XmlT */              
"<array><number>-2172116928000</number></array>",
-                               /* XmlR */              
"<array>\n\t<number>-2172116928000</number>\n</array>\n",
-                               /* XmlNs */             
"<array><number>-2172116928000</number></array>",
-                               /* Html */              
"<ul><li><number>-2172116928000</number></li></ul>",
-                               /* HtmlT */             
"<ul><li><number>-2172116928000</number></li></ul>",
-                               /* HtmlR */             
"<ul>\n\t<li><number>-2172116928000</number></li>\n</ul>\n",
-                               /* Uon */               "@(-2172116928000)",
-                               /* UonT */              "@(-2172116928000)",
-                               /* UonR */              
"@(\n\t-2172116928000\n)",
-                               /* UrlEnc */    "0=-2172116928000",
-                               /* UrlEncT */   "0=-2172116928000",
-                               /* UrlEncR */   "0=-2172116928000",
-                               /* MsgPack */   "91D3FFFFFE0643BDFA00",
-                               /* MsgPackT */  "91D3FFFFFE0643BDFA00",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>-2172116928000</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>-2172116928000</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  <rdf:Seq>\n    
<rdf:li>-2172116928000</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+                               new ComboInput2<Date[]>(
+                                       "DateLongSwap/dateArray",
+                                       Date[].class,
+                                       dateArray,
+                                       DateLongSwap.class,
+                                       /* Json */              
"[-2172116928000]",
+                                       /* JsonT */             
"[-2172116928000]",
+                                       /* JsonR */             
"[\n\t-2172116928000\n]",
+                                       /* Xml */               
"<array><number>-2172116928000</number></array>",
+                                       /* XmlT */              
"<array><number>-2172116928000</number></array>",
+                                       /* XmlR */              
"<array>\n\t<number>-2172116928000</number>\n</array>\n",
+                                       /* XmlNs */             
"<array><number>-2172116928000</number></array>",
+                                       /* Html */              
"<ul><li><number>-2172116928000</number></li></ul>",
+                                       /* HtmlT */             
"<ul><li><number>-2172116928000</number></li></ul>",
+                                       /* HtmlR */             
"<ul>\n\t<li><number>-2172116928000</number></li>\n</ul>\n",
+                                       /* Uon */               
"@(-2172116928000)",
+                                       /* UonT */              
"@(-2172116928000)",
+                                       /* UonR */              
"@(\n\t-2172116928000\n)",
+                                       /* UrlEnc */    "0=-2172116928000",
+                                       /* UrlEncT */   "0=-2172116928000",
+                                       /* UrlEncR */   "0=-2172116928000",
+                                       /* MsgPack */   "91D3FFFFFE0643BDFA00",
+                                       /* MsgPackT */  "91D3FFFFFE0643BDFA00",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>-2172116928000</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>-2172116928000</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Seq>\n    <rdf:li>-2172116928000</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(Date[] o) {
+                                               assertType(Date.class, o[0]);
+                                       }
+                               }
                        },
                        {       /* 11 */
-                               "DateLongSwap/dateMap",
-                               dateMap,
-                               DateLongSwap.class,
-                               /* Json */              "{foo:-2172116928000}",
-                               /* JsonT */             "{foo:-2172116928000}",
-                               /* JsonR */             "{\n\tfoo: 
-2172116928000\n}",
-                               /* Xml */               "<object><foo 
_type='number'>-2172116928000</foo></object>",
-                               /* XmlT */              "<object><foo 
t='number'>-2172116928000</foo></object>",
-                               /* XmlR */              "<object>\n\t<foo 
_type='number'>-2172116928000</foo>\n</object>\n",
-                               /* XmlNs */             "<object><foo 
_type='number'>-2172116928000</foo></object>",
-                               /* Html */              
"<table><tr><td>foo</td><td><number>-2172116928000</number></td></tr></table>",
-                               /* HtmlT */             
"<table><tr><td>foo</td><td><number>-2172116928000</number></td></tr></table>",
-                               /* HtmlR */             
"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td><number>-2172116928000</number></td>\n\t</tr>\n</table>\n",
-                               /* Uon */               "(foo=-2172116928000)",
-                               /* UonT */              "(foo=-2172116928000)",
-                               /* UonR */              
"(\n\tfoo=-2172116928000\n)",
-                               /* UrlEnc */    "foo=-2172116928000",
-                               /* UrlEncT */   "foo=-2172116928000",
-                               /* UrlEncR */   "foo=-2172116928000",
-                               /* MsgPack */   "81A3666F6FD3FFFFFE0643BDFA00",
-                               /* MsgPackT */  "81A3666F6FD3FFFFFE0643BDFA00",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>-2172116928000</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>-2172116928000</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <jp:foo>-2172116928000</jp:foo>\n  
</rdf:Description>\n</rdf:RDF>\n",
+                               new ComboInput2<ObjectMap>(
+                                       "DateLongSwap/dateMap",
+                                       
getType(Map.class,String.class,Date.class),
+                                       dateMap,
+                                       DateLongSwap.class,
+                                       /* Json */              
"{foo:-2172116928000}",
+                                       /* JsonT */             
"{foo:-2172116928000}",
+                                       /* JsonR */             "{\n\tfoo: 
-2172116928000\n}",
+                                       /* Xml */               "<object><foo 
_type='number'>-2172116928000</foo></object>",
+                                       /* XmlT */              "<object><foo 
t='number'>-2172116928000</foo></object>",
+                                       /* XmlR */              
"<object>\n\t<foo _type='number'>-2172116928000</foo>\n</object>\n",
+                                       /* XmlNs */             "<object><foo 
_type='number'>-2172116928000</foo></object>",
+                                       /* Html */              
"<table><tr><td>foo</td><td><number>-2172116928000</number></td></tr></table>",
+                                       /* HtmlT */             
"<table><tr><td>foo</td><td><number>-2172116928000</number></td></tr></table>",
+                                       /* HtmlR */             
"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td><number>-2172116928000</number></td>\n\t</tr>\n</table>\n",
+                                       /* Uon */               
"(foo=-2172116928000)",
+                                       /* UonT */              
"(foo=-2172116928000)",
+                                       /* UonR */              
"(\n\tfoo=-2172116928000\n)",
+                                       /* UrlEnc */    "foo=-2172116928000",
+                                       /* UrlEncT */   "foo=-2172116928000",
+                                       /* UrlEncR */   "foo=-2172116928000",
+                                       /* MsgPack */   
"81A3666F6FD3FFFFFE0643BDFA00",
+                                       /* MsgPackT */  
"81A3666F6FD3FFFFFE0643BDFA00",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>-2172116928000</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>-2172116928000</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <jp:foo>-2172116928000</jp:foo>\n  
</rdf:Description>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(ObjectMap o) {
+                                               assertType(Date.class, 
o.get("foo"));
+                                       }
+                               }
                        },
                        {       /* 12 */
-                               "DateMapSwap/singleDate",
-                               singleDate,
-                               DateMapSwap.class,
-                               /* Json */              "{time:-2172116928000}",
-                               /* JsonT */             "{time:-2172116928000}",
-                               /* JsonR */             "{\n\ttime: 
-2172116928000\n}",
-                               /* Xml */               "<object><time 
_type='number'>-2172116928000</time></object>",
-                               /* XmlT */              "<object><time 
t='number'>-2172116928000</time></object>",
-                               /* XmlR */              "<object>\n\t<time 
_type='number'>-2172116928000</time>\n</object>\n",
-                               /* XmlNs */             "<object><time 
_type='number'>-2172116928000</time></object>",
-                               /* Html */              
"<table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table>",
-                               /* HtmlT */             
"<table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table>",
-                               /* HtmlR */             
"<table>\n\t<tr>\n\t\t<td>time</td>\n\t\t<td><number>-2172116928000</number></td>\n\t</tr>\n</table>\n",
-                               /* Uon */               "(time=-2172116928000)",
-                               /* UonT */              "(time=-2172116928000)",
-                               /* UonR */              
"(\n\ttime=-2172116928000\n)",
-                               /* UrlEnc */    "time=-2172116928000",
-                               /* UrlEncT */   "time=-2172116928000",
-                               /* UrlEncR */   "time=-2172116928000",
-                               /* MsgPack */   
"81A474696D65D3FFFFFE0643BDFA00",
-                               /* MsgPackT */  
"81A474696D65D3FFFFFE0643BDFA00",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<jp:time>-2172116928000</jp:time>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<jp:time>-2172116928000</jp:time>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <jp:time>-2172116928000</jp:time>\n  
</rdf:Description>\n</rdf:RDF>\n",
+                               new ComboInput2<Date>(
+                                       "DateMapSwap/singleDate",
+                                       Date.class,
+                                       singleDate,
+                                       DateMapSwap.class,
+                                       /* Json */              
"{time:-2172116928000}",
+                                       /* JsonT */             
"{time:-2172116928000}",
+                                       /* JsonR */             "{\n\ttime: 
-2172116928000\n}",
+                                       /* Xml */               "<object><time 
_type='number'>-2172116928000</time></object>",
+                                       /* XmlT */              "<object><time 
t='number'>-2172116928000</time></object>",
+                                       /* XmlR */              
"<object>\n\t<time _type='number'>-2172116928000</time>\n</object>\n",
+                                       /* XmlNs */             "<object><time 
_type='number'>-2172116928000</time></object>",
+                                       /* Html */              
"<table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table>",
+                                       /* HtmlT */             
"<table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table>",
+                                       /* HtmlR */             
"<table>\n\t<tr>\n\t\t<td>time</td>\n\t\t<td><number>-2172116928000</number></td>\n\t</tr>\n</table>\n",
+                                       /* Uon */               
"(time=-2172116928000)",
+                                       /* UonT */              
"(time=-2172116928000)",
+                                       /* UonR */              
"(\n\ttime=-2172116928000\n)",
+                                       /* UrlEnc */    "time=-2172116928000",
+                                       /* UrlEncT */   "time=-2172116928000",
+                                       /* UrlEncR */   "time=-2172116928000",
+                                       /* MsgPack */   
"81A474696D65D3FFFFFE0643BDFA00",
+                                       /* MsgPackT */  
"81A474696D65D3FFFFFE0643BDFA00",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<jp:time>-2172116928000</jp:time>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<jp:time>-2172116928000</jp:time>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <jp:time>-2172116928000</jp:time>\n  
</rdf:Description>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(Date o) {
+                                               assertType(Date.class, o);
+                                       }
+                               }
                        },
                        {       /* 13 */
-                               "DateMapSwap/dateArray",
-                               dateArray,
-                               DateMapSwap.class,
-                               /* Json */              
"[{time:-2172116928000}]",
-                               /* JsonT */             
"[{time:-2172116928000}]",
-                               /* JsonR */             "[\n\t{\n\t\ttime: 
-2172116928000\n\t}\n]",
-                               /* Xml */               "<array><object><time 
_type='number'>-2172116928000</time></object></array>",
-                               /* XmlT */              "<array><object><time 
t='number'>-2172116928000</time></object></array>",
-                               /* XmlR */              
"<array>\n\t<object>\n\t\t<time 
_type='number'>-2172116928000</time>\n\t</object>\n</array>\n",
-                               /* XmlNs */             "<array><object><time 
_type='number'>-2172116928000</time></object></array>",
-                               /* Html */              
"<ul><li><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></li></ul>",
-                               /* HtmlT */             
"<ul><li><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></li></ul>",
-                               /* HtmlR */             
"<ul>\n\t<li>\n\t\t<table>\n\t\t\t<tr>\n\t\t\t\t<td>time</td>\n\t\t\t\t<td><number>-2172116928000</number></td>\n\t\t\t</tr>\n\t\t</table>\n\t</li>\n</ul>\n",
-                               /* Uon */               
"@((time=-2172116928000))",
-                               /* UonT */              
"@((time=-2172116928000))",
-                               /* UonR */              
"@(\n\t(\n\t\ttime=-2172116928000\n\t)\n)",
-                               /* UrlEnc */    "0=(time=-2172116928000)",
-                               /* UrlEncT */   "0=(time=-2172116928000)",
-                               /* UrlEncR */   "0=(\n\ttime=-2172116928000\n)",
-                               /* MsgPack */   
"9181A474696D65D3FFFFFE0643BDFA00",
-                               /* MsgPackT */  
"9181A474696D65D3FFFFFE0643BDFA00",
-                               /* RdfXml */    "<rdf:RDF>\n<rdf:Seq>\n<rdf:li 
rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   "<rdf:RDF>\n<rdf:Seq>\n<rdf:li 
rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  <rdf:Seq>\n    
<rdf:li rdf:parseType='Resource'>\n      <jp:time>-2172116928000</jp:time>\n    
</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+                               new ComboInput2<Date[]>(
+                                       "DateMapSwap/dateArray",
+                                       Date[].class,
+                                       dateArray,
+                                       DateMapSwap.class,
+                                       /* Json */              
"[{time:-2172116928000}]",
+                                       /* JsonT */             
"[{time:-2172116928000}]",
+                                       /* JsonR */             
"[\n\t{\n\t\ttime: -2172116928000\n\t}\n]",
+                                       /* Xml */               
"<array><object><time _type='number'>-2172116928000</time></object></array>",
+                                       /* XmlT */              
"<array><object><time t='number'>-2172116928000</time></object></array>",
+                                       /* XmlR */              
"<array>\n\t<object>\n\t\t<time 
_type='number'>-2172116928000</time>\n\t</object>\n</array>\n",
+                                       /* XmlNs */             
"<array><object><time _type='number'>-2172116928000</time></object></array>",
+                                       /* Html */              
"<ul><li><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></li></ul>",
+                                       /* HtmlT */             
"<ul><li><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></li></ul>",
+                                       /* HtmlR */             
"<ul>\n\t<li>\n\t\t<table>\n\t\t\t<tr>\n\t\t\t\t<td>time</td>\n\t\t\t\t<td><number>-2172116928000</number></td>\n\t\t\t</tr>\n\t\t</table>\n\t</li>\n</ul>\n",
+                                       /* Uon */               
"@((time=-2172116928000))",
+                                       /* UonT */              
"@((time=-2172116928000))",
+                                       /* UonR */              
"@(\n\t(\n\t\ttime=-2172116928000\n\t)\n)",
+                                       /* UrlEnc */    
"0=(time=-2172116928000)",
+                                       /* UrlEncT */   
"0=(time=-2172116928000)",
+                                       /* UrlEncR */   
"0=(\n\ttime=-2172116928000\n)",
+                                       /* MsgPack */   
"9181A474696D65D3FFFFFE0643BDFA00",
+                                       /* MsgPackT */  
"9181A474696D65D3FFFFFE0643BDFA00",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li 
rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li 
rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Seq>\n    <rdf:li rdf:parseType='Resource'>\n      
<jp:time>-2172116928000</jp:time>\n    </rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(Date[] o) {
+                                               assertType(Date.class, o[0]);
+                                       }
+                               }
                        },
                        {       /* 14 */
-                               "DateMapSwap/dateMap",
-                               dateMap,
-                               DateMapSwap.class,
-                               /* Json */              
"{foo:{time:-2172116928000}}",
-                               /* JsonT */             
"{foo:{time:-2172116928000}}",
-                               /* JsonR */             "{\n\tfoo: {\n\t\ttime: 
-2172116928000\n\t}\n}",
-                               /* Xml */               "<object><foo 
_type='object'><time _type='number'>-2172116928000</time></foo></object>",
-                               /* XmlT */              "<object><foo 
t='object'><time t='number'>-2172116928000</time></foo></object>",
-                               /* XmlR */              "<object>\n\t<foo 
_type='object'>\n\t\t<time 
_type='number'>-2172116928000</time>\n\t</foo>\n</object>\n",
-                               /* XmlNs */             "<object><foo 
_type='object'><time _type='number'>-2172116928000</time></foo></object>",
-                               /* Html */              
"<table><tr><td>foo</td><td><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></td></tr></table>",
-                               /* HtmlT */             
"<table><tr><td>foo</td><td><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></td></tr></table>",
-                               /* HtmlR */             
"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>\n\t\t\t<table>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>time</td>\n\t\t\t\t\t<td><number>-2172116928000</number></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>\n\t</tr>\n</table>\n",
-                               /* Uon */               
"(foo=(time=-2172116928000))",
-                               /* UonT */              
"(foo=(time=-2172116928000))",
-                               /* UonR */              
"(\n\tfoo=(\n\t\ttime=-2172116928000\n\t)\n)",
-                               /* UrlEnc */    "foo=(time=-2172116928000)",
-                               /* UrlEncT */   "foo=(time=-2172116928000)",
-                               /* UrlEncR */   
"foo=(\n\ttime=-2172116928000\n)",
-                               /* MsgPack */   
"81A3666F6F81A474696D65D3FFFFFE0643BDFA00",
-                               /* MsgPackT */  
"81A3666F6F81A474696D65D3FFFFFE0643BDFA00",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<jp:foo 
rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<jp:foo 
rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <jp:foo rdf:parseType='Resource'>\n      
<jp:time>-2172116928000</jp:time>\n    </jp:foo>\n  
</rdf:Description>\n</rdf:RDF>\n",
+                               new ComboInput2<ObjectMap>(
+                                       "DateMapSwap/dateMap",
+                                       
getType(Map.class,String.class,Date.class),
+                                       dateMap,
+                                       DateMapSwap.class,
+                                       /* Json */              
"{foo:{time:-2172116928000}}",
+                                       /* JsonT */             
"{foo:{time:-2172116928000}}",
+                                       /* JsonR */             "{\n\tfoo: 
{\n\t\ttime: -2172116928000\n\t}\n}",
+                                       /* Xml */               "<object><foo 
_type='object'><time _type='number'>-2172116928000</time></foo></object>",
+                                       /* XmlT */              "<object><foo 
t='object'><time t='number'>-2172116928000</time></foo></object>",
+                                       /* XmlR */              
"<object>\n\t<foo _type='object'>\n\t\t<time 
_type='number'>-2172116928000</time>\n\t</foo>\n</object>\n",
+                                       /* XmlNs */             "<object><foo 
_type='object'><time _type='number'>-2172116928000</time></foo></object>",
+                                       /* Html */              
"<table><tr><td>foo</td><td><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></td></tr></table>",
+                                       /* HtmlT */             
"<table><tr><td>foo</td><td><table><tr><td>time</td><td><number>-2172116928000</number></td></tr></table></td></tr></table>",
+                                       /* HtmlR */             
"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>\n\t\t\t<table>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>time</td>\n\t\t\t\t\t<td><number>-2172116928000</number></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>\n\t</tr>\n</table>\n",
+                                       /* Uon */               
"(foo=(time=-2172116928000))",
+                                       /* UonT */              
"(foo=(time=-2172116928000))",
+                                       /* UonR */              
"(\n\tfoo=(\n\t\ttime=-2172116928000\n\t)\n)",
+                                       /* UrlEnc */    
"foo=(time=-2172116928000)",
+                                       /* UrlEncT */   
"foo=(time=-2172116928000)",
+                                       /* UrlEncR */   
"foo=(\n\ttime=-2172116928000\n)",
+                                       /* MsgPack */   
"81A3666F6F81A474696D65D3FFFFFE0643BDFA00",
+                                       /* MsgPackT */  
"81A3666F6F81A474696D65D3FFFFFE0643BDFA00",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<jp:foo 
rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<jp:foo 
rdf:parseType='Resource'>\n<jp:time>-2172116928000</jp:time>\n</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <jp:foo rdf:parseType='Resource'>\n      
<jp:time>-2172116928000</jp:time>\n    </jp:foo>\n  
</rdf:Description>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(ObjectMap o) {
+                                               assertType(Date.class, 
o.get("foo"));
+                                       }
+                               }
                        },
                        {       /* 15 */
-                               "DateSwap.DateMedium/singleDate",
-                               singleDate,
-                               DateSwap.DateMedium.class,
-                               /* Json */              "'Mar 3, 1901'",
-                               /* JsonT */             "'Mar 3, 1901'",
-                               /* JsonR */             "'Mar 3, 1901'",
-                               /* Xml */               "<string>Mar 3, 
1901</string>",
-                               /* XmlT */              "<string>Mar 3, 
1901</string>",
-                               /* XmlR */              "<string>Mar 3, 
1901</string>\n",
-                               /* XmlNs */             "<string>Mar 3, 
1901</string>",
-                               /* Html */              "<string>Mar 3, 
1901</string>",
-                               /* HtmlT */             "<string>Mar 3, 
1901</string>",
-                               /* HtmlR */             "<string>Mar 3, 
1901</string>",
-                               /* Uon */               "'Mar 3, 1901'",
-                               /* UonT */              "'Mar 3, 1901'",
-                               /* UonR */              "'Mar 3, 1901'",
-                               /* UrlEnc */    "_value='Mar+3,+1901'",
-                               /* UrlEncT */   "_value='Mar+3,+1901'",
-                               /* UrlEncR */   "_value='Mar+3,+1901'",
-                               /* MsgPack */   "AB4D617220332C2031393031",
-                               /* MsgPackT */  "AB4D617220332C2031393031",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<j:value>Mar 3, 
1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<j:value>Mar 3, 
1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <j:value>Mar 3, 1901</j:value>\n  
</rdf:Description>\n</rdf:RDF>\n",
+                               new ComboInput2<Date>(
+                                       "DateSwap.DateMedium/singleDate",
+                                       Date.class,
+                                       singleDate,
+                                       DateSwap.DateMedium.class,
+                                       /* Json */              "'Mar 3, 1901'",
+                                       /* JsonT */             "'Mar 3, 1901'",
+                                       /* JsonR */             "'Mar 3, 1901'",
+                                       /* Xml */               "<string>Mar 3, 
1901</string>",
+                                       /* XmlT */              "<string>Mar 3, 
1901</string>",
+                                       /* XmlR */              "<string>Mar 3, 
1901</string>\n",
+                                       /* XmlNs */             "<string>Mar 3, 
1901</string>",
+                                       /* Html */              "<string>Mar 3, 
1901</string>",
+                                       /* HtmlT */             "<string>Mar 3, 
1901</string>",
+                                       /* HtmlR */             "<string>Mar 3, 
1901</string>",
+                                       /* Uon */               "'Mar 3, 1901'",
+                                       /* UonT */              "'Mar 3, 1901'",
+                                       /* UonR */              "'Mar 3, 1901'",
+                                       /* UrlEnc */    "_value='Mar+3,+1901'",
+                                       /* UrlEncT */   "_value='Mar+3,+1901'",
+                                       /* UrlEncR */   "_value='Mar+3,+1901'",
+                                       /* MsgPack */   
"AB4D617220332C2031393031",
+                                       /* MsgPackT */  
"AB4D617220332C2031393031",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<j:value>Mar 3, 
1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<j:value>Mar 3, 
1901</j:value>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <j:value>Mar 3, 1901</j:value>\n  
</rdf:Description>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(Date o) {
+                                               assertType(Date.class, o);
+                                       }
+                               }
                        },
                        {       /* 16 */
-                               "DateSwap.DateMedium/dateArray",
-                               dateArray,
-                               DateSwap.DateMedium.class,
-                               /* Json */              "['Mar 3, 1901']",
-                               /* JsonT */             "['Mar 3, 1901']",
-                               /* JsonR */             "[\n\t'Mar 3, 1901'\n]",
-                               /* Xml */               "<array><string>Mar 3, 
1901</string></array>",
-                               /* XmlT */              "<array><string>Mar 3, 
1901</string></array>",
-                               /* XmlR */              "<array>\n\t<string>Mar 
3, 1901</string>\n</array>\n",
-                               /* XmlNs */             "<array><string>Mar 3, 
1901</string></array>",
-                               /* Html */              "<ul><li>Mar 3, 
1901</li></ul>",
-                               /* HtmlT */             "<ul><li>Mar 3, 
1901</li></ul>",
-                               /* HtmlR */             "<ul>\n\t<li>Mar 3, 
1901</li>\n</ul>\n",
-                               /* Uon */               "@('Mar 3, 1901')",
-                               /* UonT */              "@('Mar 3, 1901')",
-                               /* UonR */              "@(\n\t'Mar 3, 
1901'\n)",
-                               /* UrlEnc */    "0='Mar+3,+1901'",
-                               /* UrlEncT */   "0='Mar+3,+1901'",
-                               /* UrlEncR */   "0='Mar+3,+1901'",
-                               /* MsgPack */   "91AB4D617220332C2031393031",
-                               /* MsgPackT */  "91AB4D617220332C2031393031",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Mar 3, 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Mar 3, 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  <rdf:Seq>\n    
<rdf:li>Mar 3, 1901</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n",
+                               new ComboInput2<Date[]>(
+                                       "DateSwap.DateMedium/dateArray",
+                                       Date[].class,
+                                       dateArray,
+                                       DateSwap.DateMedium.class,
+                                       /* Json */              "['Mar 3, 
1901']",
+                                       /* JsonT */             "['Mar 3, 
1901']",
+                                       /* JsonR */             "[\n\t'Mar 3, 
1901'\n]",
+                                       /* Xml */               
"<array><string>Mar 3, 1901</string></array>",
+                                       /* XmlT */              
"<array><string>Mar 3, 1901</string></array>",
+                                       /* XmlR */              
"<array>\n\t<string>Mar 3, 1901</string>\n</array>\n",
+                                       /* XmlNs */             
"<array><string>Mar 3, 1901</string></array>",
+                                       /* Html */              "<ul><li>Mar 3, 
1901</li></ul>",
+                                       /* HtmlT */             "<ul><li>Mar 3, 
1901</li></ul>",
+                                       /* HtmlR */             
"<ul>\n\t<li>Mar 3, 1901</li>\n</ul>\n",
+                                       /* Uon */               "@('Mar 3, 
1901')",
+                                       /* UonT */              "@('Mar 3, 
1901')",
+                                       /* UonR */              "@(\n\t'Mar 3, 
1901'\n)",
+                                       /* UrlEnc */    "0='Mar+3,+1901'",
+                                       /* UrlEncT */   "0='Mar+3,+1901'",
+                                       /* UrlEncR */   "0='Mar+3,+1901'",
+                                       /* MsgPack */   
"91AB4D617220332C2031393031",
+                                       /* MsgPackT */  
"91AB4D617220332C2031393031",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Mar 3, 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>Mar 3, 1901</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Seq>\n    <rdf:li>Mar 3, 1901</rdf:li>\n  </rdf:Seq>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(Date[] o) {
+                                               assertType(Date.class, o[0]);
+                                       }
+                               }
                        },
                        {       /* 17 */
-                               "DateSwap.DateMedium/dateMap",
-                               dateMap,
-                               DateSwap.DateMedium.class,
-                               /* Json */              "{foo:'Mar 3, 1901'}",
-                               /* JsonT */             "{foo:'Mar 3, 1901'}",
-                               /* JsonR */             "{\n\tfoo: 'Mar 3, 
1901'\n}",
-                               /* Xml */               "<object><foo>Mar 3, 
1901</foo></object>",
-                               /* XmlT */              "<object><foo>Mar 3, 
1901</foo></object>",
-                               /* XmlR */              "<object>\n\t<foo>Mar 
3, 1901</foo>\n</object>\n",
-                               /* XmlNs */             "<object><foo>Mar 3, 
1901</foo></object>",
-                               /* Html */              
"<table><tr><td>foo</td><td>Mar 3, 1901</td></tr></table>",
-                               /* HtmlT */             
"<table><tr><td>foo</td><td>Mar 3, 1901</td></tr></table>",
-                               /* HtmlR */             
"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Mar 3, 
1901</td>\n\t</tr>\n</table>\n",
-                               /* Uon */               "(foo='Mar 3, 1901')",
-                               /* UonT */              "(foo='Mar 3, 1901')",
-                               /* UonR */              "(\n\tfoo='Mar 3, 
1901'\n)",
-                               /* UrlEnc */    "foo='Mar+3,+1901'",
-                               /* UrlEncT */   "foo='Mar+3,+1901'",
-                               /* UrlEncR */   "foo='Mar+3,+1901'",
-                               /* MsgPack */   
"81A3666F6FAB4D617220332C2031393031",
-                               /* MsgPackT */  
"81A3666F6FAB4D617220332C2031393031",
-                               /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Mar 3, 
1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Mar 3, 
1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
-                               /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <jp:foo>Mar 3, 1901</jp:foo>\n  
</rdf:Description>\n</rdf:RDF>\n",
+                               new ComboInput2<ObjectMap>(
+                                       "DateSwap.DateMedium/dateMap",
+                                       
getType(Map.class,String.class,Date.class),
+                                       dateMap,
+                                       DateSwap.DateMedium.class,
+                                       /* Json */              "{foo:'Mar 3, 
1901'}",
+                                       /* JsonT */             "{foo:'Mar 3, 
1901'}",
+                                       /* JsonR */             "{\n\tfoo: 'Mar 
3, 1901'\n}",
+                                       /* Xml */               
"<object><foo>Mar 3, 1901</foo></object>",
+                                       /* XmlT */              
"<object><foo>Mar 3, 1901</foo></object>",
+                                       /* XmlR */              
"<object>\n\t<foo>Mar 3, 1901</foo>\n</object>\n",
+                                       /* XmlNs */             
"<object><foo>Mar 3, 1901</foo></object>",
+                                       /* Html */              
"<table><tr><td>foo</td><td>Mar 3, 1901</td></tr></table>",
+                                       /* HtmlT */             
"<table><tr><td>foo</td><td>Mar 3, 1901</td></tr></table>",
+                                       /* HtmlR */             
"<table>\n\t<tr>\n\t\t<td>foo</td>\n\t\t<td>Mar 3, 
1901</td>\n\t</tr>\n</table>\n",
+                                       /* Uon */               "(foo='Mar 3, 
1901')",
+                                       /* UonT */              "(foo='Mar 3, 
1901')",
+                                       /* UonR */              "(\n\tfoo='Mar 
3, 1901'\n)",
+                                       /* UrlEnc */    "foo='Mar+3,+1901'",
+                                       /* UrlEncT */   "foo='Mar+3,+1901'",
+                                       /* UrlEncR */   "foo='Mar+3,+1901'",
+                                       /* MsgPack */   
"81A3666F6FAB4D617220332C2031393031",
+                                       /* MsgPackT */  
"81A3666F6FAB4D617220332C2031393031",
+                                       /* RdfXml */    
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Mar 3, 
1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlT */   
"<rdf:RDF>\n<rdf:Description>\n<jp:foo>Mar 3, 
1901</jp:foo>\n</rdf:Description>\n</rdf:RDF>\n",
+                                       /* RdfXmlR */   "<rdf:RDF>\n  
<rdf:Description>\n    <jp:foo>Mar 3, 1901</jp:foo>\n  
</rdf:Description>\n</rdf:RDF>\n"
+                               )
+                               {
+                                       public void verify(ObjectMap o) {
+                                               assertType(Date.class, 
o.get("foo"));
+                                       }
+                               }
                        },
                });
        }
        
-       private Class<?> swapClass;
+       private final Class<?> swapClass;
        
-       public DateSwapComboTest(
-                       String label, 
-                       Object in,
-                       Class<?> swapClass, 
-                       String oJson, String oJsonT, String oJsonR,
-                       String oXml, String oXmlT, String oXmlR, String oXmlNs,
-                       String oHtml, String oHtmlT, String oHtmlR,
-                       String oUon, String oUonT, String oUonR,
-                       String oUrlEncoding, String oUrlEncodingT, String 
oUrlEncodingR,
-                       String oMsgPack, String oMsgPackT,
-                       String oRdfXml, String oRdfXmlT, String oRdfXmlR
-               ) {
-               super(
-                       label,
-                       in, 
-                       oJson, oJsonT, oJsonR,
-                       oXml, oXmlT, oXmlR, oXmlNs,
-                       oHtml, oHtmlT, oHtmlR,
-                       oUon, oUonT, oUonR,
-                       oUrlEncoding, oUrlEncodingT, oUrlEncodingR,
-                       oMsgPack, oMsgPackT,
-                       oRdfXml, oRdfXmlT, oRdfXmlR
-               );
-               this.swapClass = swapClass;
+       public DateSwapComboTest(ComboInput2<?> comboInput) {
+               super(comboInput);
+               this.swapClass = comboInput.swapClass;
+       }
+               
+       public static class ComboInput2<T> extends ComboInput<T> {
+               private final Class<?> swapClass;
+               
+               public ComboInput2(
+                               String label,
+                               Type type,
+                               T in,
+                               Class<?> swapClass,
+                               String json,
+                               String jsonT,
+                               String jsonR,
+                               String xml,
+                               String xmlT,
+                               String xmlR,
+                               String xmlNs,
+                               String html,
+                               String htmlT,
+                               String htmlR,
+                               String uon,
+                               String uonT,
+                               String uonR,
+                               String urlEncoding,
+                               String urlEncodingT,
+                               String urlEncodingR,
+                               String msgPack,
+                               String msgPackT,
+                               String rdfXml,
+                               String rdfXmlT,
+                               String rdfXmlR
+                       ) {
+                       super(label, type, in, json, jsonT, jsonR, xml, xmlT, 
xmlR, xmlNs, html, htmlT, htmlR, uon, uonT, uonR, urlEncoding, urlEncodingT, 
urlEncodingR, msgPack, msgPackT, rdfXml, rdfXmlT, rdfXmlR);
+                       this.swapClass = swapClass;
+               }
        }
        
        @BeforeClass

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
----------------------------------------------------------------------
diff --git 
a/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java 
b/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
index 157c45e..caa5285 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
@@ -336,7 +336,7 @@ public class PojoQueryTest {
                BeanSession session = BeanContext.DEFAULT.createSession();
                List results;
 
-               List<D1> in = new AList<D1>() 
+               List<D1> in = new AList<D1>()
                        .append(new D1("foo"))
                        .append(new D1("bar"))
                        .append(new D1("baz"))

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/xml/BasicXmlTest.java
----------------------------------------------------------------------
diff --git 
a/juneau-core-test/src/test/java/org/apache/juneau/xml/BasicXmlTest.java 
b/juneau-core-test/src/test/java/org/apache/juneau/xml/BasicXmlTest.java
index 5754274..ec7bcf4 100644
--- a/juneau-core-test/src/test/java/org/apache/juneau/xml/BasicXmlTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/xml/BasicXmlTest.java
@@ -250,7 +250,7 @@ public class BasicXmlTest {
                                                +"<k6 _type='null'/>"
                                        +"</c>"
                                +"</object>",
-                  },
+                       },
                        {
                                "BeanWithTypeName",
                                new BeanWithTypeName().init(),
@@ -501,16 +501,16 @@ public class BasicXmlTest {
                        {
                                "BeanWithXmlFormatAttrProperty",
                                new BeanWithXmlFormatAttrProperty().init(),
-               "<object a='foo' b='123'/>",
-               "<object a='foo' b='123'/>\n",
-               "<object a='foo' b='123'/>",
+                               "<object a='foo' b='123'/>",
+                               "<object a='foo' b='123'/>\n",
+                               "<object a='foo' b='123'/>",
                        },
                        {
                                "BeanWithXmlFormatAttrs",
                                new BeanWithXmlFormatAttrs().init(),
-               "<object a='foo' b='123'/>",
-               "<object a='foo' b='123'/>\n",
-               "<object a='foo' b='123'/>",
+                               "<object a='foo' b='123'/>",
+                               "<object a='foo' b='123'/>\n",
+                               "<object a='foo' b='123'/>",
                        },
                        {
                                "BeanWithXmlFormatElementProperty",

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java 
b/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java
index 1926e12..c9a4fbe 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java
@@ -149,7 +149,7 @@ public class XmlTest {
        @Test
        public void testBeanNameAnnotation() throws Exception {
                String e =
-                         "<Person1>\n"
+                       "<Person1>\n"
                        + "     <name>John Smith</name>\n"
                        + "     <age>123</age>\n"
                        + "</Person1>\n";
@@ -180,7 +180,7 @@ public class XmlTest {
        @Test
        public void testTrimNulls() throws Exception {
                String e =
-                         "<Person1>\n"
+                       "<Person1>\n"
                        + "     <age>123</age>\n"
                        + "</Person1>\n";
                String r = XmlSerializer.DEFAULT_SQ_READABLE.serialize(new 
Person1(null, 123));

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanContext.java 
b/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
index 763d76e..0977ba0 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
@@ -876,7 +876,7 @@ public class BeanContext extends Context {
                notBeanPackagePrefixes = l2.toArray(new String[l2.size()]);
 
                LinkedList<BeanFilter> lbf = new LinkedList<BeanFilter>();
-               try {
+               try {
                        for (Class<?> c : pm.get(BEAN_beanFilters, 
Class[].class, new Class[0])) {
                                if (isParentClass(BeanFilter.class, c))
                                        lbf.add((BeanFilter)c.newInstance());
@@ -888,10 +888,10 @@ public class BeanContext extends Context {
                } catch (Exception e) {
                        throw new RuntimeException(e);
                }
-               beanFilters = lbf.toArray(new BeanFilter[0]);
+               beanFilters = lbf.toArray(new BeanFilter[0]);
 
                LinkedList<PojoSwap<?,?>> lpf = new LinkedList<PojoSwap<?,?>>();
-               try {
+               try {
                        for (Class<?> c : pm.get(BEAN_pojoSwaps, Class[].class, 
new Class[0])) {
                                if (isParentClass(PojoSwap.class, c))
                                        lpf.add((PojoSwap<?,?>)c.newInstance());
@@ -901,13 +901,13 @@ public class BeanContext extends Context {
                } catch (Exception e) {
                        throw new RuntimeException(e);
                }
-               pojoSwaps = lpf.toArray(new PojoSwap[0]);
+               pojoSwaps = lpf.toArray(new PojoSwap[0]);
 
-               implClasses = new TreeMap<Class<?>,Class<?>>(new 
ClassComparator());
-               Map<Class,Class> m = pm.getMap(BEAN_implClasses, Class.class, 
Class.class, null);
-               if (m != null)
-                       for (Map.Entry<Class,Class> e : m.entrySet())
-                               implClasses.put(e.getKey(), e.getValue());
+               implClasses = new TreeMap<Class<?>,Class<?>>(new 
ClassComparator());
+               Map<Class,Class> m = pm.getMap(BEAN_implClasses, Class.class, 
Class.class, null);
+               if (m != null)
+                       for (Map.Entry<Class,Class> e : m.entrySet())
+                               implClasses.put(e.getKey(), e.getValue());
                implKeyClasses = implClasses.keySet().toArray(new Class[0]);
                implValueClasses = implClasses.values().toArray(new Class[0]);
 
@@ -1112,9 +1112,9 @@ public class BeanContext extends Context {
                        ClassMeta<?> ce = c.length == pos ? object() : 
getTypedClassMeta(c, pos);
                        return (ce.isObject() ? cm : new ClassMeta(cm, null, 
null, ce));
                } else if (cm.isMap()) {
-                        ClassMeta<?> ck = c.length == pos ? object() : 
c[pos++];
-                        ClassMeta<?> cv = c.length == pos ? object() : 
getTypedClassMeta(c, pos);
-                        return (ck.isObject() && cv.isObject() ? cm : new 
ClassMeta(cm, ck, cv, null));
+                       ClassMeta<?> ck = c.length == pos ? object() : c[pos++];
+                       ClassMeta<?> cv = c.length == pos ? object() : 
getTypedClassMeta(c, pos);
+                       return (ck.isObject() && cv.isObject() ? cm : new 
ClassMeta(cm, ck, cv, null));
                }
                return cm;
        }
@@ -1123,8 +1123,19 @@ public class BeanContext extends Context {
                if (o == null)
                        return null;
 
-               if (o instanceof ClassMeta)
-                       return (ClassMeta)o;
+               if (o instanceof ClassMeta) {
+                       ClassMeta<?> cm = (ClassMeta)o;
+
+                       // This classmeta could have been created by a 
different context.
+                       // Need to re-resolve it to pick up PojoSwaps and stuff 
on this context.
+                       if (cm.getBeanContext() == this)
+                               return cm;
+                       if (cm.isMap())
+                               return getClassMeta(cm.innerClass, 
cm.getKeyType(), cm.getValueType());
+                       if (cm.isCollection())
+                               return getClassMeta(cm.innerClass, 
cm.getElementType());
+                       return getClassMeta(cm.innerClass);
+               }
 
                Class c = resolve(o, typeVarImpls);
 
@@ -1161,7 +1172,7 @@ public class BeanContext extends Context {
                return rawType;
        }
 
-       /** 
+       /**
         * Convert a Type to a Class if possible.
         * Return null if not possible.
         */

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java 
b/juneau-core/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
index 219211d..0715bb5 100644
--- a/juneau-core/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
@@ -148,6 +148,13 @@ public class CsvSerializerBuilder extends 
SerializerBuilder {
                super.sortMaps(value);
                return this;
        }
+
+       @Override /* SerializerBuilder */
+       public CsvSerializerBuilder abridged(boolean value) {
+               super.abridged(value);
+               return this;
+       }
+
        @Override /* CoreObjectBuilder */
        public CsvSerializerBuilder beansRequireDefaultConstructor(boolean 
value) {
                super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java
 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java
index 1b8269e..0087b29 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java
@@ -60,6 +60,33 @@ public class HtmlElementContainer extends HtmlElement {
        }
 
        /**
+        * Returns the child node at the specified address.
+        * <p>
+        * Indexes are zero-indexed.
+        * <p>
+        * For example, calling <code>getChild(1,2,3);</code> will return the 
4th child of the 3rd child of the 2nd child.
+        *
+        * @param index The child indexes.
+        * @return The child node, or <jk>null</jk> if it doesn't point to a 
valid child.
+        */
+       public Object getChild(int...index) {
+               if (index.length == 0)
+                       return null;
+               if (index.length == 1)
+                       return getChild(index[0]);
+               Object c = this;
+               for (int i = 0; i < index.length; i++) {
+                       if (c instanceof HtmlElementMixed)
+                               c = ((HtmlElementMixed)c).getChild(index[i]);
+                       else if (c instanceof HtmlElementContainer)
+                               c = 
((HtmlElementContainer)c).getChild(index[i]);
+                       else
+                               return null;
+               }
+               return c;
+       }
+
+       /**
         * Returns the child node at the specified index.
         *
         * @param type The class type of the node.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java
index 0430528..869391a 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java
@@ -61,6 +61,33 @@ public class HtmlElementMixed extends HtmlElement {
        }
 
        /**
+        * Returns the child node at the specified address.
+        * <p>
+        * Indexes are zero-indexed.
+        * <p>
+        * For example, calling <code>getChild(1,2,3);</code> will return the 
4th child of the 3rd child of the 2nd child.
+        *
+        * @param index The child indexes.
+        * @return The child node, or <jk>null</jk> if it doesn't point to a 
valid child.
+        */
+       public Object getChild(int...index) {
+               if (index.length == 0)
+                       return null;
+               if (index.length == 1)
+                       return getChild(index[0]);
+               Object c = this;
+               for (int i = 0; i < index.length; i++) {
+                       if (c instanceof HtmlElementMixed)
+                               c = ((HtmlElementMixed)c).getChild(index[i]);
+                       else if (c instanceof HtmlElementContainer)
+                               c = 
((HtmlElementContainer)c).getChild(index[i]);
+                       else
+                               return null;
+               }
+               return c;
+       }
+
+       /**
         * Returns the child node at the specified index.
         *
         * @param type The class type of the node.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java 
b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
index abb55c8..168ac5c 100644
--- a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
@@ -202,7 +202,7 @@ public class HtmlSerializer extends XmlSerializer {
         * @throws IOException If a problem occurred trying to send output to 
the writer.
         */
        private HtmlWriter doSerialize(HtmlSerializerSession session, Object o, 
HtmlWriter w) throws Exception {
-               serializeAnything(session, w, o, null, null, 
session.getInitialDepth()-1, null, true);
+               serializeAnything(session, w, o, 
session.getExpectedRootType(o), null, session.getInitialDepth()-1, null, true);
                return w;
        }
 
@@ -284,14 +284,14 @@ public class HtmlSerializer extends XmlSerializer {
                                cr = CR_SIMPLE;
 
                        } else if (sType.isNumber()) {
-                               if (eType.isNumber())
+                               if (eType.isNumber() && ! isRoot)
                                        out.append(o);
                                else
                                        
out.sTag("number").append(o).eTag("number");
                                cr = CR_SIMPLE;
 
                        } else if (sType.isBoolean()) {
-                               if (eType.isBoolean())
+                               if (eType.isBoolean() && ! isRoot)
                                        out.append(o);
                                else
                                        
out.sTag("boolean").append(o).eTag("boolean");
@@ -353,8 +353,8 @@ public class HtmlSerializer extends XmlSerializer {
        @SuppressWarnings({ "rawtypes", "unchecked" })
        private void serializeMap(HtmlSerializerSession session, HtmlWriter 
out, Map m, ClassMeta<?> sType, ClassMeta<?> eKeyType, ClassMeta<?> eValueType, 
String typeName, BeanPropertyMeta ppMeta) throws Exception {
 
-               ClassMeta<?> keyType = eKeyType == null ? sType.getKeyType() : 
eKeyType;
-               ClassMeta<?> valueType = eValueType == null ? 
sType.getValueType() : eValueType;
+               ClassMeta<?> keyType = eKeyType == null ? session.string() : 
eKeyType;
+               ClassMeta<?> valueType = eValueType == null ? session.object() 
: eValueType;
                ClassMeta<?> aType = session.getClassMetaForObject(m);       // 
The actual type
 
                int i = session.getIndent();
@@ -504,6 +504,7 @@ public class HtmlSerializer extends XmlSerializer {
                                out.oTag(i+1, "tr");
                                String typeName = (cm == null ? null : 
cm.getDictionaryName());
                                String typeProperty = 
session.getBeanTypePropertyName(cm);
+
                                if (typeName != null && eType.getElementType() 
!= cm)
                                        out.attr(typeProperty, typeName);
                                out.cTag().nl();
@@ -516,7 +517,7 @@ public class HtmlSerializer extends XmlSerializer {
 
                                        for (Object k : th) {
                                                out.sTag(i+2, "td");
-                                               ContentResult cr = 
serializeAnything(session, out, m2.get(k), seType, session.toString(k), 2, 
null, false);
+                                               ContentResult cr = 
serializeAnything(session, out, m2.get(k), eType.getElementType(), 
session.toString(k), 2, null, false);
                                                if (cr == CR_NORMAL)
                                                        out.i(i+2);
                                                out.eTag("td").nl();
@@ -549,7 +550,7 @@ public class HtmlSerializer extends XmlSerializer {
                        out.append('>').nl();
                        for (Object o : c) {
                                out.sTag(i+1, "li");
-                               ContentResult cr = serializeAnything(session, 
out, o, seType, name, 1, null, false);
+                               ContentResult cr = serializeAnything(session, 
out, o, eType.getElementType(), name, 1, null, false);
                                if (cr == CR_NORMAL)
                                        out.i(i+1);
                                out.eTag("li").nl();

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java 
b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
index 7c9a923..fe0a7c5 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
@@ -321,6 +321,12 @@ public class HtmlSerializerBuilder extends 
XmlSerializerBuilder {
        }
 
        @Override /* SerializerBuilder */
+       public HtmlSerializerBuilder abridged(boolean value) {
+               super.abridged(value);
+               return this;
+       }
+
+       @Override /* SerializerBuilder */
        public HtmlSerializerBuilder sortMaps(boolean value) {
                super.sortMaps(value);
                return this;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java 
b/juneau-core/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
index c591b91..c4d7d40 100644
--- a/juneau-core/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
+++ b/juneau-core/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
@@ -149,6 +149,12 @@ public class JsoSerializerBuilder extends 
SerializerBuilder {
                return this;
        }
 
+       @Override /* SerializerBuilder */
+       public JsoSerializerBuilder abridged(boolean value) {
+               super.abridged(value);
+               return this;
+       }
+
        @Override /* CoreObjectBuilder */
        public JsoSerializerBuilder beansRequireDefaultConstructor(boolean 
value) {
                super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java 
b/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java
index 104d838..3e28eab 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java
@@ -60,7 +60,7 @@ public final class JsonSchemaSerializer extends 
JsonSerializer {
        }
 
        @Override /* CoreObject */
-       protected ObjectMap getOverrideProperties() {
+       protected ObjectMap getOverrideProperties() {
                return 
super.getOverrideProperties().append(SERIALIZER_detectRecursions, 
true).append(SERIALIZER_ignoreRecursions, true);
        }
 
@@ -78,7 +78,7 @@ public final class JsonSchemaSerializer extends 
JsonSerializer {
        protected void doSerialize(SerializerSession session, Object o) throws 
Exception {
                JsonSerializerSession s = (JsonSerializerSession)session;
                ObjectMap schema = getSchema(s, 
session.getClassMetaForObject(o), "root", null);
-               serializeAnything(s, s.getWriter(), schema, null, "root", null);
+               serializeAnything(s, s.getWriter(), schema, 
s.getExpectedRootType(o), "root", null);
        }
 
        /*

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
 
b/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
index aab5768..9a8616f 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
@@ -165,6 +165,13 @@ public class JsonSchemaSerializerBuilder extends 
JsonSerializerBuilder {
                super.sortMaps(value);
                return this;
        }
+
+       @Override /* SerializerBuilder */
+       public JsonSchemaSerializerBuilder abridged(boolean value) {
+               super.abridged(value);
+               return this;
+       }
+
        @Override /* CoreObjectBuilder */
        public JsonSchemaSerializerBuilder 
beansRequireDefaultConstructor(boolean value) {
                super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java 
b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
index 7464495..91945d4 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
@@ -387,6 +387,6 @@ public class JsonSerializer extends WriterSerializer {
        @Override /* Serializer */
        protected void doSerialize(SerializerSession session, Object o) throws 
Exception {
                JsonSerializerSession s = (JsonSerializerSession)session;
-               serializeAnything(s, s.getWriter(), o, null, "root", null);
+               serializeAnything(s, s.getWriter(), o, 
s.getExpectedRootType(o), "root", null);
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java 
b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
index b226459..97323aa 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
@@ -214,6 +214,12 @@ public class JsonSerializerBuilder extends 
SerializerBuilder {
                return this;
        }
 
+       @Override /* SerializerBuilder */
+       public JsonSerializerBuilder abridged(boolean value) {
+               super.abridged(value);
+               return this;
+       }
+
        @Override /* CoreObjectBuilder */
        public JsonSerializerBuilder beansRequireDefaultConstructor(boolean 
value) {
                super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java 
b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
index 9834195..89e736b 100644
--- a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
@@ -217,6 +217,6 @@ public class MsgPackSerializer extends 
OutputStreamSerializer {
        @Override /* Serializer */
        protected void doSerialize(SerializerSession session, Object o) throws 
Exception {
                MsgPackSerializerSession s = (MsgPackSerializerSession)session;
-               serializeAnything(s, s.getOutputStream(), o, null, "root", 
null);
+               serializeAnything(s, s.getOutputStream(), o, 
s.getExpectedRootType(o), "root", null);
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
 
b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
index de0fb45..f909e14 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
@@ -148,6 +148,13 @@ public class MsgPackSerializerBuilder extends 
SerializerBuilder {
                super.sortMaps(value);
                return this;
        }
+
+       @Override /* SerializerBuilder */
+       public MsgPackSerializerBuilder abridged(boolean value) {
+               super.abridged(value);
+               return this;
+       }
+
        @Override /* CoreObjectBuilder */
        public MsgPackSerializerBuilder beansRequireDefaultConstructor(boolean 
value) {
                super.beansRequireDefaultConstructor(value);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bde9b101/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
 
b/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
index 8ab1255..d56aee6 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
@@ -148,6 +148,13 @@ public class PlainTextSerializerBuilder extends 
SerializerBuilder {
                super.sortMaps(value);
                return this;
        }
+
+       @Override /* SerializerBuilder */
+       public PlainTextSerializerBuilder abridged(boolean value) {
+               super.abridged(value);
+               return this;
+       }
+
        @Override /* CoreObjectBuilder */
        public PlainTextSerializerBuilder 
beansRequireDefaultConstructor(boolean value) {
                super.beansRequireDefaultConstructor(value);


Reply via email to