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