1 /* 2 * Copyright (C) 2021 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.car.watchdog; 18 19 import static com.android.car.internal.ExcludeFromCodeCoverageGeneratedReport.BOILERPLATE_CODE; 20 21 import android.annotation.NonNull; 22 import android.annotation.SystemApi; 23 import android.annotation.UserIdInt; 24 import android.car.annotation.AddedInOrBefore; 25 import android.os.Parcelable; 26 27 import com.android.car.internal.ExcludeFromCodeCoverageGeneratedReport; 28 import com.android.car.internal.util.AnnotationValidations; 29 import com.android.car.internal.util.DataClass; 30 31 /** 32 * Killable state for a package. 33 * 34 * @hide 35 */ 36 @SystemApi 37 @DataClass(genToString = true, genHiddenConstructor = true, genHiddenConstDefs = true) 38 public final class PackageKillableState implements Parcelable { 39 /** 40 * A package is killable. 41 */ 42 @AddedInOrBefore(majorVersion = 33) 43 public static final int KILLABLE_STATE_YES = 1; 44 45 /** 46 * A package is not killable. 47 */ 48 @AddedInOrBefore(majorVersion = 33) 49 public static final int KILLABLE_STATE_NO = 2; 50 51 /** 52 * A package is never killable i.e., it's setting cannot be updated. 53 */ 54 @AddedInOrBefore(majorVersion = 33) 55 public static final int KILLABLE_STATE_NEVER = 3; 56 57 /** 58 * Name of the package. 59 */ 60 private @NonNull String mPackageName; 61 62 /** 63 * Id of the user. 64 */ 65 private @UserIdInt int mUserId; 66 67 /** 68 * Killable state of the user's package. 69 */ 70 private @KillableState int mKillableState; 71 72 73 74 // Code below generated by codegen v1.0.23. 75 // 76 // DO NOT MODIFY! 77 // CHECKSTYLE:OFF Generated code 78 // 79 // To regenerate run: 80 // $ codegen $ANDROID_BUILD_TOP/packages/services/Car/car-lib/src/android/car/watchdog/PackageKillableState.java 81 // 82 // To exclude the generated code from IntelliJ auto-formatting enable (one-time): 83 // Settings > Editor > Code Style > Formatter Control 84 //@formatter:off 85 86 87 /** @hide */ 88 @android.annotation.IntDef(prefix = "KILLABLE_STATE_", value = { 89 KILLABLE_STATE_YES, 90 KILLABLE_STATE_NO, 91 KILLABLE_STATE_NEVER 92 }) 93 @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) 94 @DataClass.Generated.Member 95 public @interface KillableState {} 96 97 /** @hide */ 98 @DataClass.Generated.Member 99 @AddedInOrBefore(majorVersion = 33) killableStateToString(@illableState int value)100 public static String killableStateToString(@KillableState int value) { 101 switch (value) { 102 case KILLABLE_STATE_YES: 103 return "KILLABLE_STATE_YES"; 104 case KILLABLE_STATE_NO: 105 return "KILLABLE_STATE_NO"; 106 case KILLABLE_STATE_NEVER: 107 return "KILLABLE_STATE_NEVER"; 108 default: return Integer.toHexString(value); 109 } 110 } 111 112 /** 113 * Creates a new PackageKillableState. 114 * 115 * @param packageName 116 * Name of the package. 117 * @param userId 118 * Id of the user. 119 * @param killableState 120 * Killable state of the user's package. 121 * @hide 122 */ 123 @DataClass.Generated.Member PackageKillableState( @onNull String packageName, @UserIdInt int userId, @KillableState int killableState)124 public PackageKillableState( 125 @NonNull String packageName, 126 @UserIdInt int userId, 127 @KillableState int killableState) { 128 this.mPackageName = packageName; 129 AnnotationValidations.validate( 130 NonNull.class, null, mPackageName); 131 this.mUserId = userId; 132 AnnotationValidations.validate( 133 UserIdInt.class, null, mUserId); 134 this.mKillableState = killableState; 135 136 if (!(mKillableState == KILLABLE_STATE_YES) 137 && !(mKillableState == KILLABLE_STATE_NO) 138 && !(mKillableState == KILLABLE_STATE_NEVER)) { 139 throw new java.lang.IllegalArgumentException( 140 "killableState was " + mKillableState + " but must be one of: " 141 + "KILLABLE_STATE_YES(" + KILLABLE_STATE_YES + "), " 142 + "KILLABLE_STATE_NO(" + KILLABLE_STATE_NO + "), " 143 + "KILLABLE_STATE_NEVER(" + KILLABLE_STATE_NEVER + ")"); 144 } 145 146 147 // onConstructed(); // You can define this method to get a callback 148 } 149 150 /** 151 * Name of the package. 152 */ 153 @DataClass.Generated.Member 154 @AddedInOrBefore(majorVersion = 33) getPackageName()155 public @NonNull String getPackageName() { 156 return mPackageName; 157 } 158 159 /** 160 * Id of the user. 161 */ 162 @DataClass.Generated.Member 163 @AddedInOrBefore(majorVersion = 33) getUserId()164 public @UserIdInt int getUserId() { 165 return mUserId; 166 } 167 168 /** 169 * Killable state of the user's package. 170 */ 171 @DataClass.Generated.Member 172 @AddedInOrBefore(majorVersion = 33) getKillableState()173 public @KillableState int getKillableState() { 174 return mKillableState; 175 } 176 177 @Override 178 @DataClass.Generated.Member 179 @AddedInOrBefore(majorVersion = 33) toString()180 public String toString() { 181 // You can override field toString logic by defining methods like: 182 // String fieldNameToString() { ... } 183 184 return "PackageKillableState { " + 185 "packageName = " + mPackageName + ", " + 186 "userId = " + mUserId + ", " + 187 "killableState = " + killableStateToString(mKillableState) + 188 " }"; 189 } 190 191 @Override 192 @DataClass.Generated.Member 193 @AddedInOrBefore(majorVersion = 33) writeToParcel(@onNull android.os.Parcel dest, int flags)194 public void writeToParcel(@NonNull android.os.Parcel dest, int flags) { 195 // You can override field parcelling by defining methods like: 196 // void parcelFieldName(Parcel dest, int flags) { ... } 197 198 dest.writeString(mPackageName); 199 dest.writeInt(mUserId); 200 dest.writeInt(mKillableState); 201 } 202 203 @Override 204 @DataClass.Generated.Member 205 @ExcludeFromCodeCoverageGeneratedReport(reason = BOILERPLATE_CODE) 206 @AddedInOrBefore(majorVersion = 33) describeContents()207 public int describeContents() { return 0; } 208 209 /** @hide */ 210 @SuppressWarnings({"unchecked", "RedundantCast"}) 211 @DataClass.Generated.Member PackageKillableState(@onNull android.os.Parcel in)212 /* package-private */ PackageKillableState(@NonNull android.os.Parcel in) { 213 // You can override field unparcelling by defining methods like: 214 // static FieldType unparcelFieldName(Parcel in) { ... } 215 216 String packageName = in.readString(); 217 int userId = in.readInt(); 218 int killableState = in.readInt(); 219 220 this.mPackageName = packageName; 221 AnnotationValidations.validate( 222 NonNull.class, null, mPackageName); 223 this.mUserId = userId; 224 AnnotationValidations.validate( 225 UserIdInt.class, null, mUserId); 226 this.mKillableState = killableState; 227 228 if (!(mKillableState == KILLABLE_STATE_YES) 229 && !(mKillableState == KILLABLE_STATE_NO) 230 && !(mKillableState == KILLABLE_STATE_NEVER)) { 231 throw new java.lang.IllegalArgumentException( 232 "killableState was " + mKillableState + " but must be one of: " 233 + "KILLABLE_STATE_YES(" + KILLABLE_STATE_YES + "), " 234 + "KILLABLE_STATE_NO(" + KILLABLE_STATE_NO + "), " 235 + "KILLABLE_STATE_NEVER(" + KILLABLE_STATE_NEVER + ")"); 236 } 237 238 239 // onConstructed(); // You can define this method to get a callback 240 } 241 242 @DataClass.Generated.Member 243 @AddedInOrBefore(majorVersion = 33) 244 public static final @NonNull Parcelable.Creator<PackageKillableState> CREATOR 245 = new Parcelable.Creator<PackageKillableState>() { 246 @Override 247 public PackageKillableState[] newArray(int size) { 248 return new PackageKillableState[size]; 249 } 250 251 @Override 252 public PackageKillableState createFromParcel(@NonNull android.os.Parcel in) { 253 return new PackageKillableState(in); 254 } 255 }; 256 257 @DataClass.Generated( 258 time = 1628099314740L, 259 codegenVersion = "1.0.23", 260 sourceFile = "packages/services/Car/car-lib/src/android/car/watchdog/PackageKillableState.java", 261 inputSignatures = "public static final int KILLABLE_STATE_YES\npublic static final int KILLABLE_STATE_NO\npublic static final int KILLABLE_STATE_NEVER\nprivate @android.annotation.NonNull java.lang.String mPackageName\nprivate @android.annotation.UserIdInt int mUserId\nprivate @android.car.watchdog.PackageKillableState.KillableState int mKillableState\nclass PackageKillableState extends java.lang.Object implements [android.os.Parcelable]\n@com.android.car.internal.util.DataClass(genToString=true, genHiddenConstructor=true, genHiddenConstDefs=true)") 262 @Deprecated 263 @ExcludeFromCodeCoverageGeneratedReport(reason = BOILERPLATE_CODE) __metadata()264 private void __metadata() {} 265 266 267 //@formatter:on 268 // End of generated code 269 270 } 271