1/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 *   http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19
20// The java codegenerator has a few different codepaths depending
21// on how many optionals the struct has; this attempts to exercise
22// them.
23
24namespace java thrift.test
25
26struct Opt4 {
27  1: i32 def1;
28  2: i32 def2;
29  3: i32 def3;
30  4: i32 def4;
31}
32
33struct Opt13 {
34  1: i32 def1;
35  2: i32 def2;
36  3: i32 def3;
37  4: i32 def4;
38  5: i32 def5;
39  6: i32 def6;
40  7: i32 def7;
41  8: i32 def8;
42  9: i32 def9;
43  10: i32 def10;
44  11: i32 def11;
45  12: i32 def12;
46  13: i32 def13;
47}
48
49struct Opt30 {
50  1: i32 def1;
51  2: i32 def2;
52  3: i32 def3;
53  4: i32 def4;
54  5: i32 def5;
55  6: i32 def6;
56  7: i32 def7;
57  8: i32 def8;
58  9: i32 def9;
59  10: i32 def10;
60  11: i32 def11;
61  12: i32 def12;
62  13: i32 def13;
63  14: i32 def14;
64  15: i32 def15;
65  16: i32 def16;
66  17: i32 def17;
67  18: i32 def18;
68  19: i32 def19;
69  20: i32 def20;
70  21: i32 def21;
71  22: i32 def22;
72  23: i32 def23;
73  24: i32 def24;
74  25: i32 def25;
75  26: i32 def26;
76  27: i32 def27;
77  28: i32 def28;
78  29: i32 def29;
79  30: i32 def30;
80}
81
82struct Opt64 {
83  1: i32 def1;
84  2: i32 def2;
85  3: i32 def3;
86  4: i32 def4;
87  5: i32 def5;
88  6: i32 def6;
89  7: i32 def7;
90  8: i32 def8;
91  9: i32 def9;
92  10: i32 def10;
93  11: i32 def11;
94  12: i32 def12;
95  13: i32 def13;
96  14: i32 def14;
97  15: i32 def15;
98  16: i32 def16;
99  17: i32 def17;
100  18: i32 def18;
101  19: i32 def19;
102  20: i32 def20;
103  21: i32 def21;
104  22: i32 def22;
105  23: i32 def23;
106  24: i32 def24;
107  25: i32 def25;
108  26: i32 def26;
109  27: i32 def27;
110  28: i32 def28;
111  29: i32 def29;
112  30: i32 def30;
113  31: i32 def31;
114  32: i32 def32;
115  33: i32 def33;
116  34: i32 def34;
117  35: i32 def35;
118  36: i32 def36;
119  37: i32 def37;
120  38: i32 def38;
121  39: i32 def39;
122  40: i32 def40;
123  41: i32 def41;
124  42: i32 def42;
125  43: i32 def43;
126  44: i32 def44;
127  45: i32 def45;
128  46: i32 def46;
129  47: i32 def47;
130  48: i32 def48;
131  49: i32 def49;
132  50: i32 def50;
133  51: i32 def51;
134  52: i32 def52;
135  53: i32 def53;
136  54: i32 def54;
137  55: i32 def55;
138  56: i32 def56;
139  57: i32 def57;
140  58: i32 def58;
141  59: i32 def59;
142  60: i32 def60;
143  61: i32 def61;
144  62: i32 def62;
145  63: i32 def63;
146  64: i32 def64;
147}
148
149struct Opt80 {
150  1: i32 def1;
151  2: i32 def2;
152  3: i32 def3;
153  4: i32 def4;
154  5: i32 def5;
155  6: i32 def6;
156  7: i32 def7;
157  8: i32 def8;
158  9: i32 def9;
159  10: i32 def10;
160  11: i32 def11;
161  12: i32 def12;
162  13: i32 def13;
163  14: i32 def14;
164  15: i32 def15;
165  16: i32 def16;
166  17: i32 def17;
167  18: i32 def18;
168  19: i32 def19;
169  20: i32 def20;
170  21: i32 def21;
171  22: i32 def22;
172  23: i32 def23;
173  24: i32 def24;
174  25: i32 def25;
175  26: i32 def26;
176  27: i32 def27;
177  28: i32 def28;
178  29: i32 def29;
179  30: i32 def30;
180  31: i32 def31;
181  32: i32 def32;
182  33: i32 def33;
183  34: i32 def34;
184  35: i32 def35;
185  36: i32 def36;
186  37: i32 def37;
187  38: i32 def38;
188  39: i32 def39;
189  40: i32 def40;
190  41: i32 def41;
191  42: i32 def42;
192  43: i32 def43;
193  44: i32 def44;
194  45: i32 def45;
195  46: i32 def46;
196  47: i32 def47;
197  48: i32 def48;
198  49: i32 def49;
199  50: i32 def50;
200  51: i32 def51;
201  52: i32 def52;
202  53: i32 def53;
203  54: i32 def54;
204  55: i32 def55;
205  56: i32 def56;
206  57: i32 def57;
207  58: i32 def58;
208  59: i32 def59;
209  60: i32 def60;
210  61: i32 def61;
211  62: i32 def62;
212  63: i32 def63;
213  64: i32 def64;
214  65: i32 def65;
215  66: i32 def66;
216  67: i32 def67;
217  68: i32 def68;
218  69: i32 def69;
219  70: i32 def70;
220  71: i32 def71;
221  72: i32 def72;
222  73: i32 def73;
223  74: i32 def74;
224  75: i32 def75;
225  76: i32 def76;
226  77: i32 def77;
227  78: i32 def78;
228  79: i32 def79;
229  80: i32 def80;
230}
231
232