1 /* 2 * Copyright (C) 2017 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.vms; 18 19 import android.annotation.NonNull; 20 import android.annotation.SystemApi; 21 import android.os.Parcel; 22 import android.os.Parcelable; 23 import android.util.ArraySet; 24 25 import com.android.internal.util.DataClass; 26 27 import java.util.Collections; 28 import java.util.Objects; 29 import java.util.Set; 30 31 /** 32 * A Vehicle Map Service layer with a list of publisher IDs it is associated with. 33 * 34 * @hide 35 */ 36 @SystemApi 37 @DataClass(genAidl = true, genEqualsHashCode = true, genToString = true) 38 public final class VmsAssociatedLayer implements Parcelable { 39 /** 40 * Layer being offered 41 */ 42 private final @NonNull VmsLayer mVmsLayer; 43 44 /** 45 * IDs of providers that publish the layer 46 */ 47 private @NonNull Set<Integer> mProviderIds; 48 onConstructed()49 private void onConstructed() { 50 mProviderIds = Collections.unmodifiableSet(mProviderIds); 51 } 52 parcelProviderIds(Parcel dest, int flags)53 private void parcelProviderIds(Parcel dest, int flags) { 54 dest.writeArraySet(new ArraySet<>(mProviderIds)); 55 } 56 57 @SuppressWarnings("unchecked") unparcelProviderIds(Parcel in)58 private Set<Integer> unparcelProviderIds(Parcel in) { 59 return (Set<Integer>) in.readArraySet(Integer.class.getClassLoader()); 60 } 61 62 /** 63 * IDs of publishers that publish the layer 64 * 65 * @deprecated Use {@link #getProviderIds()} instead 66 */ 67 @Deprecated 68 @NonNull getPublisherIds()69 public Set<Integer> getPublisherIds() { 70 return mProviderIds; 71 } 72 73 74 75 // Code below generated by codegen v1.0.14. 76 // 77 // DO NOT MODIFY! 78 // CHECKSTYLE:OFF Generated code 79 // 80 // To regenerate run: 81 // $ codegen $ANDROID_BUILD_TOP/packages/services/Car/car-lib/src/android/car/vms/VmsAssociatedLayer.java 82 // 83 // To exclude the generated code from IntelliJ auto-formatting enable (one-time): 84 // Settings > Editor > Code Style > Formatter Control 85 //@formatter:off 86 87 88 /** 89 * Creates a new VmsAssociatedLayer. 90 * 91 * @param vmsLayer 92 * Layer being offered 93 * @param providerIds 94 * IDs of providers that publish the layer 95 */ 96 @DataClass.Generated.Member VmsAssociatedLayer( @onNull VmsLayer vmsLayer, @NonNull Set<Integer> providerIds)97 public VmsAssociatedLayer( 98 @NonNull VmsLayer vmsLayer, 99 @NonNull Set<Integer> providerIds) { 100 this.mVmsLayer = vmsLayer; 101 com.android.internal.util.AnnotationValidations.validate( 102 NonNull.class, null, mVmsLayer); 103 this.mProviderIds = providerIds; 104 com.android.internal.util.AnnotationValidations.validate( 105 NonNull.class, null, mProviderIds); 106 107 onConstructed(); 108 } 109 110 /** 111 * Layer being offered 112 */ 113 @DataClass.Generated.Member getVmsLayer()114 public @NonNull VmsLayer getVmsLayer() { 115 return mVmsLayer; 116 } 117 118 /** 119 * IDs of providers that publish the layer 120 */ 121 @DataClass.Generated.Member getProviderIds()122 public @NonNull Set<Integer> getProviderIds() { 123 return mProviderIds; 124 } 125 126 @Override 127 @DataClass.Generated.Member toString()128 public String toString() { 129 // You can override field toString logic by defining methods like: 130 // String fieldNameToString() { ... } 131 132 return "VmsAssociatedLayer { " + 133 "vmsLayer = " + mVmsLayer + ", " + 134 "providerIds = " + mProviderIds + 135 " }"; 136 } 137 138 @Override 139 @DataClass.Generated.Member equals(@ndroid.annotation.Nullable Object o)140 public boolean equals(@android.annotation.Nullable Object o) { 141 // You can override field equality logic by defining either of the methods like: 142 // boolean fieldNameEquals(VmsAssociatedLayer other) { ... } 143 // boolean fieldNameEquals(FieldType otherValue) { ... } 144 145 if (this == o) return true; 146 if (o == null || getClass() != o.getClass()) return false; 147 @SuppressWarnings("unchecked") 148 VmsAssociatedLayer that = (VmsAssociatedLayer) o; 149 //noinspection PointlessBooleanExpression 150 return true 151 && Objects.equals(mVmsLayer, that.mVmsLayer) 152 && Objects.equals(mProviderIds, that.mProviderIds); 153 } 154 155 @Override 156 @DataClass.Generated.Member hashCode()157 public int hashCode() { 158 // You can override field hashCode logic by defining methods like: 159 // int fieldNameHashCode() { ... } 160 161 int _hash = 1; 162 _hash = 31 * _hash + Objects.hashCode(mVmsLayer); 163 _hash = 31 * _hash + Objects.hashCode(mProviderIds); 164 return _hash; 165 } 166 167 @Override 168 @DataClass.Generated.Member writeToParcel(@onNull Parcel dest, int flags)169 public void writeToParcel(@NonNull Parcel dest, int flags) { 170 // You can override field parcelling by defining methods like: 171 // void parcelFieldName(Parcel dest, int flags) { ... } 172 173 dest.writeTypedObject(mVmsLayer, flags); 174 parcelProviderIds(dest, flags); 175 } 176 177 @Override 178 @DataClass.Generated.Member describeContents()179 public int describeContents() { return 0; } 180 181 /** @hide */ 182 @SuppressWarnings({"unchecked", "RedundantCast"}) 183 @DataClass.Generated.Member VmsAssociatedLayer(@onNull Parcel in)184 /* package-private */ VmsAssociatedLayer(@NonNull Parcel in) { 185 // You can override field unparcelling by defining methods like: 186 // static FieldType unparcelFieldName(Parcel in) { ... } 187 188 VmsLayer vmsLayer = (VmsLayer) in.readTypedObject(VmsLayer.CREATOR); 189 Set<Integer> providerIds = unparcelProviderIds(in); 190 191 this.mVmsLayer = vmsLayer; 192 com.android.internal.util.AnnotationValidations.validate( 193 NonNull.class, null, mVmsLayer); 194 this.mProviderIds = providerIds; 195 com.android.internal.util.AnnotationValidations.validate( 196 NonNull.class, null, mProviderIds); 197 198 onConstructed(); 199 } 200 201 @DataClass.Generated.Member 202 public static final @NonNull Parcelable.Creator<VmsAssociatedLayer> CREATOR 203 = new Parcelable.Creator<VmsAssociatedLayer>() { 204 @Override 205 public VmsAssociatedLayer[] newArray(int size) { 206 return new VmsAssociatedLayer[size]; 207 } 208 209 @Override 210 public VmsAssociatedLayer createFromParcel(@NonNull Parcel in) { 211 return new VmsAssociatedLayer(in); 212 } 213 }; 214 215 @DataClass.Generated( 216 time = 1582065953302L, 217 codegenVersion = "1.0.14", 218 sourceFile = "packages/services/Car/car-lib/src/android/car/vms/VmsAssociatedLayer.java", 219 inputSignatures = "private final @android.annotation.NonNull android.car.vms.VmsLayer mVmsLayer\nprivate @android.annotation.NonNull android.car.vms.Set<java.lang.Integer> mProviderIds\nprivate void onConstructed()\nprivate void parcelProviderIds(android.os.Parcel,int)\nprivate @java.lang.SuppressWarnings(\"unchecked\") android.car.vms.Set<java.lang.Integer> unparcelProviderIds(android.os.Parcel)\npublic @java.lang.Deprecated @android.annotation.NonNull android.car.vms.Set<java.lang.Integer> getPublisherIds()\nclass VmsAssociatedLayer extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genAidl=true, genEqualsHashCode=true, genToString=true)") 220 @Deprecated __metadata()221 private void __metadata() {} 222 223 224 //@formatter:on 225 // End of generated code 226 227 } 228