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_parameter_extensions;
18 
19 /*
20  */
21 
22 
23 //
24 //
25 import android.location.cts.asn1.base.Asn1Boolean;
26 import android.location.cts.asn1.base.Asn1Null;
27 import android.location.cts.asn1.base.Asn1Object;
28 import android.location.cts.asn1.base.Asn1Sequence;
29 import android.location.cts.asn1.base.Asn1Tag;
30 import android.location.cts.asn1.base.BitStream;
31 import android.location.cts.asn1.base.BitStreamReader;
32 import android.location.cts.asn1.base.SequenceComponent;
33 import com.google.common.collect.ImmutableList;
34 import java.util.Collection;
35 import javax.annotation.Nullable;
36 
37 
38 /**
39 */
40 public  class Ver2_PosProtocol_extension extends Asn1Sequence {
41   //
42 
43   private static final Asn1Tag TAG_Ver2_PosProtocol_extension
44       = Asn1Tag.fromClassAndNumber(-1, -1);
45 
Ver2_PosProtocol_extension()46   public Ver2_PosProtocol_extension() {
47     super();
48   }
49 
50   @Override
51   @Nullable
getTag()52   protected Asn1Tag getTag() {
53     return TAG_Ver2_PosProtocol_extension;
54   }
55 
56   @Override
isTagImplicit()57   protected boolean isTagImplicit() {
58     return true;
59   }
60 
getPossibleFirstTags()61   public static Collection<Asn1Tag> getPossibleFirstTags() {
62     if (TAG_Ver2_PosProtocol_extension != null) {
63       return ImmutableList.of(TAG_Ver2_PosProtocol_extension);
64     } else {
65       return Asn1Sequence.getPossibleFirstTags();
66     }
67   }
68 
69   /**
70    * Creates a new Ver2_PosProtocol_extension from encoded stream.
71    */
fromPerUnaligned(byte[] encodedBytes)72   public static Ver2_PosProtocol_extension fromPerUnaligned(byte[] encodedBytes) {
73     Ver2_PosProtocol_extension result = new Ver2_PosProtocol_extension();
74     result.decodePerUnaligned(new BitStreamReader(encodedBytes));
75     return result;
76   }
77 
78   /**
79    * Creates a new Ver2_PosProtocol_extension from encoded stream.
80    */
fromPerAligned(byte[] encodedBytes)81   public static Ver2_PosProtocol_extension fromPerAligned(byte[] encodedBytes) {
82     Ver2_PosProtocol_extension result = new Ver2_PosProtocol_extension();
83     result.decodePerAligned(new BitStreamReader(encodedBytes));
84     return result;
85   }
86 
87 
88 
isExtensible()89   @Override protected boolean isExtensible() {
90     return true;
91   }
92 
containsExtensionValues()93   @Override public boolean containsExtensionValues() {
94     for (SequenceComponent extensionComponent : getExtensionComponents()) {
95       if (extensionComponent.isExplicitlySet()) return true;
96     }
97     return false;
98   }
99 
100 
101   private Ver2_PosProtocol_extension.lppType lpp_;
getLpp()102   public Ver2_PosProtocol_extension.lppType getLpp() {
103     return lpp_;
104   }
105   /**
106    * @throws ClassCastException if value is not a Ver2_PosProtocol_extension.lppType
107    */
setLpp(Asn1Object value)108   public void setLpp(Asn1Object value) {
109     this.lpp_ = (Ver2_PosProtocol_extension.lppType) value;
110   }
setLppToNewInstance()111   public Ver2_PosProtocol_extension.lppType setLppToNewInstance() {
112     lpp_ = new Ver2_PosProtocol_extension.lppType();
113     return lpp_;
114   }
115 
116   private PosProtocolVersion3GPP posProtocolVersionRRLP_;
getPosProtocolVersionRRLP()117   public PosProtocolVersion3GPP getPosProtocolVersionRRLP() {
118     return posProtocolVersionRRLP_;
119   }
120   /**
121    * @throws ClassCastException if value is not a PosProtocolVersion3GPP
122    */
setPosProtocolVersionRRLP(Asn1Object value)123   public void setPosProtocolVersionRRLP(Asn1Object value) {
124     this.posProtocolVersionRRLP_ = (PosProtocolVersion3GPP) value;
125   }
setPosProtocolVersionRRLPToNewInstance()126   public PosProtocolVersion3GPP setPosProtocolVersionRRLPToNewInstance() {
127     posProtocolVersionRRLP_ = new PosProtocolVersion3GPP();
128     return posProtocolVersionRRLP_;
129   }
130 
131   private PosProtocolVersion3GPP posProtocolVersionRRC_;
getPosProtocolVersionRRC()132   public PosProtocolVersion3GPP getPosProtocolVersionRRC() {
133     return posProtocolVersionRRC_;
134   }
135   /**
136    * @throws ClassCastException if value is not a PosProtocolVersion3GPP
137    */
setPosProtocolVersionRRC(Asn1Object value)138   public void setPosProtocolVersionRRC(Asn1Object value) {
139     this.posProtocolVersionRRC_ = (PosProtocolVersion3GPP) value;
140   }
setPosProtocolVersionRRCToNewInstance()141   public PosProtocolVersion3GPP setPosProtocolVersionRRCToNewInstance() {
142     posProtocolVersionRRC_ = new PosProtocolVersion3GPP();
143     return posProtocolVersionRRC_;
144   }
145 
146   private PosProtocolVersion3GPP2 posProtocolVersionTIA801_;
getPosProtocolVersionTIA801()147   public PosProtocolVersion3GPP2 getPosProtocolVersionTIA801() {
148     return posProtocolVersionTIA801_;
149   }
150   /**
151    * @throws ClassCastException if value is not a PosProtocolVersion3GPP2
152    */
setPosProtocolVersionTIA801(Asn1Object value)153   public void setPosProtocolVersionTIA801(Asn1Object value) {
154     this.posProtocolVersionTIA801_ = (PosProtocolVersion3GPP2) value;
155   }
setPosProtocolVersionTIA801ToNewInstance()156   public PosProtocolVersion3GPP2 setPosProtocolVersionTIA801ToNewInstance() {
157     posProtocolVersionTIA801_ = new PosProtocolVersion3GPP2();
158     return posProtocolVersionTIA801_;
159   }
160 
161   private PosProtocolVersion3GPP posProtocolVersionLPP_;
getPosProtocolVersionLPP()162   public PosProtocolVersion3GPP getPosProtocolVersionLPP() {
163     return posProtocolVersionLPP_;
164   }
165   /**
166    * @throws ClassCastException if value is not a PosProtocolVersion3GPP
167    */
setPosProtocolVersionLPP(Asn1Object value)168   public void setPosProtocolVersionLPP(Asn1Object value) {
169     this.posProtocolVersionLPP_ = (PosProtocolVersion3GPP) value;
170   }
setPosProtocolVersionLPPToNewInstance()171   public PosProtocolVersion3GPP setPosProtocolVersionLPPToNewInstance() {
172     posProtocolVersionLPP_ = new PosProtocolVersion3GPP();
173     return posProtocolVersionLPP_;
174   }
175 
176 
177 
178 
179 
180 
getComponents()181   @Override public Iterable<? extends SequenceComponent> getComponents() {
182     ImmutableList.Builder<SequenceComponent> builder = ImmutableList.builder();
183 
184     builder.add(new SequenceComponent() {
185           Asn1Tag tag = Asn1Tag.fromClassAndNumber(2, 0);
186 
187           @Override public boolean isExplicitlySet() {
188             return getLpp() != null;
189           }
190 
191           @Override public boolean hasDefaultValue() {
192             return false;
193           }
194 
195           @Override public boolean isOptional() {
196             return false;
197           }
198 
199           @Override public Asn1Object getComponentValue() {
200             return getLpp();
201           }
202 
203           @Override public void setToNewInstance() {
204             setLppToNewInstance();
205           }
206 
207           @Override public Collection<Asn1Tag> getPossibleFirstTags() {
208             return tag == null ? Ver2_PosProtocol_extension.lppType.getPossibleFirstTags() : ImmutableList.of(tag);
209           }
210 
211           @Override
212           public Asn1Tag getTag() {
213             return tag;
214           }
215 
216           @Override
217           public boolean isImplicitTagging() {
218             return true;
219           }
220 
221           @Override public String toIndentedString(String indent) {
222                 return "lpp : "
223                     + getLpp().toIndentedString(indent);
224               }
225         });
226 
227     builder.add(new SequenceComponent() {
228           Asn1Tag tag = Asn1Tag.fromClassAndNumber(2, 1);
229 
230           @Override public boolean isExplicitlySet() {
231             return getPosProtocolVersionRRLP() != null;
232           }
233 
234           @Override public boolean hasDefaultValue() {
235             return false;
236           }
237 
238           @Override public boolean isOptional() {
239             return true;
240           }
241 
242           @Override public Asn1Object getComponentValue() {
243             return getPosProtocolVersionRRLP();
244           }
245 
246           @Override public void setToNewInstance() {
247             setPosProtocolVersionRRLPToNewInstance();
248           }
249 
250           @Override public Collection<Asn1Tag> getPossibleFirstTags() {
251             return tag == null ? PosProtocolVersion3GPP.getPossibleFirstTags() : ImmutableList.of(tag);
252           }
253 
254           @Override
255           public Asn1Tag getTag() {
256             return tag;
257           }
258 
259           @Override
260           public boolean isImplicitTagging() {
261             return true;
262           }
263 
264           @Override public String toIndentedString(String indent) {
265                 return "posProtocolVersionRRLP : "
266                     + getPosProtocolVersionRRLP().toIndentedString(indent);
267               }
268         });
269 
270     builder.add(new SequenceComponent() {
271           Asn1Tag tag = Asn1Tag.fromClassAndNumber(2, 2);
272 
273           @Override public boolean isExplicitlySet() {
274             return getPosProtocolVersionRRC() != null;
275           }
276 
277           @Override public boolean hasDefaultValue() {
278             return false;
279           }
280 
281           @Override public boolean isOptional() {
282             return true;
283           }
284 
285           @Override public Asn1Object getComponentValue() {
286             return getPosProtocolVersionRRC();
287           }
288 
289           @Override public void setToNewInstance() {
290             setPosProtocolVersionRRCToNewInstance();
291           }
292 
293           @Override public Collection<Asn1Tag> getPossibleFirstTags() {
294             return tag == null ? PosProtocolVersion3GPP.getPossibleFirstTags() : ImmutableList.of(tag);
295           }
296 
297           @Override
298           public Asn1Tag getTag() {
299             return tag;
300           }
301 
302           @Override
303           public boolean isImplicitTagging() {
304             return true;
305           }
306 
307           @Override public String toIndentedString(String indent) {
308                 return "posProtocolVersionRRC : "
309                     + getPosProtocolVersionRRC().toIndentedString(indent);
310               }
311         });
312 
313     builder.add(new SequenceComponent() {
314           Asn1Tag tag = Asn1Tag.fromClassAndNumber(2, 3);
315 
316           @Override public boolean isExplicitlySet() {
317             return getPosProtocolVersionTIA801() != null;
318           }
319 
320           @Override public boolean hasDefaultValue() {
321             return false;
322           }
323 
324           @Override public boolean isOptional() {
325             return true;
326           }
327 
328           @Override public Asn1Object getComponentValue() {
329             return getPosProtocolVersionTIA801();
330           }
331 
332           @Override public void setToNewInstance() {
333             setPosProtocolVersionTIA801ToNewInstance();
334           }
335 
336           @Override public Collection<Asn1Tag> getPossibleFirstTags() {
337             return tag == null ? PosProtocolVersion3GPP2.getPossibleFirstTags() : ImmutableList.of(tag);
338           }
339 
340           @Override
341           public Asn1Tag getTag() {
342             return tag;
343           }
344 
345           @Override
346           public boolean isImplicitTagging() {
347             return true;
348           }
349 
350           @Override public String toIndentedString(String indent) {
351                 return "posProtocolVersionTIA801 : "
352                     + getPosProtocolVersionTIA801().toIndentedString(indent);
353               }
354         });
355 
356     builder.add(new SequenceComponent() {
357           Asn1Tag tag = Asn1Tag.fromClassAndNumber(2, 4);
358 
359           @Override public boolean isExplicitlySet() {
360             return getPosProtocolVersionLPP() != null;
361           }
362 
363           @Override public boolean hasDefaultValue() {
364             return false;
365           }
366 
367           @Override public boolean isOptional() {
368             return true;
369           }
370 
371           @Override public Asn1Object getComponentValue() {
372             return getPosProtocolVersionLPP();
373           }
374 
375           @Override public void setToNewInstance() {
376             setPosProtocolVersionLPPToNewInstance();
377           }
378 
379           @Override public Collection<Asn1Tag> getPossibleFirstTags() {
380             return tag == null ? PosProtocolVersion3GPP.getPossibleFirstTags() : ImmutableList.of(tag);
381           }
382 
383           @Override
384           public Asn1Tag getTag() {
385             return tag;
386           }
387 
388           @Override
389           public boolean isImplicitTagging() {
390             return true;
391           }
392 
393           @Override public String toIndentedString(String indent) {
394                 return "posProtocolVersionLPP : "
395                     + getPosProtocolVersionLPP().toIndentedString(indent);
396               }
397         });
398 
399     return builder.build();
400   }
401 
402   @Override public Iterable<? extends SequenceComponent>
getExtensionComponents()403                                                     getExtensionComponents() {
404     ImmutableList.Builder<SequenceComponent> builder = ImmutableList.builder();
405 
406       return builder.build();
407     }
408 
409 
410 /*
411  */
412 
413 
414 //
415 
416 /**
417  */
418 public static class lppType extends Asn1Boolean {
419   //
420 
421   private static final Asn1Tag TAG_lppType
422       = Asn1Tag.fromClassAndNumber(-1, -1);
423 
lppType()424   public lppType() {
425     super();
426   }
427 
428   @Override
429   @Nullable
getTag()430   protected Asn1Tag getTag() {
431     return TAG_lppType;
432   }
433 
434   @Override
isTagImplicit()435   protected boolean isTagImplicit() {
436     return true;
437   }
438 
getPossibleFirstTags()439   public static Collection<Asn1Tag> getPossibleFirstTags() {
440     if (TAG_lppType != null) {
441       return ImmutableList.of(TAG_lppType);
442     } else {
443       return Asn1Boolean.getPossibleFirstTags();
444     }
445   }
446 
447   /**
448    * Creates a new lppType from encoded stream.
449    */
fromPerUnaligned(byte[] encodedBytes)450   public static lppType fromPerUnaligned(byte[] encodedBytes) {
451     lppType result = new lppType();
452     result.decodePerUnaligned(new BitStreamReader(encodedBytes));
453     return result;
454   }
455 
456   /**
457    * Creates a new lppType from encoded stream.
458    */
fromPerAligned(byte[] encodedBytes)459   public static lppType fromPerAligned(byte[] encodedBytes) {
460     lppType result = new lppType();
461     result.decodePerAligned(new BitStreamReader(encodedBytes));
462     return result;
463   }
464 
encodePerUnaligned()465   @Override public Iterable<BitStream> encodePerUnaligned() {
466     return super.encodePerUnaligned();
467   }
468 
encodePerAligned()469   @Override public Iterable<BitStream> encodePerAligned() {
470     return super.encodePerAligned();
471   }
472 
decodePerUnaligned(BitStreamReader reader)473   @Override public void decodePerUnaligned(BitStreamReader reader) {
474     super.decodePerUnaligned(reader);
475   }
476 
decodePerAligned(BitStreamReader reader)477   @Override public void decodePerAligned(BitStreamReader reader) {
478     super.decodePerAligned(reader);
479   }
480 
toString()481   @Override public String toString() {
482     return toIndentedString("");
483   }
484 
toIndentedString(String indent)485   public String toIndentedString(String indent) {
486     return "lppType = " + getValue() + ";\n";
487   }
488 }
489 
490 
491 
492 
493 
494 
495 
496 
497 
498 
499 
500 
501 
encodePerUnaligned()502   @Override public Iterable<BitStream> encodePerUnaligned() {
503     return super.encodePerUnaligned();
504   }
505 
encodePerAligned()506   @Override public Iterable<BitStream> encodePerAligned() {
507     return super.encodePerAligned();
508   }
509 
decodePerUnaligned(BitStreamReader reader)510   @Override public void decodePerUnaligned(BitStreamReader reader) {
511     super.decodePerUnaligned(reader);
512   }
513 
decodePerAligned(BitStreamReader reader)514   @Override public void decodePerAligned(BitStreamReader reader) {
515     super.decodePerAligned(reader);
516   }
517 
toString()518   @Override public String toString() {
519     return toIndentedString("");
520   }
521 
toIndentedString(String indent)522   public String toIndentedString(String indent) {
523     StringBuilder builder = new StringBuilder();
524     builder.append("Ver2_PosProtocol_extension = {\n");
525     final String internalIndent = indent + "  ";
526     for (SequenceComponent component : getComponents()) {
527       if (component.isExplicitlySet()) {
528         builder.append(internalIndent)
529             .append(component.toIndentedString(internalIndent));
530       }
531     }
532     if (isExtensible()) {
533       builder.append(internalIndent).append("...\n");
534       for (SequenceComponent component : getExtensionComponents()) {
535         if (component.isExplicitlySet()) {
536           builder.append(internalIndent)
537               .append(component.toIndentedString(internalIndent));
538         }
539       }
540     }
541     builder.append(indent).append("};\n");
542     return builder.toString();
543   }
544 }
545