1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.transforms;
18
19 import static org.apache.juneau.assertions.Verify.*;
20 import static org.apache.juneau.commons.utils.CollectionUtils.*;
21
22 import java.lang.reflect.*;
23 import java.util.*;
24
25 import org.apache.juneau.*;
26 import org.apache.juneau.annotation.*;
27 import org.apache.juneau.serializer.*;
28
29
30
31
32 class BeanDictionary_ComboRoundTripTest extends ComboRoundTripTest_Base {
33
34 private static <T> ComboRoundTrip_Tester.Builder<T> tester(int index, String label, Type type, T bean) {
35 return ComboRoundTrip_Tester.create(index, label, type, ()->bean).serializerApply(Serializer.Builder::keepNullProperties);
36 }
37
38 private static ComboRoundTrip_Tester<?>[] TESTERS = {
39 tester(1, "A", A.class, new A().init())
40 .json("{_type:'A',a:1}")
41 .jsonT("{t:'A',a:1}")
42 .jsonR("{\n\t_type: 'A',\n\ta: 1\n}")
43 .xml("<A><a>1</a></A>")
44 .xmlT("<A><a>1</a></A>")
45 .xmlR("<A>\n\t<a>1</a>\n</A>\n")
46 .xmlNs("<A><a>1</a></A>")
47 .html("<table _type='A'><tr><td>a</td><td>1</td></tr></table>")
48 .htmlT("<table t='A'><tr><td>a</td><td>1</td></tr></table>")
49 .htmlR("<table _type='A'>\n\t<tr>\n\t\t<td>a</td>\n\t\t<td>1</td>\n\t</tr>\n</table>\n")
50 .uon("(_type=A,a=1)")
51 .uonT("(t=A,a=1)")
52 .uonR("(\n\t_type=A,\n\ta=1\n)")
53 .urlEnc("_type=A&a=1")
54 .urlEncT("t=A&a=1")
55 .urlEncR("_type=A\n&a=1")
56 .msgPack("82A55F74797065A141A16101")
57 .msgPackT("82A174A141A16101")
58 .rdfXml("<rdf:RDF>\n<rdf:Description>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:Description>\n</rdf:RDF>\n")
59 .rdfXmlT("<rdf:RDF>\n<rdf:Description>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:Description>\n</rdf:RDF>\n")
60 .rdfXmlR("<rdf:RDF>\n <rdf:Description>\n <jp:_type>A</jp:_type>\n <jp:a>1</jp:a>\n </rdf:Description>\n</rdf:RDF>\n")
61 .verify(x -> verify(x).isType(A.class))
62 .build(),
63 tester(2, "A[]", A[].class, a(new A().init()))
64 .json("[{_type:'A',a:1}]")
65 .jsonT("[{t:'A',a:1}]")
66 .jsonR("[\n\t{\n\t\t_type: 'A',\n\t\ta: 1\n\t}\n]")
67 .xml("<array><A><a>1</a></A></array>")
68 .xmlT("<array><A><a>1</a></A></array>")
69 .xmlR("<array>\n\t<A>\n\t\t<a>1</a>\n\t</A>\n</array>\n")
70 .xmlNs("<array><A><a>1</a></A></array>")
71 .html("<table _type='array'><tr><th>a</th></tr><tr _type='A'><td>1</td></tr></table>")
72 .htmlT("<table t='array'><tr><th>a</th></tr><tr t='A'><td>1</td></tr></table>")
73 .htmlR("<table _type='array'>\n\t<tr>\n\t\t<th>a</th>\n\t</tr>\n\t<tr _type='A'>\n\t\t<td>1</td>\n\t</tr>\n</table>\n")
74 .uon("@((_type=A,a=1))")
75 .uonT("@((t=A,a=1))")
76 .uonR("@(\n\t(\n\t\t_type=A,\n\t\ta=1\n\t)\n)")
77 .urlEnc("0=(_type=A,a=1)")
78 .urlEncT("0=(t=A,a=1)")
79 .urlEncR("0=(\n\t_type=A,\n\ta=1\n)")
80 .msgPack("9182A55F74797065A141A16101")
81 .msgPackT("9182A174A141A16101")
82 .rdfXml("<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n")
83 .rdfXmlT("<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n")
84 .rdfXmlR("<rdf:RDF>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>A</jp:_type>\n <jp:a>1</jp:a>\n </rdf:li>\n </rdf:Seq>\n</rdf:RDF>\n")
85 .verify(x -> verify(x[0]).isType(A.class))
86 .build(),
87 tester(3, "A[][][]", A[][][].class, a(a(a(new A().init(),null),null),null))
88 .json("[[[{_type:'A',a:1},null],null],null]")
89 .jsonT("[[[{t:'A',a:1},null],null],null]")
90 .jsonR("[\n\t[\n\t\t[\n\t\t\t{\n\t\t\t\t_type: 'A',\n\t\t\t\ta: 1\n\t\t\t},\n\t\t\tnull\n\t\t],\n\t\tnull\n\t],\n\tnull\n]")
91 .xml("<array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array>")
92 .xmlT("<array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array>")
93 .xmlR("<array>\n\t<array>\n\t\t<array>\n\t\t\t<A>\n\t\t\t\t<a>1</a>\n\t\t\t</A>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</array>\n\t<null/>\n</array>\n")
94 .xmlNs("<array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array>")
95 .html("<ul><li><ul><li><ul><li><table _type='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>")
96 .htmlT("<ul><li><ul><li><ul><li><table t='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>")
97 .htmlR("<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<table _type='A'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>a</td>\n\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li><null/></li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t\t<li><null/></li>\n\t\t</ul>\n\t</li>\n\t<li><null/></li>\n</ul>\n")
98 .uon("@(@(@((_type=A,a=1),null),null),null)")
99 .uonT("@(@(@((t=A,a=1),null),null),null)")
100 .uonR("@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\t_type=A,\n\t\t\t\ta=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)")
101 .urlEnc("0=@(@((_type=A,a=1),null),null)&1=null")
102 .urlEncT("0=@(@((t=A,a=1),null),null)&1=null")
103 .urlEncR("0=@(\n\t@(\n\t\t(\n\t\t\t_type=A,\n\t\t\ta=1\n\t\t),\n\t\tnull\n\t),\n\tnull\n)\n&1=null")
104 .msgPack("92929282A55F74797065A141A16101C0C0C0")
105 .msgPackT("92929282A174A141A16101C0C0C0")
106 .rdfXml("<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n")
107 .rdfXmlT("<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n")
108 .rdfXmlR("<rdf:RDF>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>A</jp:_type>\n <jp:a>1</jp:a>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n</rdf:RDF>\n")
109 .verify(x -> verify(x[0][0][0]).isType(A.class))
110 .build(),
111 tester(4, "List<A[][][]>", getType(List.class, A[][][].class), l(a(a(a(new A().init(),null),null),null),null))
112 .json("[[[[{_type:'A',a:1},null],null],null],null]")
113 .jsonT("[[[[{t:'A',a:1},null],null],null],null]")
114 .jsonR("[\n\t[\n\t\t[\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\t_type: 'A',\n\t\t\t\t\ta: 1\n\t\t\t\t},\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t],\n\tnull\n]")
115 .xml("<array><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></array>")
116 .xmlT("<array><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></array>")
117 .xmlR("<array>\n\t<array>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<A>\n\t\t\t\t\t<a>1</a>\n\t\t\t\t</A>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</array>\n\t<null/>\n</array>\n")
118 .xmlNs("<array><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></array>")
119 .html("<ul><li><ul><li><ul><li><ul><li><table _type='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>")
120 .htmlT("<ul><li><ul><li><ul><li><ul><li><table t='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>")
121 .htmlR("<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<table _type='A'>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>a</td>\n\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li><null/></li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t\t<li><null/></li>\n\t\t</ul>\n\t</li>\n\t<li><null/></li>\n</ul>\n")
122 .uon("@(@(@(@((_type=A,a=1),null),null),null),null)")
123 .uonT("@(@(@(@((t=A,a=1),null),null),null),null)")
124 .uonR("@(\n\t@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\t_type=A,\n\t\t\t\t\ta=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)")
125 .urlEnc("0=@(@(@((_type=A,a=1),null),null),null)&1=null")
126 .urlEncT("0=@(@(@((t=A,a=1),null),null),null)&1=null")
127 .urlEncR("0=@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\t_type=A,\n\t\t\t\ta=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)\n&1=null")
128 .msgPack("9292929282A55F74797065A141A16101C0C0C0C0")
129 .msgPackT("9292929282A174A141A16101C0C0C0C0")
130 .rdfXml("<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n")
131 .rdfXmlT("<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n")
132 .rdfXmlR("<rdf:RDF>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>A</jp:_type>\n <jp:a>1</jp:a>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n</rdf:RDF>\n")
133 .verify(x -> verify(x.get(0)[0][0][0]).isType(A.class))
134 .build(),
135 tester(5, "Map<String,A[][][]>", getType(Map.class,String.class,A[][][].class), m("x", a(a(a(new A().init(),null),null),null)))
136 .json("{x:[[[{_type:'A',a:1},null],null],null]}")
137 .jsonT("{x:[[[{t:'A',a:1},null],null],null]}")
138 .jsonR("{\n\tx: [\n\t\t[\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\t_type: 'A',\n\t\t\t\t\ta: 1\n\t\t\t\t},\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t]\n}")
139 .xml("<object><x _type='array'><array><array><A><a>1</a></A><null/></array><null/></array><null/></x></object>")
140 .xmlT("<object><x t='array'><array><array><A><a>1</a></A><null/></array><null/></array><null/></x></object>")
141 .xmlR("<object>\n\t<x _type='array'>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<A>\n\t\t\t\t\t<a>1</a>\n\t\t\t\t</A>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</x>\n</object>\n")
142 .xmlNs("<object><x _type='array'><array><array><A><a>1</a></A><null/></array><null/></array><null/></x></object>")
143 .html("<table><tr><td>x</td><td><ul><li><ul><li><ul><li><table _type='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>")
144 .htmlT("<table><tr><td>x</td><td><ul><li><ul><li><ul><li><table t='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>")
145 .htmlR("<table>\n\t<tr>\n\t\t<td>x</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<table _type='A'>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>a</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n")
146 .uon("(x=@(@(@((_type=A,a=1),null),null),null))")
147 .uonT("(x=@(@(@((t=A,a=1),null),null),null))")
148 .uonR("(\n\tx=@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\t_type=A,\n\t\t\t\t\ta=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t)\n)")
149 .urlEnc("x=@(@(@((_type=A,a=1),null),null),null)")
150 .urlEncT("x=@(@(@((t=A,a=1),null),null),null)")
151 .urlEncR("x=@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\t_type=A,\n\t\t\t\ta=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)")
152 .msgPack("81A17892929282A55F74797065A141A16101C0C0C0")
153 .msgPackT("81A17892929282A174A141A16101C0C0C0")
154 .rdfXml("<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n")
155 .rdfXmlT("<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n")
156 .rdfXmlR("<rdf:RDF>\n <rdf:Description>\n <jp:x>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>A</jp:_type>\n <jp:a>1</jp:a>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </jp:x>\n </rdf:Description>\n</rdf:RDF>\n")
157 .verify(x -> verify(x.get("x")[0][0][0]).isType(A.class))
158 .build(),
159 tester(6, "Map<String,List<A[][][]>>", getType(Map.class,String.class,List.class,A[][][].class), m("x",l(a(a(a(new A().init(),null),null),null),null)))
160 .json("{x:[[[[{_type:'A',a:1},null],null],null],null]}")
161 .jsonT("{x:[[[[{t:'A',a:1},null],null],null],null]}")
162 .jsonR("{\n\tx: [\n\t\t[\n\t\t\t[\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\t_type: 'A',\n\t\t\t\t\t\ta: 1\n\t\t\t\t\t},\n\t\t\t\t\tnull\n\t\t\t\t],\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t]\n}")
163 .xml("<object><x _type='array'><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></x></object>")
164 .xmlT("<object><x t='array'><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></x></object>")
165 .xmlR("<object>\n\t<x _type='array'>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<array>\n\t\t\t\t\t<A>\n\t\t\t\t\t\t<a>1</a>\n\t\t\t\t\t</A>\n\t\t\t\t\t<null/>\n\t\t\t\t</array>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</x>\n</object>\n")
166 .xmlNs("<object><x _type='array'><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></x></object>")
167 .html("<table><tr><td>x</td><td><ul><li><ul><li><ul><li><ul><li><table _type='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>")
168 .htmlT("<table><tr><td>x</td><td><ul><li><ul><li><ul><li><ul><li><table t='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>")
169 .htmlR("<table>\n\t<tr>\n\t\t<td>x</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t\t<table _type='A'>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>a</td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n")
170 .uon("(x=@(@(@(@((_type=A,a=1),null),null),null),null))")
171 .uonT("(x=@(@(@(@((t=A,a=1),null),null),null),null))")
172 .uonR("(\n\tx=@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t@(\n\t\t\t\t\t(\n\t\t\t\t\t\t_type=A,\n\t\t\t\t\t\ta=1\n\t\t\t\t\t),\n\t\t\t\t\tnull\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t)\n)")
173 .urlEnc("x=@(@(@(@((_type=A,a=1),null),null),null),null)")
174 .urlEncT("x=@(@(@(@((t=A,a=1),null),null),null),null)")
175 .urlEncR("x=@(\n\t@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\t_type=A,\n\t\t\t\t\ta=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)")
176 .msgPack("81A1789292929282A55F74797065A141A16101C0C0C0C0")
177 .msgPackT("81A1789292929282A174A141A16101C0C0C0C0")
178 .rdfXml("<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n")
179 .rdfXmlT("<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n")
180 .rdfXmlR("<rdf:RDF>\n <rdf:Description>\n <jp:x>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>A</jp:_type>\n <jp:a>1</jp:a>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </jp:x>\n </rdf:Description>\n</rdf:RDF>\n")
181 .verify(x -> verify(x.get("x").get(0)[0][0][0]).isType(A.class))
182 .build(),
183 tester(7, "IA", IA.class, new A().init())
184 .json("{_type:'A',a:1}")
185 .jsonT("{t:'A',a:1}")
186 .jsonR("{\n\t_type: 'A',\n\ta: 1\n}")
187 .xml("<A><a>1</a></A>")
188 .xmlT("<A><a>1</a></A>")
189 .xmlR("<A>\n\t<a>1</a>\n</A>\n")
190 .xmlNs("<A><a>1</a></A>")
191 .html("<table _type='A'><tr><td>a</td><td>1</td></tr></table>")
192 .htmlT("<table t='A'><tr><td>a</td><td>1</td></tr></table>")
193 .htmlR("<table _type='A'>\n\t<tr>\n\t\t<td>a</td>\n\t\t<td>1</td>\n\t</tr>\n</table>\n")
194 .uon("(_type=A,a=1)")
195 .uonT("(t=A,a=1)")
196 .uonR("(\n\t_type=A,\n\ta=1\n)")
197 .urlEnc("_type=A&a=1")
198 .urlEncT("t=A&a=1")
199 .urlEncR("_type=A\n&a=1")
200 .msgPack("82A55F74797065A141A16101")
201 .msgPackT("82A174A141A16101")
202 .rdfXml("<rdf:RDF>\n<rdf:Description>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:Description>\n</rdf:RDF>\n")
203 .rdfXmlT("<rdf:RDF>\n<rdf:Description>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:Description>\n</rdf:RDF>\n")
204 .rdfXmlR("<rdf:RDF>\n <rdf:Description>\n <jp:_type>A</jp:_type>\n <jp:a>1</jp:a>\n </rdf:Description>\n</rdf:RDF>\n")
205 .verify(x -> verify(x).isType(A.class))
206 .build(),
207 tester(8, "IA[]", IA[].class, a((IA)new A().init()))
208 .json("[{_type:'A',a:1}]")
209 .jsonT("[{t:'A',a:1}]")
210 .jsonR("[\n\t{\n\t\t_type: 'A',\n\t\ta: 1\n\t}\n]")
211 .xml("<array><A><a>1</a></A></array>")
212 .xmlT("<array><A><a>1</a></A></array>")
213 .xmlR("<array>\n\t<A>\n\t\t<a>1</a>\n\t</A>\n</array>\n")
214 .xmlNs("<array><A><a>1</a></A></array>")
215 .html("<table _type='array'><tr><th>a</th></tr><tr _type='A'><td>1</td></tr></table>")
216 .htmlT("<table t='array'><tr><th>a</th></tr><tr t='A'><td>1</td></tr></table>")
217 .htmlR("<table _type='array'>\n\t<tr>\n\t\t<th>a</th>\n\t</tr>\n\t<tr _type='A'>\n\t\t<td>1</td>\n\t</tr>\n</table>\n")
218 .uon("@((_type=A,a=1))")
219 .uonT("@((t=A,a=1))")
220 .uonR("@(\n\t(\n\t\t_type=A,\n\t\ta=1\n\t)\n)")
221 .urlEnc("0=(_type=A,a=1)")
222 .urlEncT("0=(t=A,a=1)")
223 .urlEncR("0=(\n\t_type=A,\n\ta=1\n)")
224 .msgPack("9182A55F74797065A141A16101")
225 .msgPackT("9182A174A141A16101")
226 .rdfXml("<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n")
227 .rdfXmlT("<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n")
228 .rdfXmlR("<rdf:RDF>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>A</jp:_type>\n <jp:a>1</jp:a>\n </rdf:li>\n </rdf:Seq>\n</rdf:RDF>\n")
229 .verify(x -> verify(x[0]).isType(A.class))
230 .build(),
231 tester(9, "IA[][][]", IA[][][].class, a(a(a((IA)new A().init(),null),null),null))
232 .json("[[[{_type:'A',a:1},null],null],null]")
233 .jsonT("[[[{t:'A',a:1},null],null],null]")
234 .jsonR("[\n\t[\n\t\t[\n\t\t\t{\n\t\t\t\t_type: 'A',\n\t\t\t\ta: 1\n\t\t\t},\n\t\t\tnull\n\t\t],\n\t\tnull\n\t],\n\tnull\n]")
235 .xml("<array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array>")
236 .xmlT("<array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array>")
237 .xmlR("<array>\n\t<array>\n\t\t<array>\n\t\t\t<A>\n\t\t\t\t<a>1</a>\n\t\t\t</A>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</array>\n\t<null/>\n</array>\n")
238 .xmlNs("<array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array>")
239 .html("<ul><li><ul><li><ul><li><table _type='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>")
240 .htmlT("<ul><li><ul><li><ul><li><table t='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>")
241 .htmlR("<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<table _type='A'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>a</td>\n\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li><null/></li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t\t<li><null/></li>\n\t\t</ul>\n\t</li>\n\t<li><null/></li>\n</ul>\n")
242 .uon("@(@(@((_type=A,a=1),null),null),null)")
243 .uonT("@(@(@((t=A,a=1),null),null),null)")
244 .uonR("@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\t_type=A,\n\t\t\t\ta=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)")
245 .urlEnc("0=@(@((_type=A,a=1),null),null)&1=null")
246 .urlEncT("0=@(@((t=A,a=1),null),null)&1=null")
247 .urlEncR("0=@(\n\t@(\n\t\t(\n\t\t\t_type=A,\n\t\t\ta=1\n\t\t),\n\t\tnull\n\t),\n\tnull\n)\n&1=null")
248 .msgPack("92929282A55F74797065A141A16101C0C0C0")
249 .msgPackT("92929282A174A141A16101C0C0C0")
250 .rdfXml("<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n")
251 .rdfXmlT("<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n")
252 .rdfXmlR("<rdf:RDF>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>A</jp:_type>\n <jp:a>1</jp:a>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n</rdf:RDF>\n")
253 .verify(x -> verify(x[0][0][0]).isType(A.class))
254 .build(),
255 tester(10, "List<IA[][][]>", getType(List.class,IA[][][].class), l(a(a(a((IA)new A().init(),null),null),null),null))
256 .json("[[[[{_type:'A',a:1},null],null],null],null]")
257 .jsonT("[[[[{t:'A',a:1},null],null],null],null]")
258 .jsonR("[\n\t[\n\t\t[\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\t_type: 'A',\n\t\t\t\t\ta: 1\n\t\t\t\t},\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t],\n\tnull\n]")
259 .xml("<array><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></array>")
260 .xmlT("<array><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></array>")
261 .xmlR("<array>\n\t<array>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<A>\n\t\t\t\t\t<a>1</a>\n\t\t\t\t</A>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</array>\n\t<null/>\n</array>\n")
262 .xmlNs("<array><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></array>")
263 .html("<ul><li><ul><li><ul><li><ul><li><table _type='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>")
264 .htmlT("<ul><li><ul><li><ul><li><ul><li><table t='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>")
265 .htmlR("<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<table _type='A'>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>a</td>\n\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li><null/></li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t\t<li><null/></li>\n\t\t</ul>\n\t</li>\n\t<li><null/></li>\n</ul>\n")
266 .uon("@(@(@(@((_type=A,a=1),null),null),null),null)")
267 .uonT("@(@(@(@((t=A,a=1),null),null),null),null)")
268 .uonR("@(\n\t@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\t_type=A,\n\t\t\t\t\ta=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)")
269 .urlEnc("0=@(@(@((_type=A,a=1),null),null),null)&1=null")
270 .urlEncT("0=@(@(@((t=A,a=1),null),null),null)&1=null")
271 .urlEncR("0=@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\t_type=A,\n\t\t\t\ta=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)\n&1=null")
272 .msgPack("9292929282A55F74797065A141A16101C0C0C0C0")
273 .msgPackT("9292929282A174A141A16101C0C0C0C0")
274 .rdfXml("<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n")
275 .rdfXmlT("<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n")
276 .rdfXmlR("<rdf:RDF>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>A</jp:_type>\n <jp:a>1</jp:a>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n</rdf:RDF>\n")
277 .verify(x -> verify(x.get(0)[0][0][0]).isType(A.class))
278 .build(),
279 tester(11, "Map<String,IA[][][]>", getType(Map.class,String.class,IA[][][].class), m("x",a(a(a((IA)new A().init(),null),null),null)))
280 .json("{x:[[[{_type:'A',a:1},null],null],null]}")
281 .jsonT("{x:[[[{t:'A',a:1},null],null],null]}")
282 .jsonR("{\n\tx: [\n\t\t[\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\t_type: 'A',\n\t\t\t\t\ta: 1\n\t\t\t\t},\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t]\n}")
283 .xml("<object><x _type='array'><array><array><A><a>1</a></A><null/></array><null/></array><null/></x></object>")
284 .xmlT("<object><x t='array'><array><array><A><a>1</a></A><null/></array><null/></array><null/></x></object>")
285 .xmlR("<object>\n\t<x _type='array'>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<A>\n\t\t\t\t\t<a>1</a>\n\t\t\t\t</A>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</x>\n</object>\n")
286 .xmlNs("<object><x _type='array'><array><array><A><a>1</a></A><null/></array><null/></array><null/></x></object>")
287 .html("<table><tr><td>x</td><td><ul><li><ul><li><ul><li><table _type='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>")
288 .htmlT("<table><tr><td>x</td><td><ul><li><ul><li><ul><li><table t='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>")
289 .htmlR("<table>\n\t<tr>\n\t\t<td>x</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<table _type='A'>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>a</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n")
290 .uon("(x=@(@(@((_type=A,a=1),null),null),null))")
291 .uonT("(x=@(@(@((t=A,a=1),null),null),null))")
292 .uonR("(\n\tx=@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\t_type=A,\n\t\t\t\t\ta=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t)\n)")
293 .urlEnc("x=@(@(@((_type=A,a=1),null),null),null)")
294 .urlEncT("x=@(@(@((t=A,a=1),null),null),null)")
295 .urlEncR("x=@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\t_type=A,\n\t\t\t\ta=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)")
296 .msgPack("81A17892929282A55F74797065A141A16101C0C0C0")
297 .msgPackT("81A17892929282A174A141A16101C0C0C0")
298 .rdfXml("<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n")
299 .rdfXmlT("<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n")
300 .rdfXmlR("<rdf:RDF>\n <rdf:Description>\n <jp:x>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>A</jp:_type>\n <jp:a>1</jp:a>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </jp:x>\n </rdf:Description>\n</rdf:RDF>\n")
301 .verify(x -> verify(x.get("x")[0][0][0]).isType(A.class))
302 .build(),
303 tester(12, "Map<String,List<IA[][][]>>", getType(Map.class,String.class,List.class,IA[][][].class), m("x",l(a(a(a((IA)new A().init(),null),null),null),null)))
304 .json("{x:[[[[{_type:'A',a:1},null],null],null],null]}")
305 .jsonT("{x:[[[[{t:'A',a:1},null],null],null],null]}")
306 .jsonR("{\n\tx: [\n\t\t[\n\t\t\t[\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\t_type: 'A',\n\t\t\t\t\t\ta: 1\n\t\t\t\t\t},\n\t\t\t\t\tnull\n\t\t\t\t],\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t]\n}")
307 .xml("<object><x _type='array'><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></x></object>")
308 .xmlT("<object><x t='array'><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></x></object>")
309 .xmlR("<object>\n\t<x _type='array'>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<array>\n\t\t\t\t\t<A>\n\t\t\t\t\t\t<a>1</a>\n\t\t\t\t\t</A>\n\t\t\t\t\t<null/>\n\t\t\t\t</array>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</x>\n</object>\n")
310 .xmlNs("<object><x _type='array'><array><array><array><A><a>1</a></A><null/></array><null/></array><null/></array><null/></x></object>")
311 .html("<table><tr><td>x</td><td><ul><li><ul><li><ul><li><ul><li><table _type='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>")
312 .htmlT("<table><tr><td>x</td><td><ul><li><ul><li><ul><li><ul><li><table t='A'><tr><td>a</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>")
313 .htmlR("<table>\n\t<tr>\n\t\t<td>x</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t\t<table _type='A'>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>a</td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n")
314 .uon("(x=@(@(@(@((_type=A,a=1),null),null),null),null))")
315 .uonT("(x=@(@(@(@((t=A,a=1),null),null),null),null))")
316 .uonR("(\n\tx=@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t@(\n\t\t\t\t\t(\n\t\t\t\t\t\t_type=A,\n\t\t\t\t\t\ta=1\n\t\t\t\t\t),\n\t\t\t\t\tnull\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t)\n)")
317 .urlEnc("x=@(@(@(@((_type=A,a=1),null),null),null),null)")
318 .urlEncT("x=@(@(@(@((t=A,a=1),null),null),null),null)")
319 .urlEncR("x=@(\n\t@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\t_type=A,\n\t\t\t\t\ta=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)")
320 .msgPack("81A1789292929282A55F74797065A141A16101C0C0C0C0")
321 .msgPackT("81A1789292929282A174A141A16101C0C0C0C0")
322 .rdfXml("<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>A</jp:_type>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n")
323 .rdfXmlT("<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>A</jp:t>\n<jp:a>1</jp:a>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n")
324 .rdfXmlR("<rdf:RDF>\n <rdf:Description>\n <jp:x>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>A</jp:_type>\n <jp:a>1</jp:a>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </jp:x>\n </rdf:Description>\n</rdf:RDF>\n")
325 .verify(x -> verify(x.get("x").get(0)[0][0][0]).isType(A.class))
326 .build(),
327 tester(13, "B", B.class, new B().init())
328 .json("{z:'B',b:1}")
329 .jsonT("{z:'B',b:1}")
330 .jsonR("{\n\tz: 'B',\n\tb: 1\n}")
331 .xml("<B><b>1</b></B>")
332 .xmlT("<B><b>1</b></B>")
333 .xmlR("<B>\n\t<b>1</b>\n</B>\n")
334 .xmlNs("<B><b>1</b></B>")
335 .html("<table z='B'><tr><td>b</td><td>1</td></tr></table>")
336 .htmlT("<table z='B'><tr><td>b</td><td>1</td></tr></table>")
337 .htmlR("<table z='B'>\n\t<tr>\n\t\t<td>b</td>\n\t\t<td>1</td>\n\t</tr>\n</table>\n")
338 .uon("(z=B,b=1)")
339 .uonT("(z=B,b=1)")
340 .uonR("(\n\tz=B,\n\tb=1\n)")
341 .urlEnc("z=B&b=1")
342 .urlEncT("z=B&b=1")
343 .urlEncR("z=B\n&b=1")
344 .msgPack("82A17AA142A16201")
345 .msgPackT("82A17AA142A16201")
346 .rdfXml("<rdf:RDF>\n<rdf:Description>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:Description>\n</rdf:RDF>\n")
347 .rdfXmlT("<rdf:RDF>\n<rdf:Description>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:Description>\n</rdf:RDF>\n")
348 .rdfXmlR("<rdf:RDF>\n <rdf:Description>\n <jp:z>B</jp:z>\n <jp:b>1</jp:b>\n </rdf:Description>\n</rdf:RDF>\n")
349 .verify(x -> verify(x).isType(B.class))
350 .build(),
351 tester(14, "B[]", B[].class, a(new B().init()))
352 .json("[{z:'B',b:1}]")
353 .jsonT("[{z:'B',b:1}]")
354 .jsonR("[\n\t{\n\t\tz: 'B',\n\t\tb: 1\n\t}\n]")
355 .xml("<array><B><b>1</b></B></array>")
356 .xmlT("<array><B><b>1</b></B></array>")
357 .xmlR("<array>\n\t<B>\n\t\t<b>1</b>\n\t</B>\n</array>\n")
358 .xmlNs("<array><B><b>1</b></B></array>")
359 .html("<table _type='array'><tr><th>b</th></tr><tr z='B'><td>1</td></tr></table>")
360 .htmlT("<table t='array'><tr><th>b</th></tr><tr z='B'><td>1</td></tr></table>")
361 .htmlR("<table _type='array'>\n\t<tr>\n\t\t<th>b</th>\n\t</tr>\n\t<tr z='B'>\n\t\t<td>1</td>\n\t</tr>\n</table>\n")
362 .uon("@((z=B,b=1))")
363 .uonT("@((z=B,b=1))")
364 .uonR("@(\n\t(\n\t\tz=B,\n\t\tb=1\n\t)\n)")
365 .urlEnc("0=(z=B,b=1)")
366 .urlEncT("0=(z=B,b=1)")
367 .urlEncR("0=(\n\tz=B,\n\tb=1\n)")
368 .msgPack("9182A17AA142A16201")
369 .msgPackT("9182A17AA142A16201")
370 .rdfXml("<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n")
371 .rdfXmlT("<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n")
372 .rdfXmlR("<rdf:RDF>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:z>B</jp:z>\n <jp:b>1</jp:b>\n </rdf:li>\n </rdf:Seq>\n</rdf:RDF>\n")
373 .verify(x -> verify(x[0]).isType(B.class))
374 .build(),
375 tester(15, "B[][][]", B[][][].class, a(a(a(new B().init(),null),null),null))
376 .json("[[[{z:'B',b:1},null],null],null]")
377 .jsonT("[[[{z:'B',b:1},null],null],null]")
378 .jsonR("[\n\t[\n\t\t[\n\t\t\t{\n\t\t\t\tz: 'B',\n\t\t\t\tb: 1\n\t\t\t},\n\t\t\tnull\n\t\t],\n\t\tnull\n\t],\n\tnull\n]")
379 .xml("<array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array>")
380 .xmlT("<array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array>")
381 .xmlR("<array>\n\t<array>\n\t\t<array>\n\t\t\t<B>\n\t\t\t\t<b>1</b>\n\t\t\t</B>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</array>\n\t<null/>\n</array>\n")
382 .xmlNs("<array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array>")
383 .html("<ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>")
384 .htmlT("<ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>")
385 .htmlR("<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<table z='B'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>b</td>\n\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li><null/></li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t\t<li><null/></li>\n\t\t</ul>\n\t</li>\n\t<li><null/></li>\n</ul>\n")
386 .uon("@(@(@((z=B,b=1),null),null),null)")
387 .uonT("@(@(@((z=B,b=1),null),null),null)")
388 .uonR("@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\tz=B,\n\t\t\t\tb=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)")
389 .urlEnc("0=@(@((z=B,b=1),null),null)&1=null")
390 .urlEncT("0=@(@((z=B,b=1),null),null)&1=null")
391 .urlEncR("0=@(\n\t@(\n\t\t(\n\t\t\tz=B,\n\t\t\tb=1\n\t\t),\n\t\tnull\n\t),\n\tnull\n)\n&1=null")
392 .msgPack("92929282A17AA142A16201C0C0C0")
393 .msgPackT("92929282A17AA142A16201C0C0C0")
394 .rdfXml("<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n")
395 .rdfXmlT("<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n")
396 .rdfXmlR("<rdf:RDF>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:z>B</jp:z>\n <jp:b>1</jp:b>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n</rdf:RDF>\n")
397 .verify(x -> verify(x[0][0][0]).isType(B.class))
398 .build(),
399 tester(16, "List<B[][][]>", getType(List.class, B[][][].class), l(a(a(a(new B().init(),null),null),null),null))
400 .json("[[[[{z:'B',b:1},null],null],null],null]")
401 .jsonT("[[[[{z:'B',b:1},null],null],null],null]")
402 .jsonR("[\n\t[\n\t\t[\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tz: 'B',\n\t\t\t\t\tb: 1\n\t\t\t\t},\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t],\n\tnull\n]")
403 .xml("<array><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></array>")
404 .xmlT("<array><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></array>")
405 .xmlR("<array>\n\t<array>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<B>\n\t\t\t\t\t<b>1</b>\n\t\t\t\t</B>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</array>\n\t<null/>\n</array>\n")
406 .xmlNs("<array><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></array>")
407 .html("<ul><li><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>")
408 .htmlT("<ul><li><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>")
409 .htmlR("<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<table z='B'>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>b</td>\n\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li><null/></li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t\t<li><null/></li>\n\t\t</ul>\n\t</li>\n\t<li><null/></li>\n</ul>\n")
410 .uon("@(@(@(@((z=B,b=1),null),null),null),null)")
411 .uonT("@(@(@(@((z=B,b=1),null),null),null),null)")
412 .uonR("@(\n\t@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\tz=B,\n\t\t\t\t\tb=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)")
413 .urlEnc("0=@(@(@((z=B,b=1),null),null),null)&1=null")
414 .urlEncT("0=@(@(@((z=B,b=1),null),null),null)&1=null")
415 .urlEncR("0=@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\tz=B,\n\t\t\t\tb=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)\n&1=null")
416 .msgPack("9292929282A17AA142A16201C0C0C0C0")
417 .msgPackT("9292929282A17AA142A16201C0C0C0C0")
418 .rdfXml("<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n")
419 .rdfXmlT("<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n")
420 .rdfXmlR("<rdf:RDF>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:z>B</jp:z>\n <jp:b>1</jp:b>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n</rdf:RDF>\n")
421 .verify(x -> verify(x.get(0)[0][0][0]).isType(B.class))
422 .build(),
423 tester(17, "Map<String,B[][][]>", getType(Map.class,String.class,B[][][].class), m("x",a(a(a(new B().init(),null),null),null)))
424 .json("{x:[[[{z:'B',b:1},null],null],null]}")
425 .jsonT("{x:[[[{z:'B',b:1},null],null],null]}")
426 .jsonR("{\n\tx: [\n\t\t[\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tz: 'B',\n\t\t\t\t\tb: 1\n\t\t\t\t},\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t]\n}")
427 .xml("<object><x _type='array'><array><array><B><b>1</b></B><null/></array><null/></array><null/></x></object>")
428 .xmlT("<object><x t='array'><array><array><B><b>1</b></B><null/></array><null/></array><null/></x></object>")
429 .xmlR("<object>\n\t<x _type='array'>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<B>\n\t\t\t\t\t<b>1</b>\n\t\t\t\t</B>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</x>\n</object>\n")
430 .xmlNs("<object><x _type='array'><array><array><B><b>1</b></B><null/></array><null/></array><null/></x></object>")
431 .html("<table><tr><td>x</td><td><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>")
432 .htmlT("<table><tr><td>x</td><td><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>")
433 .htmlR("<table>\n\t<tr>\n\t\t<td>x</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<table z='B'>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>b</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n")
434 .uon("(x=@(@(@((z=B,b=1),null),null),null))")
435 .uonT("(x=@(@(@((z=B,b=1),null),null),null))")
436 .uonR("(\n\tx=@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\tz=B,\n\t\t\t\t\tb=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t)\n)")
437 .urlEnc("x=@(@(@((z=B,b=1),null),null),null)")
438 .urlEncT("x=@(@(@((z=B,b=1),null),null),null)")
439 .urlEncR("x=@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\tz=B,\n\t\t\t\tb=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)")
440 .msgPack("81A17892929282A17AA142A16201C0C0C0")
441 .msgPackT("81A17892929282A17AA142A16201C0C0C0")
442 .rdfXml("<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n")
443 .rdfXmlT("<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n")
444 .rdfXmlR("<rdf:RDF>\n <rdf:Description>\n <jp:x>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:z>B</jp:z>\n <jp:b>1</jp:b>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </jp:x>\n </rdf:Description>\n</rdf:RDF>\n")
445 .verify(x -> verify(x.get("x")[0][0][0]).isType(B.class))
446 .build(),
447 tester(18, "Map<String,List<B[][][]>>", getType(Map.class,String.class,List.class,B[][][].class), m("x",l(a(a(a(new B().init(),null),null),null),null)))
448 .json("{x:[[[[{z:'B',b:1},null],null],null],null]}")
449 .jsonT("{x:[[[[{z:'B',b:1},null],null],null],null]}")
450 .jsonR("{\n\tx: [\n\t\t[\n\t\t\t[\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\tz: 'B',\n\t\t\t\t\t\tb: 1\n\t\t\t\t\t},\n\t\t\t\t\tnull\n\t\t\t\t],\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t]\n}")
451 .xml("<object><x _type='array'><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></x></object>")
452 .xmlT("<object><x t='array'><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></x></object>")
453 .xmlR("<object>\n\t<x _type='array'>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<array>\n\t\t\t\t\t<B>\n\t\t\t\t\t\t<b>1</b>\n\t\t\t\t\t</B>\n\t\t\t\t\t<null/>\n\t\t\t\t</array>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</x>\n</object>\n")
454 .xmlNs("<object><x _type='array'><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></x></object>")
455 .html("<table><tr><td>x</td><td><ul><li><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>")
456 .htmlT("<table><tr><td>x</td><td><ul><li><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>")
457 .htmlR("<table>\n\t<tr>\n\t\t<td>x</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t\t<table z='B'>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>b</td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n")
458 .uon("(x=@(@(@(@((z=B,b=1),null),null),null),null))")
459 .uonT("(x=@(@(@(@((z=B,b=1),null),null),null),null))")
460 .uonR("(\n\tx=@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t@(\n\t\t\t\t\t(\n\t\t\t\t\t\tz=B,\n\t\t\t\t\t\tb=1\n\t\t\t\t\t),\n\t\t\t\t\tnull\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t)\n)")
461 .urlEnc("x=@(@(@(@((z=B,b=1),null),null),null),null)")
462 .urlEncT("x=@(@(@(@((z=B,b=1),null),null),null),null)")
463 .urlEncR("x=@(\n\t@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\tz=B,\n\t\t\t\t\tb=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)")
464 .msgPack("81A1789292929282A17AA142A16201C0C0C0C0")
465 .msgPackT("81A1789292929282A17AA142A16201C0C0C0C0")
466 .rdfXml("<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n")
467 .rdfXmlT("<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n")
468 .rdfXmlR("<rdf:RDF>\n <rdf:Description>\n <jp:x>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:z>B</jp:z>\n <jp:b>1</jp:b>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </jp:x>\n </rdf:Description>\n</rdf:RDF>\n")
469 .verify(x -> verify(x.get("x").get(0)[0][0][0]).isType(B.class))
470 .build(),
471 tester(19, "IB", IB.class, new B().init())
472 .json("{z:'B',b:1}")
473 .jsonT("{z:'B',b:1}")
474 .jsonR("{\n\tz: 'B',\n\tb: 1\n}")
475 .xml("<B><b>1</b></B>")
476 .xmlT("<B><b>1</b></B>")
477 .xmlR("<B>\n\t<b>1</b>\n</B>\n")
478 .xmlNs("<B><b>1</b></B>")
479 .html("<table z='B'><tr><td>b</td><td>1</td></tr></table>")
480 .htmlT("<table z='B'><tr><td>b</td><td>1</td></tr></table>")
481 .htmlR("<table z='B'>\n\t<tr>\n\t\t<td>b</td>\n\t\t<td>1</td>\n\t</tr>\n</table>\n")
482 .uon("(z=B,b=1)")
483 .uonT("(z=B,b=1)")
484 .uonR("(\n\tz=B,\n\tb=1\n)")
485 .urlEnc("z=B&b=1")
486 .urlEncT("z=B&b=1")
487 .urlEncR("z=B\n&b=1")
488 .msgPack("82A17AA142A16201")
489 .msgPackT("82A17AA142A16201")
490 .rdfXml("<rdf:RDF>\n<rdf:Description>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:Description>\n</rdf:RDF>\n")
491 .rdfXmlT("<rdf:RDF>\n<rdf:Description>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:Description>\n</rdf:RDF>\n")
492 .rdfXmlR("<rdf:RDF>\n <rdf:Description>\n <jp:z>B</jp:z>\n <jp:b>1</jp:b>\n </rdf:Description>\n</rdf:RDF>\n")
493 .verify(x -> verify(x).isType(B.class))
494 .build(),
495 tester(20, "IB[]", IB[].class, a((IB)new B().init()))
496 .json("[{z:'B',b:1}]")
497 .jsonT("[{z:'B',b:1}]")
498 .jsonR("[\n\t{\n\t\tz: 'B',\n\t\tb: 1\n\t}\n]")
499 .xml("<array><B><b>1</b></B></array>")
500 .xmlT("<array><B><b>1</b></B></array>")
501 .xmlR("<array>\n\t<B>\n\t\t<b>1</b>\n\t</B>\n</array>\n")
502 .xmlNs("<array><B><b>1</b></B></array>")
503 .html("<table _type='array'><tr><th>b</th></tr><tr z='B'><td>1</td></tr></table>")
504 .htmlT("<table t='array'><tr><th>b</th></tr><tr z='B'><td>1</td></tr></table>")
505 .htmlR("<table _type='array'>\n\t<tr>\n\t\t<th>b</th>\n\t</tr>\n\t<tr z='B'>\n\t\t<td>1</td>\n\t</tr>\n</table>\n")
506 .uon("@((z=B,b=1))")
507 .uonT("@((z=B,b=1))")
508 .uonR("@(\n\t(\n\t\tz=B,\n\t\tb=1\n\t)\n)")
509 .urlEnc("0=(z=B,b=1)")
510 .urlEncT("0=(z=B,b=1)")
511 .urlEncR("0=(\n\tz=B,\n\tb=1\n)")
512 .msgPack("9182A17AA142A16201")
513 .msgPackT("9182A17AA142A16201")
514 .rdfXml("<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n")
515 .rdfXmlT("<rdf:RDF>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n")
516 .rdfXmlR("<rdf:RDF>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:z>B</jp:z>\n <jp:b>1</jp:b>\n </rdf:li>\n </rdf:Seq>\n</rdf:RDF>\n")
517 .verify(x -> verify(x[0]).isType(B.class))
518 .build(),
519 tester(21, "IB[][][]", IB[][][].class, a(a(a((IB)new B().init(),null),null),null))
520 .json("[[[{z:'B',b:1},null],null],null]")
521 .jsonT("[[[{z:'B',b:1},null],null],null]")
522 .jsonR("[\n\t[\n\t\t[\n\t\t\t{\n\t\t\t\tz: 'B',\n\t\t\t\tb: 1\n\t\t\t},\n\t\t\tnull\n\t\t],\n\t\tnull\n\t],\n\tnull\n]")
523 .xml("<array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array>")
524 .xmlT("<array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array>")
525 .xmlR("<array>\n\t<array>\n\t\t<array>\n\t\t\t<B>\n\t\t\t\t<b>1</b>\n\t\t\t</B>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</array>\n\t<null/>\n</array>\n")
526 .xmlNs("<array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array>")
527 .html("<ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>")
528 .htmlT("<ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>")
529 .htmlR("<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<table z='B'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td>b</td>\n\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li><null/></li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t\t<li><null/></li>\n\t\t</ul>\n\t</li>\n\t<li><null/></li>\n</ul>\n")
530 .uon("@(@(@((z=B,b=1),null),null),null)")
531 .uonT("@(@(@((z=B,b=1),null),null),null)")
532 .uonR("@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\tz=B,\n\t\t\t\tb=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)")
533 .urlEnc("0=@(@((z=B,b=1),null),null)&1=null")
534 .urlEncT("0=@(@((z=B,b=1),null),null)&1=null")
535 .urlEncR("0=@(\n\t@(\n\t\t(\n\t\t\tz=B,\n\t\t\tb=1\n\t\t),\n\t\tnull\n\t),\n\tnull\n)\n&1=null")
536 .msgPack("92929282A17AA142A16201C0C0C0")
537 .msgPackT("92929282A17AA142A16201C0C0C0")
538 .rdfXml("<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n")
539 .rdfXmlT("<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n")
540 .rdfXmlR("<rdf:RDF>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:z>B</jp:z>\n <jp:b>1</jp:b>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n</rdf:RDF>\n")
541 .verify(x -> verify(x[0][0][0]).isType(B.class))
542 .build(),
543 tester(22, "List<IB[][][]>", getType(List.class,IB[][][].class), l(a(a(a((IB)new B().init(),null),null),null),null))
544 .json("[[[[{z:'B',b:1},null],null],null],null]")
545 .jsonT("[[[[{z:'B',b:1},null],null],null],null]")
546 .jsonR("[\n\t[\n\t\t[\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tz: 'B',\n\t\t\t\t\tb: 1\n\t\t\t\t},\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t],\n\tnull\n]")
547 .xml("<array><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></array>")
548 .xmlT("<array><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></array>")
549 .xmlR("<array>\n\t<array>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<B>\n\t\t\t\t\t<b>1</b>\n\t\t\t\t</B>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</array>\n\t<null/>\n</array>\n")
550 .xmlNs("<array><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></array>")
551 .html("<ul><li><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>")
552 .htmlT("<ul><li><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul>")
553 .htmlR("<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<table z='B'>\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>b</td>\n\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li><null/></li>\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t\t<li><null/></li>\n\t\t</ul>\n\t</li>\n\t<li><null/></li>\n</ul>\n")
554 .uon("@(@(@(@((z=B,b=1),null),null),null),null)")
555 .uonT("@(@(@(@((z=B,b=1),null),null),null),null)")
556 .uonR("@(\n\t@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\tz=B,\n\t\t\t\t\tb=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)")
557 .urlEnc("0=@(@(@((z=B,b=1),null),null),null)&1=null")
558 .urlEncT("0=@(@(@((z=B,b=1),null),null),null)&1=null")
559 .urlEncR("0=@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\tz=B,\n\t\t\t\tb=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)\n&1=null")
560 .msgPack("9292929282A17AA142A16201C0C0C0C0")
561 .msgPackT("9292929282A17AA142A16201C0C0C0C0")
562 .rdfXml("<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n")
563 .rdfXmlT("<rdf:RDF>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:RDF>\n")
564 .rdfXmlR("<rdf:RDF>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:z>B</jp:z>\n <jp:b>1</jp:b>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n</rdf:RDF>\n")
565 .verify(x -> verify(x.get(0)[0][0][0]).isType(B.class))
566 .build(),
567 tester(23, "Map<String,IB[][][]>", getType(Map.class,String.class,IB[][][].class), m("x",a(a(a((IB)new B().init(),null),null),null)))
568 .json("{x:[[[{z:'B',b:1},null],null],null]}")
569 .jsonT("{x:[[[{z:'B',b:1},null],null],null]}")
570 .jsonR("{\n\tx: [\n\t\t[\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tz: 'B',\n\t\t\t\t\tb: 1\n\t\t\t\t},\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t]\n}")
571 .xml("<object><x _type='array'><array><array><B><b>1</b></B><null/></array><null/></array><null/></x></object>")
572 .xmlT("<object><x t='array'><array><array><B><b>1</b></B><null/></array><null/></array><null/></x></object>")
573 .xmlR("<object>\n\t<x _type='array'>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<B>\n\t\t\t\t\t<b>1</b>\n\t\t\t\t</B>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</x>\n</object>\n")
574 .xmlNs("<object><x _type='array'><array><array><B><b>1</b></B><null/></array><null/></array><null/></x></object>")
575 .html("<table><tr><td>x</td><td><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>")
576 .htmlT("<table><tr><td>x</td><td><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>")
577 .htmlR("<table>\n\t<tr>\n\t\t<td>x</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<table z='B'>\n\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t<td>b</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n")
578 .uon("(x=@(@(@((z=B,b=1),null),null),null))")
579 .uonT("(x=@(@(@((z=B,b=1),null),null),null))")
580 .uonR("(\n\tx=@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\tz=B,\n\t\t\t\t\tb=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t)\n)")
581 .urlEnc("x=@(@(@((z=B,b=1),null),null),null)")
582 .urlEncT("x=@(@(@((z=B,b=1),null),null),null)")
583 .urlEncR("x=@(\n\t@(\n\t\t@(\n\t\t\t(\n\t\t\t\tz=B,\n\t\t\t\tb=1\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)")
584 .msgPack("81A17892929282A17AA142A16201C0C0C0")
585 .msgPackT("81A17892929282A17AA142A16201C0C0C0")
586 .rdfXml("<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n")
587 .rdfXmlT("<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n")
588 .rdfXmlR("<rdf:RDF>\n <rdf:Description>\n <jp:x>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:z>B</jp:z>\n <jp:b>1</jp:b>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </jp:x>\n </rdf:Description>\n</rdf:RDF>\n")
589 .verify(x -> verify(x.get("x")[0][0][0]).isType(B.class))
590 .build(),
591 tester(24, "Map<String,List<IB[][][]>>", getType(Map.class,String.class,List.class,IB[][][].class), m("x",l(a2(a2(a((IB)new B().init(),null),null),null),null)))
592 .json("{x:[[[[{z:'B',b:1},null],null],null],null]}")
593 .jsonT("{x:[[[[{z:'B',b:1},null],null],null],null]}")
594 .jsonR("{\n\tx: [\n\t\t[\n\t\t\t[\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\tz: 'B',\n\t\t\t\t\t\tb: 1\n\t\t\t\t\t},\n\t\t\t\t\tnull\n\t\t\t\t],\n\t\t\t\tnull\n\t\t\t],\n\t\t\tnull\n\t\t],\n\t\tnull\n\t]\n}")
595 .xml("<object><x _type='array'><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></x></object>")
596 .xmlT("<object><x t='array'><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></x></object>")
597 .xmlR("<object>\n\t<x _type='array'>\n\t\t<array>\n\t\t\t<array>\n\t\t\t\t<array>\n\t\t\t\t\t<B>\n\t\t\t\t\t\t<b>1</b>\n\t\t\t\t\t</B>\n\t\t\t\t\t<null/>\n\t\t\t\t</array>\n\t\t\t\t<null/>\n\t\t\t</array>\n\t\t\t<null/>\n\t\t</array>\n\t\t<null/>\n\t</x>\n</object>\n")
598 .xmlNs("<object><x _type='array'><array><array><array><B><b>1</b></B><null/></array><null/></array><null/></array><null/></x></object>")
599 .html("<table><tr><td>x</td><td><ul><li><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>")
600 .htmlT("<table><tr><td>x</td><td><ul><li><ul><li><ul><li><ul><li><table z='B'><tr><td>b</td><td>1</td></tr></table></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></li><li><null/></li></ul></td></tr></table>")
601 .htmlR("<table>\n\t<tr>\n\t\t<td>x</td>\n\t\t<td>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t\t<table z='B'>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>b</td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>1</td>\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li><null/></li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li><null/></li>\n\t\t\t</ul>\n\t\t</td>\n\t</tr>\n</table>\n")
602 .uon("(x=@(@(@(@((z=B,b=1),null),null),null),null))")
603 .uonT("(x=@(@(@(@((z=B,b=1),null),null),null),null))")
604 .uonR("(\n\tx=@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t@(\n\t\t\t\t\t(\n\t\t\t\t\t\tz=B,\n\t\t\t\t\t\tb=1\n\t\t\t\t\t),\n\t\t\t\t\tnull\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t)\n)")
605 .urlEnc("x=@(@(@(@((z=B,b=1),null),null),null),null)")
606 .urlEncT("x=@(@(@(@((z=B,b=1),null),null),null),null)")
607 .urlEncR("x=@(\n\t@(\n\t\t@(\n\t\t\t@(\n\t\t\t\t(\n\t\t\t\t\tz=B,\n\t\t\t\t\tb=1\n\t\t\t\t),\n\t\t\t\tnull\n\t\t\t),\n\t\t\tnull\n\t\t),\n\t\tnull\n\t),\n\tnull\n)")
608 .msgPack("81A1789292929282A17AA142A16201C0C0C0C0")
609 .msgPackT("81A1789292929282A17AA142A16201C0C0C0C0")
610 .rdfXml("<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n")
611 .rdfXmlT("<rdf:RDF>\n<rdf:Description>\n<jp:x>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:z>B</jp:z>\n<jp:b>1</jp:b>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</rdf:li>\n<rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n</rdf:Seq>\n</jp:x>\n</rdf:Description>\n</rdf:RDF>\n")
612 .rdfXmlR("<rdf:RDF>\n <rdf:Description>\n <jp:x>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:z>B</jp:z>\n <jp:b>1</jp:b>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </rdf:li>\n <rdf:li rdf:resource='http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'/>\n </rdf:Seq>\n </jp:x>\n </rdf:Description>\n</rdf:RDF>\n")
613 .verify(x -> verify(x.get("x").get(0)[0][0][0]).isType(B.class))
614 .build()
615 };
616
617 static ComboRoundTrip_Tester<?>[] testers() {
618 return TESTERS;
619 }
620
621 @Bean(dictionary={A.class})
622 public interface IA {}
623
624 @Bean(typeName="A")
625 public static class A implements IA {
626 public int a;
627
628 public A init() {
629 a = 1;
630 return this;
631 }
632 }
633
634 @Bean(dictionary={B.class}, typePropertyName="z")
635 public interface IB {}
636
637 @Bean(typeName="B")
638 public static class B implements IB {
639 public int b;
640
641 public B init() {
642 b = 1;
643 return this;
644 }
645 }
646 }