• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License").
5  * You may not use this file except in compliance with the License.
6  * A copy of the License is located at
7  *
8  *  http://aws.amazon.com/apache2.0
9  *
10  * or in the "license" file accompanying this file. This file is distributed
11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12  * express or implied. See the License for the specific language governing
13  * permissions and limitations under the License.
14  */
15 
16 package software.amazon.awssdk.benchmark.enhanced.dynamodb;
17 
18 import com.amazonaws.util.ImmutableMapParameter;
19 import java.lang.reflect.Method;
20 import java.nio.ByteBuffer;
21 import java.util.Arrays;
22 import java.util.HashMap;
23 import java.util.List;
24 import java.util.Map;
25 import java.util.Random;
26 import java.util.stream.Collectors;
27 import java.util.stream.IntStream;
28 import software.amazon.awssdk.core.SdkBytes;
29 
30 abstract class ItemFactory<T> {
31     private static final String ALPHA = "abcdefghijklmnopqrstuvwxyz";
32 
33     private static final Random RNG = new Random();
34 
tiny()35     public final Map<String, T> tiny() {
36         return asItem(tinyBean());
37     }
38 
small()39     public final Map<String, T> small() {
40         return asItem(smallBean());
41     }
42 
huge()43     public final Map<String, T> huge() {
44         return asItem(hugeBean());
45     }
46 
hugeFlat()47     public final Map<String, T> hugeFlat() {
48         return asItem(hugeBeanFlat());
49     }
50 
tinyBean()51     public final TinyBean tinyBean() {
52         TinyBean b = new TinyBean();
53         b.setStringAttr(randomS());
54         return b;
55     }
56 
smallBean()57     public final SmallBean smallBean() {
58         SmallBean b = new SmallBean();
59         b.setStringAttr(randomS());
60         b.setBinaryAttr(randomBytes());
61         b.setListAttr(Arrays.asList(randomS(), randomS(), randomS()));
62         return b;
63     }
64 
hugeBean()65     public final HugeBean hugeBean() {
66         HugeBean b = new HugeBean();
67         b.setHashKey(randomS());
68         b.setStringAttr(randomS());
69         b.setBinaryAttr(randomBytes());
70         b.setListAttr(IntStream.range(0, 32).mapToObj(i -> randomS()).collect(Collectors.toList()));
71 
72         Map<String, SdkBytes> mapAttr1 = new HashMap<>();
73         mapAttr1.put("key1", randomBytes());
74         mapAttr1.put("key2", randomBytes());
75         mapAttr1.put("key3", randomBytes());
76 
77         b.setMapAttr1(mapAttr1);
78 
79         Map<String, List<SdkBytes>> mapAttr2 = new HashMap<>();
80         mapAttr2.put("key1", Arrays.asList(randomBytes()));
81         mapAttr2.put("key2", IntStream.range(0, 2).mapToObj(i -> randomBytes()).collect(Collectors.toList()));
82         mapAttr2.put("key3", IntStream.range(0, 4).mapToObj(i -> randomBytes()).collect(Collectors.toList()));
83         mapAttr2.put("key4", IntStream.range(0, 8).mapToObj(i -> randomBytes()).collect(Collectors.toList()));
84         mapAttr2.put("key5", IntStream.range(0, 16).mapToObj(i -> randomBytes()).collect(Collectors.toList()));
85 
86         b.setMapAttr2(mapAttr2);
87 
88         ImmutableMapParameter.Builder<String, List<Map<String, List<SdkBytes>>>> mapAttr3Builder =
89                 ImmutableMapParameter.builder();
90 
91         List<Map<String, List<SdkBytes>>> value = Arrays.asList(
92                 ImmutableMapParameter.<String, List<SdkBytes>>builder()
93                         .put("key1", IntStream.range(0, 2).mapToObj(i -> randomBytes()).collect(Collectors.toList()))
94                         .build(),
95                 ImmutableMapParameter.<String, List<SdkBytes>>builder()
96                         .put("key2", IntStream.range(0, 4).mapToObj(i -> randomBytes()).collect(Collectors.toList()))
97                         .build(),
98                 ImmutableMapParameter.<String, List<SdkBytes>>builder()
99                         .put("key3", IntStream.range(0, 8).mapToObj(i -> randomBytes()).collect(Collectors.toList()))
100                         .build()
101         );
102 
103         mapAttr3Builder.put("key1", value)
104                        .put("key2", value)
105                        .build();
106 
107         b.setMapAttr3(mapAttr3Builder.build());
108 
109         return b;
110     }
111 
hugeBeanFlat()112     public HugeBeanFlat hugeBeanFlat() {
113         HugeBeanFlat b = new HugeBeanFlat();
114         Class<HugeBeanFlat> clazz = HugeBeanFlat.class;
115         for (int i = 1; i <= 63; ++i) {
116             try {
117                 Method setter = clazz.getMethod("setStringAttr" + i, String.class);
118                 setter.setAccessible(true);
119                 setter.invoke(b, randomS());
120             } catch (Throwable t) {
121                 throw new RuntimeException(t);
122             }
123         }
124         return b;
125     }
126 
asItem(TinyBean b)127     protected abstract Map<String, T> asItem(TinyBean b);
128 
asItem(SmallBean b)129     protected abstract Map<String, T> asItem(SmallBean b);
130 
asItem(HugeBean b)131     protected abstract Map<String, T> asItem(HugeBean b);
132 
asItem(HugeBeanFlat b)133     protected final Map<String, T> asItem(HugeBeanFlat b) {
134         Map<String, T> item = new HashMap<>();
135         Class<HugeBeanFlat> clazz = HugeBeanFlat.class;
136         for (int i = 1; i <= 63; ++i) {
137             try {
138                 Method getter = clazz.getMethod("getStringAttr" + i);
139                 getter.setAccessible(true);
140                 item.put("stringAttr" + i, av((String) getter.invoke(b)));
141             } catch (Throwable t) {
142                 throw new RuntimeException(t);
143             }
144         }
145         return item;
146     }
147 
av(String val)148     protected abstract T av(String val);
149 
av(List<T> val)150     protected abstract T av(List<T> val);
151 
av(Map<String, T> val)152     protected abstract T av(Map<String, T> val);
153 
av(SdkBytes val)154     protected abstract T av(SdkBytes val);
155 
randomS(int len)156     private static String randomS(int len) {
157         StringBuilder sb = new StringBuilder(len);
158         for (int i = 0; i < len; ++i) {
159             sb.append(ALPHA.charAt(RNG.nextInt(ALPHA.length())));
160         }
161         return sb.toString();
162     }
163 
randomS()164     private static String randomS() {
165         return randomS(16);
166     }
167 
randomB(int len)168     private static ByteBuffer randomB(int len) {
169         byte[] b = new byte[len];
170         RNG.nextBytes(b);
171         return ByteBuffer.wrap(b);
172     }
173 
randomB()174     private static ByteBuffer randomB() {
175         return randomB(16);
176     }
177 
randomBytes()178     private static SdkBytes randomBytes() {
179         return SdkBytes.fromByteBuffer(randomB());
180     }
181 
182     public static class TinyBean {
183         private String stringAttr;
184 
getStringAttr()185         public String getStringAttr() {
186             return stringAttr;
187         }
188 
setStringAttr(String stringAttr)189         public void setStringAttr(String stringAttr) {
190             this.stringAttr = stringAttr;
191         }
192     }
193 
194     public static class SmallBean {
195         private String stringAttr;
196         private SdkBytes binaryAttr;
197         private List<String> listAttr;
198 
getStringAttr()199         public String getStringAttr() {
200             return stringAttr;
201         }
202 
setStringAttr(String stringAttr)203         public void setStringAttr(String stringAttr) {
204             this.stringAttr = stringAttr;
205         }
206 
getBinaryAttr()207         public SdkBytes getBinaryAttr() {
208             return binaryAttr;
209         }
210 
setBinaryAttr(SdkBytes binaryAttr)211         public void setBinaryAttr(SdkBytes binaryAttr) {
212             this.binaryAttr = binaryAttr;
213         }
214 
getListAttr()215         public List<String> getListAttr() {
216             return listAttr;
217         }
218 
setListAttr(List<String> listAttr)219         public void setListAttr(List<String> listAttr) {
220             this.listAttr = listAttr;
221         }
222     }
223 
224     public static class HugeBean {
225         private String hashKey;
226         private String stringAttr;
227         private SdkBytes binaryAttr;
228         private List<String> listAttr;
229 
230         private Map<String, SdkBytes> mapAttr1;
231         private Map<String, List<SdkBytes>> mapAttr2;
232         private Map<String, List<Map<String, List<SdkBytes>>>> mapAttr3;
233 
getHashKey()234         public String getHashKey() {
235             return hashKey;
236         }
237 
setHashKey(String hashKey)238         public void setHashKey(String hashKey) {
239             this.hashKey = hashKey;
240         }
241 
getStringAttr()242         public String getStringAttr() {
243             return stringAttr;
244         }
245 
setStringAttr(String stringAttr)246         public void setStringAttr(String stringAttr) {
247             this.stringAttr = stringAttr;
248         }
249 
getBinaryAttr()250         public SdkBytes getBinaryAttr() {
251             return binaryAttr;
252         }
253 
setBinaryAttr(SdkBytes binaryAttr)254         public void setBinaryAttr(SdkBytes binaryAttr) {
255             this.binaryAttr = binaryAttr;
256         }
257 
getListAttr()258         public List<String> getListAttr() {
259             return listAttr;
260         }
261 
setListAttr(List<String> listAttr)262         public void setListAttr(List<String> listAttr) {
263             this.listAttr = listAttr;
264         }
265 
getMapAttr1()266         public Map<String, SdkBytes> getMapAttr1() {
267             return mapAttr1;
268         }
269 
setMapAttr1(Map<String, SdkBytes> mapAttr1)270         public void setMapAttr1(Map<String, SdkBytes> mapAttr1) {
271             this.mapAttr1 = mapAttr1;
272         }
273 
getMapAttr2()274         public Map<String, List<SdkBytes>> getMapAttr2() {
275             return mapAttr2;
276         }
277 
setMapAttr2(Map<String, List<SdkBytes>> mapAttr2)278         public void setMapAttr2(Map<String, List<SdkBytes>> mapAttr2) {
279             this.mapAttr2 = mapAttr2;
280         }
281 
getMapAttr3()282         public Map<String, List<Map<String, List<SdkBytes>>>> getMapAttr3() {
283             return mapAttr3;
284         }
285 
setMapAttr3(Map<String, List<Map<String, List<SdkBytes>>>> mapAttr3)286         public void setMapAttr3(Map<String, List<Map<String, List<SdkBytes>>>> mapAttr3) {
287             this.mapAttr3 = mapAttr3;
288         }
289     }
290 
291     public static class HugeBeanFlat {
292         private String stringAttr1;
293         private String stringAttr2;
294         private String stringAttr3;
295         private String stringAttr4;
296         private String stringAttr5;
297         private String stringAttr6;
298         private String stringAttr7;
299         private String stringAttr8;
300         private String stringAttr9;
301         private String stringAttr10;
302         private String stringAttr11;
303         private String stringAttr12;
304         private String stringAttr13;
305         private String stringAttr14;
306         private String stringAttr15;
307         private String stringAttr16;
308         private String stringAttr17;
309         private String stringAttr18;
310         private String stringAttr19;
311         private String stringAttr20;
312         private String stringAttr21;
313         private String stringAttr22;
314         private String stringAttr23;
315         private String stringAttr24;
316         private String stringAttr25;
317         private String stringAttr26;
318         private String stringAttr27;
319         private String stringAttr28;
320         private String stringAttr29;
321         private String stringAttr30;
322         private String stringAttr31;
323         private String stringAttr32;
324         private String stringAttr33;
325         private String stringAttr34;
326         private String stringAttr35;
327         private String stringAttr36;
328         private String stringAttr37;
329         private String stringAttr38;
330         private String stringAttr39;
331         private String stringAttr40;
332         private String stringAttr41;
333         private String stringAttr42;
334         private String stringAttr43;
335         private String stringAttr44;
336         private String stringAttr45;
337         private String stringAttr46;
338         private String stringAttr47;
339         private String stringAttr48;
340         private String stringAttr49;
341         private String stringAttr50;
342         private String stringAttr51;
343         private String stringAttr52;
344         private String stringAttr53;
345         private String stringAttr54;
346         private String stringAttr55;
347         private String stringAttr56;
348         private String stringAttr57;
349         private String stringAttr58;
350         private String stringAttr59;
351         private String stringAttr60;
352         private String stringAttr61;
353         private String stringAttr62;
354         private String stringAttr63;
355 
getStringAttr1()356         public String getStringAttr1() {
357             return stringAttr1;
358         }
359 
setStringAttr1(String stringAttr1)360         public void setStringAttr1(String stringAttr1) {
361             this.stringAttr1 = stringAttr1;
362         }
363 
getStringAttr2()364         public String getStringAttr2() {
365             return stringAttr2;
366         }
367 
setStringAttr2(String stringAttr2)368         public void setStringAttr2(String stringAttr2) {
369             this.stringAttr2 = stringAttr2;
370         }
371 
getStringAttr3()372         public String getStringAttr3() {
373             return stringAttr3;
374         }
375 
setStringAttr3(String stringAttr3)376         public void setStringAttr3(String stringAttr3) {
377             this.stringAttr3 = stringAttr3;
378         }
379 
getStringAttr4()380         public String getStringAttr4() {
381             return stringAttr4;
382         }
383 
setStringAttr4(String stringAttr4)384         public void setStringAttr4(String stringAttr4) {
385             this.stringAttr4 = stringAttr4;
386         }
387 
getStringAttr5()388         public String getStringAttr5() {
389             return stringAttr5;
390         }
391 
setStringAttr5(String stringAttr5)392         public void setStringAttr5(String stringAttr5) {
393             this.stringAttr5 = stringAttr5;
394         }
395 
getStringAttr6()396         public String getStringAttr6() {
397             return stringAttr6;
398         }
399 
setStringAttr6(String stringAttr6)400         public void setStringAttr6(String stringAttr6) {
401             this.stringAttr6 = stringAttr6;
402         }
403 
getStringAttr7()404         public String getStringAttr7() {
405             return stringAttr7;
406         }
407 
setStringAttr7(String stringAttr7)408         public void setStringAttr7(String stringAttr7) {
409             this.stringAttr7 = stringAttr7;
410         }
411 
getStringAttr8()412         public String getStringAttr8() {
413             return stringAttr8;
414         }
415 
setStringAttr8(String stringAttr8)416         public void setStringAttr8(String stringAttr8) {
417             this.stringAttr8 = stringAttr8;
418         }
419 
getStringAttr9()420         public String getStringAttr9() {
421             return stringAttr9;
422         }
423 
setStringAttr9(String stringAttr9)424         public void setStringAttr9(String stringAttr9) {
425             this.stringAttr9 = stringAttr9;
426         }
427 
getStringAttr10()428         public String getStringAttr10() {
429             return stringAttr10;
430         }
431 
setStringAttr10(String stringAttr10)432         public void setStringAttr10(String stringAttr10) {
433             this.stringAttr10 = stringAttr10;
434         }
435 
getStringAttr11()436         public String getStringAttr11() {
437             return stringAttr11;
438         }
439 
setStringAttr11(String stringAttr11)440         public void setStringAttr11(String stringAttr11) {
441             this.stringAttr11 = stringAttr11;
442         }
443 
getStringAttr12()444         public String getStringAttr12() {
445             return stringAttr12;
446         }
447 
setStringAttr12(String stringAttr12)448         public void setStringAttr12(String stringAttr12) {
449             this.stringAttr12 = stringAttr12;
450         }
451 
getStringAttr13()452         public String getStringAttr13() {
453             return stringAttr13;
454         }
455 
setStringAttr13(String stringAttr13)456         public void setStringAttr13(String stringAttr13) {
457             this.stringAttr13 = stringAttr13;
458         }
459 
getStringAttr14()460         public String getStringAttr14() {
461             return stringAttr14;
462         }
463 
setStringAttr14(String stringAttr14)464         public void setStringAttr14(String stringAttr14) {
465             this.stringAttr14 = stringAttr14;
466         }
467 
getStringAttr15()468         public String getStringAttr15() {
469             return stringAttr15;
470         }
471 
setStringAttr15(String stringAttr15)472         public void setStringAttr15(String stringAttr15) {
473             this.stringAttr15 = stringAttr15;
474         }
475 
getStringAttr16()476         public String getStringAttr16() {
477             return stringAttr16;
478         }
479 
setStringAttr16(String stringAttr16)480         public void setStringAttr16(String stringAttr16) {
481             this.stringAttr16 = stringAttr16;
482         }
483 
getStringAttr17()484         public String getStringAttr17() {
485             return stringAttr17;
486         }
487 
setStringAttr17(String stringAttr17)488         public void setStringAttr17(String stringAttr17) {
489             this.stringAttr17 = stringAttr17;
490         }
491 
getStringAttr18()492         public String getStringAttr18() {
493             return stringAttr18;
494         }
495 
setStringAttr18(String stringAttr18)496         public void setStringAttr18(String stringAttr18) {
497             this.stringAttr18 = stringAttr18;
498         }
499 
getStringAttr19()500         public String getStringAttr19() {
501             return stringAttr19;
502         }
503 
setStringAttr19(String stringAttr19)504         public void setStringAttr19(String stringAttr19) {
505             this.stringAttr19 = stringAttr19;
506         }
507 
getStringAttr20()508         public String getStringAttr20() {
509             return stringAttr20;
510         }
511 
setStringAttr20(String stringAttr20)512         public void setStringAttr20(String stringAttr20) {
513             this.stringAttr20 = stringAttr20;
514         }
515 
getStringAttr21()516         public String getStringAttr21() {
517             return stringAttr21;
518         }
519 
setStringAttr21(String stringAttr21)520         public void setStringAttr21(String stringAttr21) {
521             this.stringAttr21 = stringAttr21;
522         }
523 
getStringAttr22()524         public String getStringAttr22() {
525             return stringAttr22;
526         }
527 
setStringAttr22(String stringAttr22)528         public void setStringAttr22(String stringAttr22) {
529             this.stringAttr22 = stringAttr22;
530         }
531 
getStringAttr23()532         public String getStringAttr23() {
533             return stringAttr23;
534         }
535 
setStringAttr23(String stringAttr23)536         public void setStringAttr23(String stringAttr23) {
537             this.stringAttr23 = stringAttr23;
538         }
539 
getStringAttr24()540         public String getStringAttr24() {
541             return stringAttr24;
542         }
543 
setStringAttr24(String stringAttr24)544         public void setStringAttr24(String stringAttr24) {
545             this.stringAttr24 = stringAttr24;
546         }
547 
getStringAttr25()548         public String getStringAttr25() {
549             return stringAttr25;
550         }
551 
setStringAttr25(String stringAttr25)552         public void setStringAttr25(String stringAttr25) {
553             this.stringAttr25 = stringAttr25;
554         }
555 
getStringAttr26()556         public String getStringAttr26() {
557             return stringAttr26;
558         }
559 
setStringAttr26(String stringAttr26)560         public void setStringAttr26(String stringAttr26) {
561             this.stringAttr26 = stringAttr26;
562         }
563 
getStringAttr27()564         public String getStringAttr27() {
565             return stringAttr27;
566         }
567 
setStringAttr27(String stringAttr27)568         public void setStringAttr27(String stringAttr27) {
569             this.stringAttr27 = stringAttr27;
570         }
571 
getStringAttr28()572         public String getStringAttr28() {
573             return stringAttr28;
574         }
575 
setStringAttr28(String stringAttr28)576         public void setStringAttr28(String stringAttr28) {
577             this.stringAttr28 = stringAttr28;
578         }
579 
getStringAttr29()580         public String getStringAttr29() {
581             return stringAttr29;
582         }
583 
setStringAttr29(String stringAttr29)584         public void setStringAttr29(String stringAttr29) {
585             this.stringAttr29 = stringAttr29;
586         }
587 
getStringAttr30()588         public String getStringAttr30() {
589             return stringAttr30;
590         }
591 
setStringAttr30(String stringAttr30)592         public void setStringAttr30(String stringAttr30) {
593             this.stringAttr30 = stringAttr30;
594         }
595 
getStringAttr31()596         public String getStringAttr31() {
597             return stringAttr31;
598         }
599 
setStringAttr31(String stringAttr31)600         public void setStringAttr31(String stringAttr31) {
601             this.stringAttr31 = stringAttr31;
602         }
603 
getStringAttr32()604         public String getStringAttr32() {
605             return stringAttr32;
606         }
607 
setStringAttr32(String stringAttr32)608         public void setStringAttr32(String stringAttr32) {
609             this.stringAttr32 = stringAttr32;
610         }
611 
getStringAttr33()612         public String getStringAttr33() {
613             return stringAttr33;
614         }
615 
setStringAttr33(String stringAttr33)616         public void setStringAttr33(String stringAttr33) {
617             this.stringAttr33 = stringAttr33;
618         }
619 
getStringAttr34()620         public String getStringAttr34() {
621             return stringAttr34;
622         }
623 
setStringAttr34(String stringAttr34)624         public void setStringAttr34(String stringAttr34) {
625             this.stringAttr34 = stringAttr34;
626         }
627 
getStringAttr35()628         public String getStringAttr35() {
629             return stringAttr35;
630         }
631 
setStringAttr35(String stringAttr35)632         public void setStringAttr35(String stringAttr35) {
633             this.stringAttr35 = stringAttr35;
634         }
635 
getStringAttr36()636         public String getStringAttr36() {
637             return stringAttr36;
638         }
639 
setStringAttr36(String stringAttr36)640         public void setStringAttr36(String stringAttr36) {
641             this.stringAttr36 = stringAttr36;
642         }
643 
getStringAttr37()644         public String getStringAttr37() {
645             return stringAttr37;
646         }
647 
setStringAttr37(String stringAttr37)648         public void setStringAttr37(String stringAttr37) {
649             this.stringAttr37 = stringAttr37;
650         }
651 
getStringAttr38()652         public String getStringAttr38() {
653             return stringAttr38;
654         }
655 
setStringAttr38(String stringAttr38)656         public void setStringAttr38(String stringAttr38) {
657             this.stringAttr38 = stringAttr38;
658         }
659 
getStringAttr39()660         public String getStringAttr39() {
661             return stringAttr39;
662         }
663 
setStringAttr39(String stringAttr39)664         public void setStringAttr39(String stringAttr39) {
665             this.stringAttr39 = stringAttr39;
666         }
667 
getStringAttr40()668         public String getStringAttr40() {
669             return stringAttr40;
670         }
671 
setStringAttr40(String stringAttr40)672         public void setStringAttr40(String stringAttr40) {
673             this.stringAttr40 = stringAttr40;
674         }
675 
getStringAttr41()676         public String getStringAttr41() {
677             return stringAttr41;
678         }
679 
setStringAttr41(String stringAttr41)680         public void setStringAttr41(String stringAttr41) {
681             this.stringAttr41 = stringAttr41;
682         }
683 
getStringAttr42()684         public String getStringAttr42() {
685             return stringAttr42;
686         }
687 
setStringAttr42(String stringAttr42)688         public void setStringAttr42(String stringAttr42) {
689             this.stringAttr42 = stringAttr42;
690         }
691 
getStringAttr43()692         public String getStringAttr43() {
693             return stringAttr43;
694         }
695 
setStringAttr43(String stringAttr43)696         public void setStringAttr43(String stringAttr43) {
697             this.stringAttr43 = stringAttr43;
698         }
699 
getStringAttr44()700         public String getStringAttr44() {
701             return stringAttr44;
702         }
703 
setStringAttr44(String stringAttr44)704         public void setStringAttr44(String stringAttr44) {
705             this.stringAttr44 = stringAttr44;
706         }
707 
getStringAttr45()708         public String getStringAttr45() {
709             return stringAttr45;
710         }
711 
setStringAttr45(String stringAttr45)712         public void setStringAttr45(String stringAttr45) {
713             this.stringAttr45 = stringAttr45;
714         }
715 
getStringAttr46()716         public String getStringAttr46() {
717             return stringAttr46;
718         }
719 
setStringAttr46(String stringAttr46)720         public void setStringAttr46(String stringAttr46) {
721             this.stringAttr46 = stringAttr46;
722         }
723 
getStringAttr47()724         public String getStringAttr47() {
725             return stringAttr47;
726         }
727 
setStringAttr47(String stringAttr47)728         public void setStringAttr47(String stringAttr47) {
729             this.stringAttr47 = stringAttr47;
730         }
731 
getStringAttr48()732         public String getStringAttr48() {
733             return stringAttr48;
734         }
735 
setStringAttr48(String stringAttr48)736         public void setStringAttr48(String stringAttr48) {
737             this.stringAttr48 = stringAttr48;
738         }
739 
getStringAttr49()740         public String getStringAttr49() {
741             return stringAttr49;
742         }
743 
setStringAttr49(String stringAttr49)744         public void setStringAttr49(String stringAttr49) {
745             this.stringAttr49 = stringAttr49;
746         }
747 
getStringAttr50()748         public String getStringAttr50() {
749             return stringAttr50;
750         }
751 
setStringAttr50(String stringAttr50)752         public void setStringAttr50(String stringAttr50) {
753             this.stringAttr50 = stringAttr50;
754         }
755 
getStringAttr51()756         public String getStringAttr51() {
757             return stringAttr51;
758         }
759 
setStringAttr51(String stringAttr51)760         public void setStringAttr51(String stringAttr51) {
761             this.stringAttr51 = stringAttr51;
762         }
763 
getStringAttr52()764         public String getStringAttr52() {
765             return stringAttr52;
766         }
767 
setStringAttr52(String stringAttr52)768         public void setStringAttr52(String stringAttr52) {
769             this.stringAttr52 = stringAttr52;
770         }
771 
getStringAttr53()772         public String getStringAttr53() {
773             return stringAttr53;
774         }
775 
setStringAttr53(String stringAttr53)776         public void setStringAttr53(String stringAttr53) {
777             this.stringAttr53 = stringAttr53;
778         }
779 
getStringAttr54()780         public String getStringAttr54() {
781             return stringAttr54;
782         }
783 
setStringAttr54(String stringAttr54)784         public void setStringAttr54(String stringAttr54) {
785             this.stringAttr54 = stringAttr54;
786         }
787 
getStringAttr55()788         public String getStringAttr55() {
789             return stringAttr55;
790         }
791 
setStringAttr55(String stringAttr55)792         public void setStringAttr55(String stringAttr55) {
793             this.stringAttr55 = stringAttr55;
794         }
795 
getStringAttr56()796         public String getStringAttr56() {
797             return stringAttr56;
798         }
799 
setStringAttr56(String stringAttr56)800         public void setStringAttr56(String stringAttr56) {
801             this.stringAttr56 = stringAttr56;
802         }
803 
getStringAttr57()804         public String getStringAttr57() {
805             return stringAttr57;
806         }
807 
setStringAttr57(String stringAttr57)808         public void setStringAttr57(String stringAttr57) {
809             this.stringAttr57 = stringAttr57;
810         }
811 
getStringAttr58()812         public String getStringAttr58() {
813             return stringAttr58;
814         }
815 
setStringAttr58(String stringAttr58)816         public void setStringAttr58(String stringAttr58) {
817             this.stringAttr58 = stringAttr58;
818         }
819 
getStringAttr59()820         public String getStringAttr59() {
821             return stringAttr59;
822         }
823 
setStringAttr59(String stringAttr59)824         public void setStringAttr59(String stringAttr59) {
825             this.stringAttr59 = stringAttr59;
826         }
827 
getStringAttr60()828         public String getStringAttr60() {
829             return stringAttr60;
830         }
831 
setStringAttr60(String stringAttr60)832         public void setStringAttr60(String stringAttr60) {
833             this.stringAttr60 = stringAttr60;
834         }
835 
getStringAttr61()836         public String getStringAttr61() {
837             return stringAttr61;
838         }
839 
setStringAttr61(String stringAttr61)840         public void setStringAttr61(String stringAttr61) {
841             this.stringAttr61 = stringAttr61;
842         }
843 
getStringAttr62()844         public String getStringAttr62() {
845             return stringAttr62;
846         }
847 
setStringAttr62(String stringAttr62)848         public void setStringAttr62(String stringAttr62) {
849             this.stringAttr62 = stringAttr62;
850         }
851 
getStringAttr63()852         public String getStringAttr63() {
853             return stringAttr63;
854         }
855 
setStringAttr63(String stringAttr63)856         public void setStringAttr63(String stringAttr63) {
857             this.stringAttr63 = stringAttr63;
858         }
859     }
860 }
861