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.location.cts.asn1.supl2.ulp_version_2_message_extensions; 18 19 /* 20 */ 21 22 23 // 24 // 25 import android.location.cts.asn1.base.Asn1Null; 26 import android.location.cts.asn1.base.Asn1Object; 27 import android.location.cts.asn1.base.Asn1Sequence; 28 import android.location.cts.asn1.base.Asn1Tag; 29 import android.location.cts.asn1.base.BitStream; 30 import android.location.cts.asn1.base.BitStreamReader; 31 import android.location.cts.asn1.base.SequenceComponent; 32 import android.location.cts.asn1.supl2.ver2_ulp_components.UTRAN_GANSSReferenceTimeAssistance; 33 import android.location.cts.asn1.supl2.ver2_ulp_components.UTRAN_GANSSReferenceTimeResult; 34 import android.location.cts.asn1.supl2.ver2_ulp_components.UTRAN_GPSReferenceTimeAssistance; 35 import android.location.cts.asn1.supl2.ver2_ulp_components.UTRAN_GPSReferenceTimeResult; 36 import com.google.common.collect.ImmutableList; 37 import java.util.Collection; 38 import javax.annotation.Nullable; 39 40 41 /** 42 */ 43 public class Ver2_SUPL_POS_extension extends Asn1Sequence { 44 // 45 46 private static final Asn1Tag TAG_Ver2_SUPL_POS_extension 47 = Asn1Tag.fromClassAndNumber(-1, -1); 48 49 public Ver2_SUPL_POS_extension() { 50 super(); 51 } 52 53 @Override 54 @Nullable 55 protected Asn1Tag getTag() { 56 return TAG_Ver2_SUPL_POS_extension; 57 } 58 59 @Override 60 protected boolean isTagImplicit() { 61 return true; 62 } 63 64 public static Collection<Asn1Tag> getPossibleFirstTags() { 65 if (TAG_Ver2_SUPL_POS_extension != null) { 66 return ImmutableList.of(TAG_Ver2_SUPL_POS_extension); 67 } else { 68 return Asn1Sequence.getPossibleFirstTags(); 69 } 70 } 71 72 /** 73 * Creates a new Ver2_SUPL_POS_extension from encoded stream. 74 */ 75 public static Ver2_SUPL_POS_extension fromPerUnaligned(byte[] encodedBytes) { 76 Ver2_SUPL_POS_extension result = new Ver2_SUPL_POS_extension(); 77 result.decodePerUnaligned(new BitStreamReader(encodedBytes)); 78 return result; 79 } 80 81 /** 82 * Creates a new Ver2_SUPL_POS_extension from encoded stream. 83 */ 84 public static Ver2_SUPL_POS_extension fromPerAligned(byte[] encodedBytes) { 85 Ver2_SUPL_POS_extension result = new Ver2_SUPL_POS_extension(); 86 result.decodePerAligned(new BitStreamReader(encodedBytes)); 87 return result; 88 } 89 90 91 92 @Override protected boolean isExtensible() { 93 return true; 94 } 95 96 @Override public boolean containsExtensionValues() { 97 for (SequenceComponent extensionComponent : getExtensionComponents()) { 98 if (extensionComponent.isExplicitlySet()) return true; 99 } 100 return false; 101 } 102 103 104 private UTRAN_GPSReferenceTimeAssistance utran_GPSReferenceTimeAssistance_; 105 public UTRAN_GPSReferenceTimeAssistance getUtran_GPSReferenceTimeAssistance() { 106 return utran_GPSReferenceTimeAssistance_; 107 } 108 /** 109 * @throws ClassCastException if value is not a UTRAN_GPSReferenceTimeAssistance 110 */ 111 public void setUtran_GPSReferenceTimeAssistance(Asn1Object value) { 112 this.utran_GPSReferenceTimeAssistance_ = (UTRAN_GPSReferenceTimeAssistance) value; 113 } 114 public UTRAN_GPSReferenceTimeAssistance setUtran_GPSReferenceTimeAssistanceToNewInstance() { 115 utran_GPSReferenceTimeAssistance_ = new UTRAN_GPSReferenceTimeAssistance(); 116 return utran_GPSReferenceTimeAssistance_; 117 } 118 119 private UTRAN_GPSReferenceTimeResult utran_GPSReferenceTimeResult_; 120 public UTRAN_GPSReferenceTimeResult getUtran_GPSReferenceTimeResult() { 121 return utran_GPSReferenceTimeResult_; 122 } 123 /** 124 * @throws ClassCastException if value is not a UTRAN_GPSReferenceTimeResult 125 */ 126 public void setUtran_GPSReferenceTimeResult(Asn1Object value) { 127 this.utran_GPSReferenceTimeResult_ = (UTRAN_GPSReferenceTimeResult) value; 128 } 129 public UTRAN_GPSReferenceTimeResult setUtran_GPSReferenceTimeResultToNewInstance() { 130 utran_GPSReferenceTimeResult_ = new UTRAN_GPSReferenceTimeResult(); 131 return utran_GPSReferenceTimeResult_; 132 } 133 134 private UTRAN_GANSSReferenceTimeAssistance utran_GANSSReferenceTimeAssistance_; 135 public UTRAN_GANSSReferenceTimeAssistance getUtran_GANSSReferenceTimeAssistance() { 136 return utran_GANSSReferenceTimeAssistance_; 137 } 138 /** 139 * @throws ClassCastException if value is not a UTRAN_GANSSReferenceTimeAssistance 140 */ 141 public void setUtran_GANSSReferenceTimeAssistance(Asn1Object value) { 142 this.utran_GANSSReferenceTimeAssistance_ = (UTRAN_GANSSReferenceTimeAssistance) value; 143 } 144 public UTRAN_GANSSReferenceTimeAssistance setUtran_GANSSReferenceTimeAssistanceToNewInstance() { 145 utran_GANSSReferenceTimeAssistance_ = new UTRAN_GANSSReferenceTimeAssistance(); 146 return utran_GANSSReferenceTimeAssistance_; 147 } 148 149 private UTRAN_GANSSReferenceTimeResult utran_GANSSReferenceTimeResult_; 150 public UTRAN_GANSSReferenceTimeResult getUtran_GANSSReferenceTimeResult() { 151 return utran_GANSSReferenceTimeResult_; 152 } 153 /** 154 * @throws ClassCastException if value is not a UTRAN_GANSSReferenceTimeResult 155 */ 156 public void setUtran_GANSSReferenceTimeResult(Asn1Object value) { 157 this.utran_GANSSReferenceTimeResult_ = (UTRAN_GANSSReferenceTimeResult) value; 158 } 159 public UTRAN_GANSSReferenceTimeResult setUtran_GANSSReferenceTimeResultToNewInstance() { 160 utran_GANSSReferenceTimeResult_ = new UTRAN_GANSSReferenceTimeResult(); 161 return utran_GANSSReferenceTimeResult_; 162 } 163 164 165 166 167 168 169 @Override public Iterable<? extends SequenceComponent> getComponents() { 170 ImmutableList.Builder<SequenceComponent> builder = ImmutableList.builder(); 171 172 builder.add(new SequenceComponent() { 173 Asn1Tag tag = Asn1Tag.fromClassAndNumber(2, 0); 174 175 @Override public boolean isExplicitlySet() { 176 return getUtran_GPSReferenceTimeAssistance() != null; 177 } 178 179 @Override public boolean hasDefaultValue() { 180 return false; 181 } 182 183 @Override public boolean isOptional() { 184 return true; 185 } 186 187 @Override public Asn1Object getComponentValue() { 188 return getUtran_GPSReferenceTimeAssistance(); 189 } 190 191 @Override public void setToNewInstance() { 192 setUtran_GPSReferenceTimeAssistanceToNewInstance(); 193 } 194 195 @Override public Collection<Asn1Tag> getPossibleFirstTags() { 196 return tag == null ? UTRAN_GPSReferenceTimeAssistance.getPossibleFirstTags() : ImmutableList.of(tag); 197 } 198 199 @Override 200 public Asn1Tag getTag() { 201 return tag; 202 } 203 204 @Override 205 public boolean isImplicitTagging() { 206 return true; 207 } 208 209 @Override public String toIndentedString(String indent) { 210 return "utran_GPSReferenceTimeAssistance : " 211 + getUtran_GPSReferenceTimeAssistance().toIndentedString(indent); 212 } 213 }); 214 215 builder.add(new SequenceComponent() { 216 Asn1Tag tag = Asn1Tag.fromClassAndNumber(2, 1); 217 218 @Override public boolean isExplicitlySet() { 219 return getUtran_GPSReferenceTimeResult() != null; 220 } 221 222 @Override public boolean hasDefaultValue() { 223 return false; 224 } 225 226 @Override public boolean isOptional() { 227 return true; 228 } 229 230 @Override public Asn1Object getComponentValue() { 231 return getUtran_GPSReferenceTimeResult(); 232 } 233 234 @Override public void setToNewInstance() { 235 setUtran_GPSReferenceTimeResultToNewInstance(); 236 } 237 238 @Override public Collection<Asn1Tag> getPossibleFirstTags() { 239 return tag == null ? UTRAN_GPSReferenceTimeResult.getPossibleFirstTags() : ImmutableList.of(tag); 240 } 241 242 @Override 243 public Asn1Tag getTag() { 244 return tag; 245 } 246 247 @Override 248 public boolean isImplicitTagging() { 249 return true; 250 } 251 252 @Override public String toIndentedString(String indent) { 253 return "utran_GPSReferenceTimeResult : " 254 + getUtran_GPSReferenceTimeResult().toIndentedString(indent); 255 } 256 }); 257 258 builder.add(new SequenceComponent() { 259 Asn1Tag tag = Asn1Tag.fromClassAndNumber(2, 2); 260 261 @Override public boolean isExplicitlySet() { 262 return getUtran_GANSSReferenceTimeAssistance() != null; 263 } 264 265 @Override public boolean hasDefaultValue() { 266 return false; 267 } 268 269 @Override public boolean isOptional() { 270 return true; 271 } 272 273 @Override public Asn1Object getComponentValue() { 274 return getUtran_GANSSReferenceTimeAssistance(); 275 } 276 277 @Override public void setToNewInstance() { 278 setUtran_GANSSReferenceTimeAssistanceToNewInstance(); 279 } 280 281 @Override public Collection<Asn1Tag> getPossibleFirstTags() { 282 return tag == null ? UTRAN_GANSSReferenceTimeAssistance.getPossibleFirstTags() : ImmutableList.of(tag); 283 } 284 285 @Override 286 public Asn1Tag getTag() { 287 return tag; 288 } 289 290 @Override 291 public boolean isImplicitTagging() { 292 return true; 293 } 294 295 @Override public String toIndentedString(String indent) { 296 return "utran_GANSSReferenceTimeAssistance : " 297 + getUtran_GANSSReferenceTimeAssistance().toIndentedString(indent); 298 } 299 }); 300 301 builder.add(new SequenceComponent() { 302 Asn1Tag tag = Asn1Tag.fromClassAndNumber(2, 3); 303 304 @Override public boolean isExplicitlySet() { 305 return getUtran_GANSSReferenceTimeResult() != null; 306 } 307 308 @Override public boolean hasDefaultValue() { 309 return false; 310 } 311 312 @Override public boolean isOptional() { 313 return true; 314 } 315 316 @Override public Asn1Object getComponentValue() { 317 return getUtran_GANSSReferenceTimeResult(); 318 } 319 320 @Override public void setToNewInstance() { 321 setUtran_GANSSReferenceTimeResultToNewInstance(); 322 } 323 324 @Override public Collection<Asn1Tag> getPossibleFirstTags() { 325 return tag == null ? UTRAN_GANSSReferenceTimeResult.getPossibleFirstTags() : ImmutableList.of(tag); 326 } 327 328 @Override 329 public Asn1Tag getTag() { 330 return tag; 331 } 332 333 @Override 334 public boolean isImplicitTagging() { 335 return true; 336 } 337 338 @Override public String toIndentedString(String indent) { 339 return "utran_GANSSReferenceTimeResult : " 340 + getUtran_GANSSReferenceTimeResult().toIndentedString(indent); 341 } 342 }); 343 344 return builder.build(); 345 } 346 347 @Override public Iterable<? extends SequenceComponent> 348 getExtensionComponents() { 349 ImmutableList.Builder<SequenceComponent> builder = ImmutableList.builder(); 350 351 return builder.build(); 352 } 353 354 355 356 357 358 359 360 361 362 363 364 365 366 @Override public Iterable<BitStream> encodePerUnaligned() { 367 return super.encodePerUnaligned(); 368 } 369 370 @Override public Iterable<BitStream> encodePerAligned() { 371 return super.encodePerAligned(); 372 } 373 374 @Override public void decodePerUnaligned(BitStreamReader reader) { 375 super.decodePerUnaligned(reader); 376 } 377 378 @Override public void decodePerAligned(BitStreamReader reader) { 379 super.decodePerAligned(reader); 380 } 381 382 @Override public String toString() { 383 return toIndentedString(""); 384 } 385 386 public String toIndentedString(String indent) { 387 StringBuilder builder = new StringBuilder(); 388 builder.append("Ver2_SUPL_POS_extension = {\n"); 389 final String internalIndent = indent + " "; 390 for (SequenceComponent component : getComponents()) { 391 if (component.isExplicitlySet()) { 392 builder.append(internalIndent) 393 .append(component.toIndentedString(internalIndent)); 394 } 395 } 396 if (isExtensible()) { 397 builder.append(internalIndent).append("...\n"); 398 for (SequenceComponent component : getExtensionComponents()) { 399 if (component.isExplicitlySet()) { 400 builder.append(internalIndent) 401 .append(component.toIndentedString(internalIndent)); 402 } 403 } 404 } 405 builder.append(indent).append("};\n"); 406 return builder.toString(); 407 } 408 } 409