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