1 /*
2  * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.
8  *
9  * This code is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12  * version 2 for more details (a copy is included in the LICENSE file that
13  * accompanied this code).
14  *
15  * You should have received a copy of the GNU General Public License version
16  * 2 along with this work; if not, write to the Free Software Foundation,
17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18  *
19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20  * or visit www.oracle.com if you need additional information or have any
21  * questions.
22  */
23 
24 /*
25  * @test
26  * @bug 4993777
27  * @summary Tests encoding of multi-dimensional arrays
28  * @author Sergey Malenkov
29  */
30 
31 public final class Test4993777 extends AbstractTest {
main(String[] args)32     public static void main(String[] args) {
33         new Test4993777().test(true);
34     }
35 
getObject()36     protected ArrayBean getObject() {
37         ArrayBean data = new ArrayBean();
38         data.setArray(
39                 new InnerObject("one"),
40                 new InnerObject("two")
41         );
42         return data;
43     }
44 
getAnotherObject()45     protected ArrayBean getAnotherObject() {
46         ArrayBean data = new ArrayBean();
47         data.setArray2D(
48                 new InnerObject[] {
49                         new InnerObject("1"),
50                         new InnerObject("2"),
51                         new InnerObject("3"),
52                 },
53                 new InnerObject[] {
54                         new InnerObject("4"),
55                         new InnerObject("5"),
56                         new InnerObject("6"),
57                 }
58         );
59         return data;
60     }
61 
62     public static final class ArrayBean {
63         private InnerObject[] array;
64         private InnerObject[][] array2D;
65 
getArray()66         public InnerObject[] getArray() {
67             return this.array;
68         }
69 
setArray(InnerObject... array)70         public void setArray(InnerObject... array) {
71             this.array = array;
72         }
73 
getArray2D()74         public InnerObject[][] getArray2D() {
75             return this.array2D;
76         }
77 
setArray2D(InnerObject[].... array2D)78         public void setArray2D(InnerObject[]... array2D) {
79             this.array2D = array2D;
80         }
81     }
82 
83     public static final class InnerObject {
84         private String name;
85 
InnerObject()86         public InnerObject() {
87         }
88 
InnerObject(String name)89         private InnerObject(String name) {
90             this.name = name;
91         }
92 
getName()93         public String getName() {
94             return this.name;
95         }
96 
setName(String name)97         public void setName(String name) {
98             this.name = name;
99         }
100     }
101 }
102