1   /* Copyright 2002-2024 Luc Maisonobe
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  
18  package org.orekit.files.ccsds.ndm.adm.acm;
19  
20  import org.orekit.files.ccsds.definitions.FrameFacade;
21  import org.orekit.files.ccsds.section.CommentsContainer;
22  
23  /** Metadata for covariance history.
24   * @author Luc Maisonobe
25   * @since 12.0
26   */
27  public class AttitudeCovarianceHistoryMetadata extends CommentsContainer {
28  
29      /** Covariance identification number. */
30      private String covID;
31  
32      /** Identification number of previous covariance. */
33      private String covPrevID;
34  
35      /** Basis of this covariance time history data. */
36      private String covBasis;
37  
38      /** Identification number of the covariance determination or simulation upon which this covariance is based. */
39      private String covBasisID;
40  
41      /** Reference frame of the covariance. */
42      private FrameFacade covReferenceFrame;
43  
44      /** Covariance element set type. */
45      private AttitudeCovarianceType covType;
46  
47      /** Empty constructor.
48       * <p>
49       * This constructor is not strictly necessary, but it prevents spurious
50       * javadoc warnings with JDK 18 and later.
51       * </p>
52       * @since 12.0
53       */
54      public AttitudeCovarianceHistoryMetadata() {
55          // nothing to do
56      }
57  
58      /** {@inheritDoc} */
59      @Override
60      public void validate(final double version) {
61          super.validate(version);
62          checkNotNull(covType, AttitudeCovarianceHistoryMetadataKey.COV_TYPE.name());
63      }
64  
65      /** Get covariance identification number.
66       * @return covariance identification number
67       */
68      public String getCovID() {
69          return covID;
70      }
71  
72      /** Set covariance identification number.
73       * @param covID covariance identification number
74       */
75      public void setCovID(final String covID) {
76          refuseFurtherComments();
77          this.covID = covID;
78      }
79  
80      /** Get identification number of previous covariance.
81       * @return identification number of previous covariance
82       */
83      public String getCovPrevID() {
84          return covPrevID;
85      }
86  
87      /** Set identification number of previous covariance.
88       * @param covPrevID identification number of previous covariance
89       */
90      public void setCovPrevID(final String covPrevID) {
91          refuseFurtherComments();
92          this.covPrevID = covPrevID;
93      }
94  
95      /** Get basis of this covariance time history data.
96       * @return basis of this covariance time history data
97       */
98      public String getCovBasis() {
99          return covBasis;
100     }
101 
102     /** Set basis of this covariance time history data.
103      * @param covBasis basis of this covariance time history data
104      */
105     public void setCovBasis(final String covBasis) {
106         refuseFurtherComments();
107         this.covBasis = covBasis;
108     }
109 
110     /** Get identification number of the orbit determination or simulation upon which this covariance is based.
111      * @return identification number of the orbit determination or simulation upon which this covariance is based
112      */
113     public String getCovBasisID() {
114         return covBasisID;
115     }
116 
117     /** Set identification number of the orbit determination or simulation upon which this covariance is based.
118      * @param covBasisID identification number of the orbit determination or simulation upon which this covariance is based
119      */
120     public void setCovBasisID(final String covBasisID) {
121         refuseFurtherComments();
122         this.covBasisID = covBasisID;
123     }
124 
125     /** Get reference frame of the covariance.
126      * @return reference frame of the covariance
127      */
128     public FrameFacade getCovReferenceFrame() {
129         return covReferenceFrame;
130     }
131 
132     /** Set reference frame of the covariance.
133      * @param covReferenceFrame the reference frame to be set
134      */
135     public void setCovReferenceFrame(final FrameFacade covReferenceFrame) {
136         refuseFurtherComments();
137         this.covReferenceFrame = covReferenceFrame;
138     }
139 
140     /** Get covariance element set type.
141      * @return covariance element set type
142      */
143     public AttitudeCovarianceType getCovType() {
144         return covType;
145     }
146 
147     /** Set covariance element set type.
148      * @param covType covariance element set type
149      */
150     public void setCovType(final AttitudeCovarianceType covType) {
151         refuseFurtherComments();
152         this.covType = covType;
153     }
154 
155 }