1 /*
2  * Copyright (C) 2022 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  */
16 
17 package android.adservices.ondevicepersonalization;
18 
19 import android.annotation.NonNull;
20 import android.annotation.Nullable;
21 import android.os.Parcelable;
22 
23 import com.android.ondevicepersonalization.internal.util.AnnotationValidations;
24 import com.android.ondevicepersonalization.internal.util.DataClass;
25 
26 import java.util.Collections;
27 import java.util.List;
28 
29 /**
30  * Parcelable version of {@link WebTriggerOutput}.
31  * @hide
32  */
33 @DataClass(genAidl = false, genBuilder = false)
34 public final class WebTriggerOutputParcel implements Parcelable {
35     /**
36      * Persistent data to be written to the REQUESTS table after
37      * {@link IsolatedWorker#onWebTrigger(WebTriggerInput, android.os.OutcomeReceiver)}
38      * completes. If null, no persistent data will be written.
39      */
40     @Nullable private RequestLogRecord mRequestLogRecord = null;
41 
42     /**
43      * A list of {@link EventLogRecord}. Writes events to the EVENTS table and associates
44      * them with requests with the specified corresponding {@link RequestLogRecord} from
45      * {@link EventLogRecord#getRequestLogRecord()}.
46      * If the event does not contain a {@link RequestLogRecord} that was previously written
47      * by this service, the {@link EventLogRecord} is not written.
48      *
49      */
50     @DataClass.PluralOf("eventLogRecord")
51     @NonNull private List<EventLogRecord> mEventLogRecords = Collections.emptyList();
52 
53     /** @hide */
WebTriggerOutputParcel(@onNull WebTriggerOutput value)54     public WebTriggerOutputParcel(@NonNull WebTriggerOutput value) {
55         this(value.getRequestLogRecord(), value.getEventLogRecords());
56     }
57 
58 
59 
60     // Code below generated by codegen v1.0.23.
61     //
62     // DO NOT MODIFY!
63     // CHECKSTYLE:OFF Generated code
64     //
65     // To regenerate run:
66     // $ codegen $ANDROID_BUILD_TOP/packages/modules/OnDevicePersonalization/framework/java/android/adservices/ondevicepersonalization/WebTriggerOutputParcel.java
67     //
68     // To exclude the generated code from IntelliJ auto-formatting enable (one-time):
69     //   Settings > Editor > Code Style > Formatter Control
70     //@formatter:off
71 
72 
73     /**
74      * Creates a new WebTriggerOutputParcel.
75      *
76      * @param requestLogRecord
77      *   Persistent data to be written to the REQUESTS table after
78      *   {@link IsolatedWorker#onWebTrigger(WebTriggerInput, android.os.OutcomeReceiver)}
79      *   completes. If null, no persistent data will be written.
80      * @param eventLogRecords
81      *   A list of {@link EventLogRecord}. Writes events to the EVENTS table and associates
82      *   them with requests with the specified corresponding {@link RequestLogRecord} from
83      *   {@link EventLogRecord#getRequestLogRecord()}.
84      *   If the event does not contain a {@link RequestLogRecord} that was previously written
85      *   by this service, the {@link EventLogRecord} is not written.
86      */
87     @DataClass.Generated.Member
WebTriggerOutputParcel( @ullable RequestLogRecord requestLogRecord, @NonNull List<EventLogRecord> eventLogRecords)88     public WebTriggerOutputParcel(
89             @Nullable RequestLogRecord requestLogRecord,
90             @NonNull List<EventLogRecord> eventLogRecords) {
91         this.mRequestLogRecord = requestLogRecord;
92         this.mEventLogRecords = eventLogRecords;
93         AnnotationValidations.validate(
94                 NonNull.class, null, mEventLogRecords);
95 
96         // onConstructed(); // You can define this method to get a callback
97     }
98 
99     /**
100      * Persistent data to be written to the REQUESTS table after
101      * {@link IsolatedWorker#onWebTrigger(WebTriggerInput, android.os.OutcomeReceiver)}
102      * completes. If null, no persistent data will be written.
103      */
104     @DataClass.Generated.Member
getRequestLogRecord()105     public @Nullable RequestLogRecord getRequestLogRecord() {
106         return mRequestLogRecord;
107     }
108 
109     /**
110      * A list of {@link EventLogRecord}. Writes events to the EVENTS table and associates
111      * them with requests with the specified corresponding {@link RequestLogRecord} from
112      * {@link EventLogRecord#getRequestLogRecord()}.
113      * If the event does not contain a {@link RequestLogRecord} that was previously written
114      * by this service, the {@link EventLogRecord} is not written.
115      */
116     @DataClass.Generated.Member
getEventLogRecords()117     public @NonNull List<EventLogRecord> getEventLogRecords() {
118         return mEventLogRecords;
119     }
120 
121     @Override
122     @DataClass.Generated.Member
writeToParcel(@onNull android.os.Parcel dest, int flags)123     public void writeToParcel(@NonNull android.os.Parcel dest, int flags) {
124         // You can override field parcelling by defining methods like:
125         // void parcelFieldName(Parcel dest, int flags) { ... }
126 
127         byte flg = 0;
128         if (mRequestLogRecord != null) flg |= 0x1;
129         dest.writeByte(flg);
130         if (mRequestLogRecord != null) dest.writeTypedObject(mRequestLogRecord, flags);
131         dest.writeParcelableList(mEventLogRecords, flags);
132     }
133 
134     @Override
135     @DataClass.Generated.Member
describeContents()136     public int describeContents() { return 0; }
137 
138     /** @hide */
139     @SuppressWarnings({"unchecked", "RedundantCast"})
140     @DataClass.Generated.Member
WebTriggerOutputParcel(@onNull android.os.Parcel in)141     /* package-private */ WebTriggerOutputParcel(@NonNull android.os.Parcel in) {
142         // You can override field unparcelling by defining methods like:
143         // static FieldType unparcelFieldName(Parcel in) { ... }
144 
145         byte flg = in.readByte();
146         RequestLogRecord requestLogRecord = (flg & 0x1) == 0 ? null : (RequestLogRecord) in.readTypedObject(RequestLogRecord.CREATOR);
147         List<EventLogRecord> eventLogRecords = new java.util.ArrayList<>();
148         in.readParcelableList(eventLogRecords, EventLogRecord.class.getClassLoader());
149 
150         this.mRequestLogRecord = requestLogRecord;
151         this.mEventLogRecords = eventLogRecords;
152         AnnotationValidations.validate(
153                 NonNull.class, null, mEventLogRecords);
154 
155         // onConstructed(); // You can define this method to get a callback
156     }
157 
158     @DataClass.Generated.Member
159     public static final @NonNull Parcelable.Creator<WebTriggerOutputParcel> CREATOR
160             = new Parcelable.Creator<WebTriggerOutputParcel>() {
161         @Override
162         public WebTriggerOutputParcel[] newArray(int size) {
163             return new WebTriggerOutputParcel[size];
164         }
165 
166         @Override
167         public WebTriggerOutputParcel createFromParcel(@NonNull android.os.Parcel in) {
168             return new WebTriggerOutputParcel(in);
169         }
170     };
171 
172     @DataClass.Generated(
173             time = 1704482141383L,
174             codegenVersion = "1.0.23",
175             sourceFile = "packages/modules/OnDevicePersonalization/framework/java/android/adservices/ondevicepersonalization/WebTriggerOutputParcel.java",
176             inputSignatures = "private @android.annotation.Nullable android.adservices.ondevicepersonalization.RequestLogRecord mRequestLogRecord\nprivate @com.android.ondevicepersonalization.internal.util.DataClass.PluralOf(\"eventLogRecord\") @android.annotation.NonNull java.util.List<android.adservices.ondevicepersonalization.EventLogRecord> mEventLogRecords\nclass WebTriggerOutputParcel extends java.lang.Object implements [android.os.Parcelable]\n@com.android.ondevicepersonalization.internal.util.DataClass(genAidl=false, genBuilder=false)")
177     @Deprecated
__metadata()178     private void __metadata() {}
179 
180 
181     //@formatter:on
182     // End of generated code
183 
184 }
185