1 /*
2  * Copyright (C) 2023 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.flags;
18 
19 import android.annotation.NonNull;
20 import android.os.Parcel;
21 import android.os.Parcelable;
22 
23 /**
24  * @hide
25  */
26 public final class SyncableFlag implements Parcelable {
27     private final String mNamespace;
28     private final String mName;
29     private final String mValue;
30     private final boolean mDynamic;
31     private final boolean mOverridden;
32 
SyncableFlag( @onNull String namespace, @NonNull String name, @NonNull String value, boolean dynamic)33     public SyncableFlag(
34             @NonNull String namespace,
35             @NonNull String name,
36             @NonNull String value,
37             boolean dynamic) {
38         this(namespace, name, value, dynamic, false);
39     }
40 
SyncableFlag( @onNull String namespace, @NonNull String name, @NonNull String value, boolean dynamic, boolean overridden )41     public SyncableFlag(
42             @NonNull String namespace,
43             @NonNull String name,
44             @NonNull String value,
45             boolean dynamic,
46             boolean overridden
47     ) {
48         mNamespace = namespace;
49         mName = name;
50         mValue = value;
51         mDynamic = dynamic;
52         mOverridden = overridden;
53     }
54 
55     @NonNull
getNamespace()56     public String getNamespace() {
57         return mNamespace;
58     }
59 
60     @NonNull
getName()61     public String getName() {
62         return mName;
63     }
64 
65     @NonNull
getValue()66     public String getValue() {
67         return mValue;
68     }
69 
isDynamic()70     public boolean isDynamic() {
71         return mDynamic;
72     }
73 
isOverridden()74     public boolean isOverridden() {
75         return mOverridden;
76     }
77 
78     @NonNull
79     public static final Parcelable.Creator<SyncableFlag> CREATOR = new Parcelable.Creator<>() {
80         public SyncableFlag createFromParcel(Parcel in) {
81             return new SyncableFlag(
82                     in.readString(),
83                     in.readString(),
84                     in.readString(),
85                     in.readBoolean(),
86                     in.readBoolean());
87         }
88 
89         public SyncableFlag[] newArray(int size) {
90             return new SyncableFlag[size];
91         }
92     };
93 
94     @Override
describeContents()95     public int describeContents() {
96         return 0;
97     }
98 
99     @Override
writeToParcel(@onNull Parcel dest, int flags)100     public void writeToParcel(@NonNull Parcel dest, int flags) {
101         dest.writeString(mNamespace);
102         dest.writeString(mName);
103         dest.writeString(mValue);
104         dest.writeBoolean(mDynamic);
105         dest.writeBoolean(mOverridden);
106     }
107 
108     @Override
toString()109     public String toString() {
110         return getNamespace() + "." + getName() + "[" + getValue() + "]";
111     }
112 }
113