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 com.android.server.pm.pkg.component;
18 
19 import static com.android.server.pm.parsing.pkg.PackageImpl.sForInternedString;
20 
21 import android.annotation.NonNull;
22 import android.annotation.Nullable;
23 import android.content.ComponentName;
24 import android.os.Parcel;
25 import android.os.Parcelable;
26 import android.text.TextUtils;
27 
28 import com.android.internal.annotations.VisibleForTesting;
29 import com.android.internal.util.DataClass;
30 import com.android.internal.util.Parcelling.BuiltIn.ForInternedString;
31 
32 /** @hide */
33 @DataClass(genGetters = true, genSetters = true, genBuilder = false, genParcelable = false)
34 @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
35 public class ParsedInstrumentationImpl extends ParsedComponentImpl implements
36         ParsedInstrumentation, Parcelable {
37 
38     @Nullable
39     @DataClass.ParcelWith(ForInternedString.class)
40     private String targetPackage;
41     @Nullable
42     @DataClass.ParcelWith(ForInternedString.class)
43     private String targetProcesses;
44     private boolean handleProfiling;
45     private boolean functionalTest;
46 
ParsedInstrumentationImpl()47     public ParsedInstrumentationImpl() {
48     }
49 
setTargetPackage(@ullable String targetPackage)50     public ParsedInstrumentationImpl setTargetPackage(@Nullable String targetPackage) {
51         this.targetPackage = TextUtils.safeIntern(targetPackage);
52         return this;
53     }
54 
setTargetProcesses(@ullable String targetProcesses)55     public ParsedInstrumentationImpl setTargetProcesses(@Nullable String targetProcesses) {
56         this.targetProcesses = TextUtils.safeIntern(targetProcesses);
57         return this;
58     }
59 
toString()60     public String toString() {
61         StringBuilder sb = new StringBuilder(128);
62         sb.append("Instrumentation{");
63         sb.append(Integer.toHexString(System.identityHashCode(this)));
64         sb.append(' ');
65         ComponentName.appendShortString(sb, getPackageName(), getName());
66         sb.append('}');
67         return sb.toString();
68     }
69 
70     @Override
describeContents()71     public int describeContents() {
72         return 0;
73     }
74 
75     @Override
writeToParcel(Parcel dest, int flags)76     public void writeToParcel(Parcel dest, int flags) {
77         super.writeToParcel(dest, flags);
78         sForInternedString.parcel(this.targetPackage, dest, flags);
79         sForInternedString.parcel(this.targetProcesses, dest, flags);
80         dest.writeBoolean(this.handleProfiling);
81         dest.writeBoolean(this.functionalTest);
82     }
83 
ParsedInstrumentationImpl(Parcel in)84     protected ParsedInstrumentationImpl(Parcel in) {
85         super(in);
86         this.targetPackage = sForInternedString.unparcel(in);
87         this.targetProcesses = sForInternedString.unparcel(in);
88         this.handleProfiling = in.readByte() != 0;
89         this.functionalTest = in.readByte() != 0;
90     }
91 
92     @NonNull
93     public static final Parcelable.Creator<ParsedInstrumentationImpl> CREATOR =
94             new Parcelable.Creator<ParsedInstrumentationImpl>() {
95                 @Override
96                 public ParsedInstrumentationImpl createFromParcel(Parcel source) {
97                     return new ParsedInstrumentationImpl(source);
98                 }
99 
100                 @Override
101                 public ParsedInstrumentationImpl[] newArray(int size) {
102                     return new ParsedInstrumentationImpl[size];
103                 }
104             };
105 
106 
107 
108     // Code below generated by codegen v1.0.23.
109     //
110     // DO NOT MODIFY!
111     // CHECKSTYLE:OFF Generated code
112     //
113     // To regenerate run:
114     // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/content/pm/parsing/component/ParsedInstrumentationImpl.java
115     //
116     // To exclude the generated code from IntelliJ auto-formatting enable (one-time):
117     //   Settings > Editor > Code Style > Formatter Control
118     //@formatter:off
119 
120 
121     @DataClass.Generated.Member
ParsedInstrumentationImpl( @ullable String targetPackage, @Nullable String targetProcesses, boolean handleProfiling, boolean functionalTest)122     public ParsedInstrumentationImpl(
123             @Nullable String targetPackage,
124             @Nullable String targetProcesses,
125             boolean handleProfiling,
126             boolean functionalTest) {
127         this.targetPackage = targetPackage;
128         this.targetProcesses = targetProcesses;
129         this.handleProfiling = handleProfiling;
130         this.functionalTest = functionalTest;
131 
132         // onConstructed(); // You can define this method to get a callback
133     }
134 
135     @DataClass.Generated.Member
getTargetPackage()136     public @Nullable String getTargetPackage() {
137         return targetPackage;
138     }
139 
140     @DataClass.Generated.Member
getTargetProcesses()141     public @Nullable String getTargetProcesses() {
142         return targetProcesses;
143     }
144 
145     @DataClass.Generated.Member
isHandleProfiling()146     public boolean isHandleProfiling() {
147         return handleProfiling;
148     }
149 
150     @DataClass.Generated.Member
isFunctionalTest()151     public boolean isFunctionalTest() {
152         return functionalTest;
153     }
154 
155     @DataClass.Generated.Member
setHandleProfiling( boolean value)156     public @NonNull ParsedInstrumentationImpl setHandleProfiling( boolean value) {
157         handleProfiling = value;
158         return this;
159     }
160 
161     @DataClass.Generated.Member
setFunctionalTest( boolean value)162     public @NonNull ParsedInstrumentationImpl setFunctionalTest( boolean value) {
163         functionalTest = value;
164         return this;
165     }
166 
167     @DataClass.Generated(
168             time = 1641431951575L,
169             codegenVersion = "1.0.23",
170             sourceFile = "frameworks/base/core/java/android/content/pm/parsing/component/ParsedInstrumentationImpl.java",
171             inputSignatures = "private @android.annotation.Nullable @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedString.class) java.lang.String targetPackage\nprivate @android.annotation.Nullable @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedString.class) java.lang.String targetProcesses\nprivate  boolean handleProfiling\nprivate  boolean functionalTest\npublic static final @android.annotation.NonNull android.os.Parcelable.Creator<android.content.pm.parsing.component.ParsedInstrumentationImpl> CREATOR\npublic  android.content.pm.parsing.component.ParsedInstrumentationImpl setTargetPackage(java.lang.String)\npublic  android.content.pm.parsing.component.ParsedInstrumentationImpl setTargetProcesses(java.lang.String)\npublic  java.lang.String toString()\npublic @java.lang.Override int describeContents()\npublic @java.lang.Override void writeToParcel(android.os.Parcel,int)\nclass ParsedInstrumentationImpl extends android.content.pm.parsing.component.ParsedComponentImpl implements [android.content.pm.parsing.component.ParsedInstrumentation, android.os.Parcelable]\n@com.android.internal.util.DataClass(genGetters=true, genSetters=true, genBuilder=false, genParcelable=false)")
172     @Deprecated
__metadata()173     private void __metadata() {}
174 
175 
176     //@formatter:on
177     // End of generated code
178 
179 }
180