@@ -2280,6 +2280,11 @@ public Builder add(final Builder builder) {
22802280 return this ;
22812281 }
22822282
2283+ public Builder add (final String key , final ArrayBuilder builder ) {
2284+ data .put (key , builder .build ());
2285+ return this ;
2286+ }
2287+
22832288 @ SuppressWarnings ("unchecked" )
22842289 public Map <String , Object > build () {
22852290 return (Map <String , Object >) ((LinkedHashMap ) data ).clone ();
@@ -2310,4 +2315,65 @@ public String toString() {
23102315 return data .toString ();
23112316 }
23122317 }
2318+
2319+ public static ArrayBuilder arrayBuilder () {
2320+ return new U .ArrayBuilder ();
2321+ }
2322+
2323+ public static class ArrayBuilder {
2324+ private final List <Object > data ;
2325+ public ArrayBuilder () {
2326+ data = newArrayList ();
2327+ }
2328+
2329+ public ArrayBuilder add (final Object value ) {
2330+ data .add (value );
2331+ return this ;
2332+ }
2333+
2334+ public ArrayBuilder set (final int index , final Object value ) {
2335+ data .set (index , value );
2336+ return this ;
2337+ }
2338+
2339+ public ArrayBuilder add (final ArrayBuilder builder ) {
2340+ data .addAll (builder .build ());
2341+ return this ;
2342+ }
2343+
2344+ public ArrayBuilder add (final Builder builder ) {
2345+ data .add (builder .build ());
2346+ return this ;
2347+ }
2348+
2349+ @ SuppressWarnings ("unchecked" )
2350+ public List <Object > build () {
2351+ return (List <Object >) ((ArrayList ) data ).clone ();
2352+ }
2353+
2354+ public String toXml () {
2355+ return Xml .toXml (data );
2356+ }
2357+
2358+ public static ArrayBuilder fromXml (final String xml ) {
2359+ final ArrayBuilder builder = new ArrayBuilder ();
2360+ builder .data .addAll (U .<List <Object >>fromXml (xml ));
2361+ return builder ;
2362+ }
2363+
2364+ public String toJson () {
2365+ return Json .toJson (data );
2366+ }
2367+
2368+ public static ArrayBuilder fromJson (final String json ) {
2369+ final ArrayBuilder builder = new ArrayBuilder ();
2370+ builder .data .addAll (U .<List <Object >>fromJson (json ));
2371+ return builder ;
2372+ }
2373+
2374+ @ Override
2375+ public String toString () {
2376+ return data .toString ();
2377+ }
2378+ }
23132379}
0 commit comments