1   /* Copyright 2002-2025 CS GROUP
2    * Licensed to CS GROUP (CS) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * CS licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *   http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.orekit.gnss.antenna;
18  
19  import java.util.Map;
20  
21  import org.orekit.gnss.RadioWave;
22  import org.orekit.gnss.SatInSystem;
23  import org.orekit.time.AbsoluteDate;
24  
25  /**
26   * GNSS satellite antenna model.
27   *
28   * @author Luc Maisonobe
29   * @since 9.2
30   * @see <a href="ftp://www.igs.org/pub/station/general/antex14.txt">ANTEX: The Antenna Exchange Format, Version 1.4</a>
31   *
32   */
33  public class SatelliteAntenna extends Antenna {
34  
35      /** Satellite in system.
36       * @since 13.0
37       */
38      private final SatInSystem satInSystem;
39  
40      /** Satellite type.
41       * @since 9.3
42       */
43      private final SatelliteType satelliteType;
44  
45      /** Satellite code. */
46      private final int satelliteCode;
47  
48      /** COSPAR ID. */
49      private final String cosparID;
50  
51      /** Start of validity. */
52      private final AbsoluteDate validFrom;
53  
54      /** End of validity. */
55      private final AbsoluteDate validUntil;
56  
57      /** Simple constructor.
58       * @param type antenna type
59       * @param sinexCode sinex code
60       * @param patterns frequencies patterns
61       * @param satInSystem satellite in system
62       * @param satelliteType satellite type
63       * @param satelliteCode satellite code
64       * @param cosparID COSPAR ID
65       * @param validFrom start of validity
66       * @param validUntil end of validity
67       */
68      public SatelliteAntenna(final String type, final String sinexCode,
69                              final Map<RadioWave, FrequencyPattern> patterns,
70                              final SatInSystem satInSystem,
71                              final SatelliteType satelliteType, final int satelliteCode,
72                              final String cosparID,
73                              final AbsoluteDate validFrom, final AbsoluteDate validUntil) {
74          super(type, sinexCode, patterns);
75          this.satInSystem   = satInSystem;
76          this.satelliteType = satelliteType;
77          this.satelliteCode = satelliteCode;
78          this.cosparID      = cosparID;
79          this.validFrom     = validFrom;
80          this.validUntil    = validUntil;
81      }
82  
83      /** Get satellite in system.
84       * @return satellite in system
85       * @since 13.0
86       */
87      public SatInSystem getSatInSystem() {
88          return satInSystem;
89      }
90  
91      /** Get satellite type.
92       * @return satellite type
93       * @since 9.3
94       */
95      public SatelliteType getSatelliteType() {
96          return satelliteType;
97      }
98  
99      /** Get satellite code.
100      * @return satellite code
101      */
102     public int getSatelliteCode() {
103         return satelliteCode;
104     }
105 
106     /** Get COSPAR ID.
107      * @return COSPAR ID
108      */
109     public String getCosparID() {
110         return cosparID;
111     }
112 
113     /** Get start of validity.
114      * @return start of validity
115      */
116     public AbsoluteDate getValidFrom() {
117         return validFrom;
118     }
119 
120     /** Get end of validity.
121      * @return end of validity
122      */
123     public AbsoluteDate getValidUntil() {
124         return validUntil;
125     }
126 
127 }