blob: 112d3df0228040431b47cca00d31e3b16b325ae0 [file] [log] [blame]
Eugene Susla20b6e642019-09-30 15:15:19 -07001/*
2 * Copyright (C) 2019 The Android Open Source Project
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 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package com.android.codegentest;
17
18import android.annotation.NonNull;
Eugene Suslaf821caa2019-10-04 14:51:29 -070019import android.annotation.Nullable;
Eugene Susla20b6e642019-09-30 15:15:19 -070020import android.os.Parcel;
21import android.os.Parcelable;
Eugene Suslac5c636a2019-10-22 10:37:26 -070022import android.util.ArrayMap;
Eugene Susla20b6e642019-09-30 15:15:19 -070023import android.util.SparseArray;
24import android.util.SparseIntArray;
25
26import com.android.internal.util.AnnotationValidations;
27import com.android.internal.util.DataClass;
28
29import java.util.List;
30import java.util.Map;
31
32/**
33 * Additional test for various parcelling corner-cases.
34 */
35@DataClass(
36 genBuilder = true,
37 genAidl = false,
38 genToString = true)
39public class ParcelAllTheThingsDataClass implements Parcelable {
40
41 @NonNull String[] mStringArray = null;
42 @NonNull int[] mIntArray = null;
43 @NonNull List<String> mStringList = null;
44
45 @NonNull Map<String, SampleWithCustomBuilder> mMap = null;
46 @NonNull Map<String, String> mStringMap = null;
47
48 @NonNull SparseArray<SampleWithCustomBuilder> mSparseArray = null;
49 @NonNull SparseIntArray mSparseIntArray = null;
50
Eugene Suslaf821caa2019-10-04 14:51:29 -070051 @SuppressWarnings({"WeakerAccess"})
52 @Nullable Boolean mNullableBoolean = null;
Eugene Susla20b6e642019-09-30 15:15:19 -070053
54
Eugene Suslaf821caa2019-10-04 14:51:29 -070055
Eugene Suslac5c636a2019-10-22 10:37:26 -070056
57 // Code below generated by codegen v1.0.13.
Eugene Susla20b6e642019-09-30 15:15:19 -070058 //
59 // DO NOT MODIFY!
60 // CHECKSTYLE:OFF Generated code
61 //
62 // To regenerate run:
63 // $ codegen $ANDROID_BUILD_TOP/frameworks/base/tests/Codegen/src/com/android/codegentest/ParcelAllTheThingsDataClass.java
Eugene Suslaf821caa2019-10-04 14:51:29 -070064 //
65 // To exclude the generated code from IntelliJ auto-formatting enable (one-time):
66 // Settings > Editor > Code Style > Formatter Control
67 //@formatter:off
Eugene Susla20b6e642019-09-30 15:15:19 -070068
69
70 @DataClass.Generated.Member
71 /* package-private */ ParcelAllTheThingsDataClass(
72 @NonNull String[] stringArray,
73 @NonNull int[] intArray,
74 @NonNull List<String> stringList,
75 @NonNull Map<String,SampleWithCustomBuilder> map,
76 @NonNull Map<String,String> stringMap,
77 @NonNull SparseArray<SampleWithCustomBuilder> sparseArray,
Eugene Suslaf821caa2019-10-04 14:51:29 -070078 @NonNull SparseIntArray sparseIntArray,
79 @SuppressWarnings({ "WeakerAccess" }) @Nullable Boolean nullableBoolean) {
Eugene Susla20b6e642019-09-30 15:15:19 -070080 this.mStringArray = stringArray;
81 AnnotationValidations.validate(
82 NonNull.class, null, mStringArray);
83 this.mIntArray = intArray;
84 AnnotationValidations.validate(
85 NonNull.class, null, mIntArray);
86 this.mStringList = stringList;
87 AnnotationValidations.validate(
88 NonNull.class, null, mStringList);
89 this.mMap = map;
90 AnnotationValidations.validate(
91 NonNull.class, null, mMap);
92 this.mStringMap = stringMap;
93 AnnotationValidations.validate(
94 NonNull.class, null, mStringMap);
95 this.mSparseArray = sparseArray;
96 AnnotationValidations.validate(
97 NonNull.class, null, mSparseArray);
98 this.mSparseIntArray = sparseIntArray;
99 AnnotationValidations.validate(
100 NonNull.class, null, mSparseIntArray);
Eugene Suslaf821caa2019-10-04 14:51:29 -0700101 this.mNullableBoolean = nullableBoolean;
Eugene Susla20b6e642019-09-30 15:15:19 -0700102
103 // onConstructed(); // You can define this method to get a callback
104 }
105
106 @DataClass.Generated.Member
107 public @NonNull String[] getStringArray() {
108 return mStringArray;
109 }
110
111 @DataClass.Generated.Member
112 public @NonNull int[] getIntArray() {
113 return mIntArray;
114 }
115
116 @DataClass.Generated.Member
117 public @NonNull List<String> getStringList() {
118 return mStringList;
119 }
120
121 @DataClass.Generated.Member
122 public @NonNull Map<String,SampleWithCustomBuilder> getMap() {
123 return mMap;
124 }
125
126 @DataClass.Generated.Member
127 public @NonNull Map<String,String> getStringMap() {
128 return mStringMap;
129 }
130
131 @DataClass.Generated.Member
132 public @NonNull SparseArray<SampleWithCustomBuilder> getSparseArray() {
133 return mSparseArray;
134 }
135
136 @DataClass.Generated.Member
137 public @NonNull SparseIntArray getSparseIntArray() {
138 return mSparseIntArray;
139 }
140
Eugene Suslaf821caa2019-10-04 14:51:29 -0700141 @DataClass.Generated.Member
142 public @SuppressWarnings({ "WeakerAccess" }) @Nullable Boolean getNullableBoolean() {
143 return mNullableBoolean;
144 }
145
Eugene Susla20b6e642019-09-30 15:15:19 -0700146 @Override
147 @DataClass.Generated.Member
148 public String toString() {
149 // You can override field toString logic by defining methods like:
150 // String fieldNameToString() { ... }
151
152 return "ParcelAllTheThingsDataClass { " +
153 "stringArray = " + java.util.Arrays.toString(mStringArray) + ", " +
154 "intArray = " + java.util.Arrays.toString(mIntArray) + ", " +
155 "stringList = " + mStringList + ", " +
156 "map = " + mMap + ", " +
157 "stringMap = " + mStringMap + ", " +
158 "sparseArray = " + mSparseArray + ", " +
Eugene Suslaf821caa2019-10-04 14:51:29 -0700159 "sparseIntArray = " + mSparseIntArray + ", " +
160 "nullableBoolean = " + mNullableBoolean +
Eugene Susla20b6e642019-09-30 15:15:19 -0700161 " }";
162 }
163
164 @Override
165 @DataClass.Generated.Member
Eugene Susla1bfb5e72019-10-16 10:12:47 -0700166 public void writeToParcel(@NonNull Parcel dest, int flags) {
Eugene Susla20b6e642019-09-30 15:15:19 -0700167 // You can override field parcelling by defining methods like:
168 // void parcelFieldName(Parcel dest, int flags) { ... }
169
Eugene Suslaf821caa2019-10-04 14:51:29 -0700170 int flg = 0;
171 if (mNullableBoolean != null) flg |= 0x80;
172 dest.writeInt(flg);
Eugene Susla20b6e642019-09-30 15:15:19 -0700173 dest.writeStringArray(mStringArray);
174 dest.writeIntArray(mIntArray);
175 dest.writeStringList(mStringList);
176 dest.writeMap(mMap);
177 dest.writeMap(mStringMap);
178 dest.writeSparseArray(mSparseArray);
179 dest.writeSparseIntArray(mSparseIntArray);
Eugene Suslaf821caa2019-10-04 14:51:29 -0700180 if (mNullableBoolean != null) dest.writeBoolean(mNullableBoolean);
Eugene Susla20b6e642019-09-30 15:15:19 -0700181 }
182
183 @Override
184 @DataClass.Generated.Member
185 public int describeContents() { return 0; }
186
Eugene Susla8cb1a412019-10-03 17:22:44 -0700187 /** @hide */
188 @SuppressWarnings({"unchecked", "RedundantCast"})
189 @DataClass.Generated.Member
Eugene Susla1bfb5e72019-10-16 10:12:47 -0700190 protected ParcelAllTheThingsDataClass(@NonNull Parcel in) {
Eugene Susla8cb1a412019-10-03 17:22:44 -0700191 // You can override field unparcelling by defining methods like:
192 // static FieldType unparcelFieldName(Parcel in) { ... }
193
Eugene Suslaf821caa2019-10-04 14:51:29 -0700194 int flg = in.readInt();
Eugene Susla8cb1a412019-10-03 17:22:44 -0700195 String[] stringArray = in.createStringArray();
196 int[] intArray = in.createIntArray();
197 List<String> stringList = new java.util.ArrayList<>();
198 in.readStringList(stringList);
199 Map<String,SampleWithCustomBuilder> map = new java.util.LinkedHashMap<>();
200 in.readMap(map, SampleWithCustomBuilder.class.getClassLoader());
201 Map<String,String> stringMap = new java.util.LinkedHashMap<>();
202 in.readMap(stringMap, String.class.getClassLoader());
203 SparseArray<SampleWithCustomBuilder> sparseArray = (SparseArray) in.readSparseArray(SampleWithCustomBuilder.class.getClassLoader());
204 SparseIntArray sparseIntArray = (SparseIntArray) in.readSparseIntArray();
Eugene Suslaf821caa2019-10-04 14:51:29 -0700205 Boolean nullableBoolean = (flg & 0x80) == 0 ? null : (Boolean) in.readBoolean();
Eugene Susla8cb1a412019-10-03 17:22:44 -0700206
207 this.mStringArray = stringArray;
208 AnnotationValidations.validate(
209 NonNull.class, null, mStringArray);
210 this.mIntArray = intArray;
211 AnnotationValidations.validate(
212 NonNull.class, null, mIntArray);
213 this.mStringList = stringList;
214 AnnotationValidations.validate(
215 NonNull.class, null, mStringList);
216 this.mMap = map;
217 AnnotationValidations.validate(
218 NonNull.class, null, mMap);
219 this.mStringMap = stringMap;
220 AnnotationValidations.validate(
221 NonNull.class, null, mStringMap);
222 this.mSparseArray = sparseArray;
223 AnnotationValidations.validate(
224 NonNull.class, null, mSparseArray);
225 this.mSparseIntArray = sparseIntArray;
226 AnnotationValidations.validate(
227 NonNull.class, null, mSparseIntArray);
Eugene Suslaf821caa2019-10-04 14:51:29 -0700228 this.mNullableBoolean = nullableBoolean;
Eugene Susla8cb1a412019-10-03 17:22:44 -0700229
230 // onConstructed(); // You can define this method to get a callback
231 }
232
Eugene Susla20b6e642019-09-30 15:15:19 -0700233 @DataClass.Generated.Member
234 public static final @NonNull Parcelable.Creator<ParcelAllTheThingsDataClass> CREATOR
235 = new Parcelable.Creator<ParcelAllTheThingsDataClass>() {
236 @Override
237 public ParcelAllTheThingsDataClass[] newArray(int size) {
238 return new ParcelAllTheThingsDataClass[size];
239 }
240
241 @Override
Eugene Susla1bfb5e72019-10-16 10:12:47 -0700242 public ParcelAllTheThingsDataClass createFromParcel(@NonNull Parcel in) {
Eugene Susla8cb1a412019-10-03 17:22:44 -0700243 return new ParcelAllTheThingsDataClass(in);
Eugene Susla20b6e642019-09-30 15:15:19 -0700244 }
245 };
246
247 /**
248 * A builder for {@link ParcelAllTheThingsDataClass}
249 */
250 @SuppressWarnings("WeakerAccess")
251 @DataClass.Generated.Member
252 public static class Builder {
253
254 private @NonNull String[] mStringArray;
255 private @NonNull int[] mIntArray;
256 private @NonNull List<String> mStringList;
257 private @NonNull Map<String,SampleWithCustomBuilder> mMap;
258 private @NonNull Map<String,String> mStringMap;
259 private @NonNull SparseArray<SampleWithCustomBuilder> mSparseArray;
260 private @NonNull SparseIntArray mSparseIntArray;
Eugene Suslaf821caa2019-10-04 14:51:29 -0700261 private @SuppressWarnings({ "WeakerAccess" }) @Nullable Boolean mNullableBoolean;
Eugene Susla20b6e642019-09-30 15:15:19 -0700262
263 private long mBuilderFieldsSet = 0L;
264
265 public Builder() {
266 }
267
268 @DataClass.Generated.Member
269 public @NonNull Builder setStringArray(@NonNull String... value) {
270 checkNotUsed();
271 mBuilderFieldsSet |= 0x1;
272 mStringArray = value;
273 return this;
274 }
275
276 @DataClass.Generated.Member
277 public @NonNull Builder setIntArray(@NonNull int... value) {
278 checkNotUsed();
279 mBuilderFieldsSet |= 0x2;
280 mIntArray = value;
281 return this;
282 }
283
284 @DataClass.Generated.Member
285 public @NonNull Builder setStringList(@NonNull List<String> value) {
286 checkNotUsed();
287 mBuilderFieldsSet |= 0x4;
288 mStringList = value;
289 return this;
290 }
291
292 /** @see #setStringList */
293 @DataClass.Generated.Member
294 public @NonNull Builder addStringList(String value) {
295 // You can refine this method's name by providing item's singular name, e.g.:
296 // @DataClass.PluralOf("item")) mItems = ...
297
298 if (mStringList == null) setStringList(new java.util.ArrayList<>());
299 mStringList.add(value);
300 return this;
301 }
302
303 @DataClass.Generated.Member
304 public @NonNull Builder setMap(@NonNull Map<String,SampleWithCustomBuilder> value) {
305 checkNotUsed();
306 mBuilderFieldsSet |= 0x8;
307 mMap = value;
308 return this;
309 }
310
311 /** @see #setMap */
312 @DataClass.Generated.Member
313 public @NonNull Builder addMap(String key, SampleWithCustomBuilder value) {
314 // You can refine this method's name by providing item's singular name, e.g.:
315 // @DataClass.PluralOf("item")) mItems = ...
316
317 if (mMap == null) setMap(new java.util.LinkedHashMap());
318 mMap.put(key, value);
319 return this;
320 }
321
322 @DataClass.Generated.Member
323 public @NonNull Builder setStringMap(@NonNull Map<String,String> value) {
324 checkNotUsed();
325 mBuilderFieldsSet |= 0x10;
326 mStringMap = value;
327 return this;
328 }
329
330 /** @see #setStringMap */
331 @DataClass.Generated.Member
332 public @NonNull Builder addStringMap(String key, String value) {
333 // You can refine this method's name by providing item's singular name, e.g.:
334 // @DataClass.PluralOf("item")) mItems = ...
335
336 if (mStringMap == null) setStringMap(new java.util.LinkedHashMap());
337 mStringMap.put(key, value);
338 return this;
339 }
340
341 @DataClass.Generated.Member
342 public @NonNull Builder setSparseArray(@NonNull SparseArray<SampleWithCustomBuilder> value) {
343 checkNotUsed();
344 mBuilderFieldsSet |= 0x20;
345 mSparseArray = value;
346 return this;
347 }
348
349 @DataClass.Generated.Member
350 public @NonNull Builder setSparseIntArray(@NonNull SparseIntArray value) {
351 checkNotUsed();
352 mBuilderFieldsSet |= 0x40;
353 mSparseIntArray = value;
354 return this;
355 }
356
Eugene Suslaf821caa2019-10-04 14:51:29 -0700357 @DataClass.Generated.Member
358 public @NonNull Builder setNullableBoolean(@SuppressWarnings({ "WeakerAccess" }) @Nullable Boolean value) {
359 checkNotUsed();
360 mBuilderFieldsSet |= 0x80;
361 mNullableBoolean = value;
362 return this;
363 }
364
Eugene Susla20b6e642019-09-30 15:15:19 -0700365 /** Builds the instance. This builder should not be touched after calling this! */
Eugene Susla322e8b12019-10-22 17:32:08 -0700366 public @NonNull ParcelAllTheThingsDataClass build() {
Eugene Susla20b6e642019-09-30 15:15:19 -0700367 checkNotUsed();
Eugene Suslaf821caa2019-10-04 14:51:29 -0700368 mBuilderFieldsSet |= 0x100; // Mark builder used
Eugene Susla20b6e642019-09-30 15:15:19 -0700369
370 if ((mBuilderFieldsSet & 0x1) == 0) {
371 mStringArray = null;
372 }
373 if ((mBuilderFieldsSet & 0x2) == 0) {
374 mIntArray = null;
375 }
376 if ((mBuilderFieldsSet & 0x4) == 0) {
377 mStringList = null;
378 }
379 if ((mBuilderFieldsSet & 0x8) == 0) {
380 mMap = null;
381 }
382 if ((mBuilderFieldsSet & 0x10) == 0) {
383 mStringMap = null;
384 }
385 if ((mBuilderFieldsSet & 0x20) == 0) {
386 mSparseArray = null;
387 }
388 if ((mBuilderFieldsSet & 0x40) == 0) {
389 mSparseIntArray = null;
390 }
Eugene Suslaf821caa2019-10-04 14:51:29 -0700391 if ((mBuilderFieldsSet & 0x80) == 0) {
392 mNullableBoolean = null;
393 }
Eugene Susla20b6e642019-09-30 15:15:19 -0700394 ParcelAllTheThingsDataClass o = new ParcelAllTheThingsDataClass(
395 mStringArray,
396 mIntArray,
397 mStringList,
398 mMap,
399 mStringMap,
400 mSparseArray,
Eugene Suslaf821caa2019-10-04 14:51:29 -0700401 mSparseIntArray,
402 mNullableBoolean);
Eugene Susla20b6e642019-09-30 15:15:19 -0700403 return o;
404 }
405
406 private void checkNotUsed() {
Eugene Suslaf821caa2019-10-04 14:51:29 -0700407 if ((mBuilderFieldsSet & 0x100) != 0) {
Eugene Susla20b6e642019-09-30 15:15:19 -0700408 throw new IllegalStateException(
409 "This Builder should not be reused. Use a new Builder instance instead");
410 }
411 }
412 }
413
414 @DataClass.Generated(
Eugene Suslac5c636a2019-10-22 10:37:26 -0700415 time = 1573006404728L,
416 codegenVersion = "1.0.13",
Eugene Susla20b6e642019-09-30 15:15:19 -0700417 sourceFile = "frameworks/base/tests/Codegen/src/com/android/codegentest/ParcelAllTheThingsDataClass.java",
Eugene Suslaf821caa2019-10-04 14:51:29 -0700418 inputSignatures = " @android.annotation.NonNull java.lang.String[] mStringArray\n @android.annotation.NonNull int[] mIntArray\n @android.annotation.NonNull java.util.List<java.lang.String> mStringList\n @android.annotation.NonNull java.util.Map<java.lang.String,com.android.codegentest.SampleWithCustomBuilder> mMap\n @android.annotation.NonNull java.util.Map<java.lang.String,java.lang.String> mStringMap\n @android.annotation.NonNull android.util.SparseArray<com.android.codegentest.SampleWithCustomBuilder> mSparseArray\n @android.annotation.NonNull android.util.SparseIntArray mSparseIntArray\n @java.lang.SuppressWarnings({\"WeakerAccess\"}) @android.annotation.Nullable java.lang.Boolean mNullableBoolean\nclass ParcelAllTheThingsDataClass extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genBuilder=true, genAidl=false, genToString=true)")
Eugene Susla20b6e642019-09-30 15:15:19 -0700419 @Deprecated
420 private void __metadata() {}
421
Eugene Susla322e8b12019-10-22 17:32:08 -0700422
423 //@formatter:on
424 // End of generated code
425
Eugene Susla20b6e642019-09-30 15:15:19 -0700426}