1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.files.ccsds.ndm.cdm;
18
19 import org.orekit.files.ccsds.definitions.Units;
20 import org.orekit.files.ccsds.utils.ContextBinding;
21 import org.orekit.files.ccsds.utils.lexical.ParseToken;
22 import org.orekit.files.ccsds.utils.lexical.TokenType;
23
24
25
26 public enum XYZCovarianceKey {
27
28
29 COMMENT((token, context, container) ->
30 token.getType() == TokenType.ENTRY ? container.addComment(token.getContentAsNormalizedString()) : true),
31
32
33 CX_X((token, context, container) -> token.processAsDouble(Units.M2, context.getParsedUnitsBehavior(),
34 container::setCxx)),
35
36 CY_X((token, context, container) -> token.processAsDouble(Units.M2, context.getParsedUnitsBehavior(),
37 container::setCyx)),
38
39 CY_Y((token, context, container) -> token.processAsDouble(Units.M2, context.getParsedUnitsBehavior(),
40 container::setCyy)),
41
42 CZ_X((token, context, container) -> token.processAsDouble(Units.M2, context.getParsedUnitsBehavior(),
43 container::setCzx)),
44
45 CZ_Y((token, context, container) -> token.processAsDouble(Units.M2, context.getParsedUnitsBehavior(),
46 container::setCzy)),
47
48 CZ_Z((token, context, container) -> token.processAsDouble(Units.M2, context.getParsedUnitsBehavior(),
49 container::setCzz)),
50
51 CXDOT_X((token, context, container) -> token.processAsDouble(Units.M2_PER_S, context.getParsedUnitsBehavior(),
52 container::setCxdotx)),
53
54 CXDOT_Y((token, context, container) -> token.processAsDouble(Units.M2_PER_S, context.getParsedUnitsBehavior(),
55 container::setCxdoty)),
56
57 CXDOT_Z((token, context, container) -> token.processAsDouble(Units.M2_PER_S, context.getParsedUnitsBehavior(),
58 container::setCxdotz)),
59
60 CXDOT_XDOT((token, context, container) -> token.processAsDouble(Units.M2_PER_S2, context.getParsedUnitsBehavior(),
61 container::setCxdotxdot)),
62
63 CYDOT_X((token, context, container) -> token.processAsDouble(Units.M2_PER_S, context.getParsedUnitsBehavior(),
64 container::setCydotx)),
65
66 CYDOT_Y((token, context, container) -> token.processAsDouble(Units.M2_PER_S, context.getParsedUnitsBehavior(),
67 container::setCydoty)),
68
69 CYDOT_Z((token, context, container) -> token.processAsDouble(Units.M2_PER_S, context.getParsedUnitsBehavior(),
70 container::setCydotz)),
71
72 CYDOT_XDOT((token, context, container) -> token.processAsDouble(Units.M2_PER_S2, context.getParsedUnitsBehavior(),
73 container::setCydotxdot)),
74
75 CYDOT_YDOT((token, context, container) -> token.processAsDouble(Units.M2_PER_S2, context.getParsedUnitsBehavior(),
76 container::setCydotydot)),
77
78 CZDOT_X((token, context, container) -> token.processAsDouble(Units.M2_PER_S, context.getParsedUnitsBehavior(),
79 container::setCzdotx)),
80
81 CZDOT_Y((token, context, container) -> token.processAsDouble(Units.M2_PER_S, context.getParsedUnitsBehavior(),
82 container::setCzdoty)),
83
84 CZDOT_Z((token, context, container) -> token.processAsDouble(Units.M2_PER_S, context.getParsedUnitsBehavior(),
85 container::setCzdotz)),
86
87 CZDOT_XDOT((token, context, container) -> token.processAsDouble(Units.M2_PER_S2, context.getParsedUnitsBehavior(),
88 container::setCzdotxdot)),
89
90 CZDOT_YDOT((token, context, container) -> token.processAsDouble(Units.M2_PER_S2, context.getParsedUnitsBehavior(),
91 container::setCzdotydot)),
92
93 CZDOT_ZDOT((token, context, container) -> token.processAsDouble(Units.M2_PER_S2, context.getParsedUnitsBehavior(),
94 container::setCzdotzdot)),
95
96 CDRG_X((token, context, container) -> token.processAsDouble(Units.M3_PER_KG, context.getParsedUnitsBehavior(),
97 container::setCdrgx)),
98
99 CDRG_Y((token, context, container) -> token.processAsDouble(Units.M3_PER_KG, context.getParsedUnitsBehavior(),
100 container::setCdrgy)),
101
102 CDRG_Z((token, context, container) -> token.processAsDouble(Units.M3_PER_KG, context.getParsedUnitsBehavior(),
103 container::setCdrgz)),
104
105 CDRG_XDOT((token, context, container) -> token.processAsDouble(Units.M3_PER_KGS, context.getParsedUnitsBehavior(),
106 container::setCdrgxdot)),
107
108 CDRG_YDOT((token, context, container) -> token.processAsDouble(Units.M3_PER_KGS, context.getParsedUnitsBehavior(),
109 container::setCdrgydot)),
110
111 CDRG_ZDOT((token, context, container) -> token.processAsDouble(Units.M3_PER_KGS, context.getParsedUnitsBehavior(),
112 container::setCdrgzdot)),
113
114 CDRG_DRG((token, context, container) -> token.processAsDouble(Units.M4_PER_KG2, context.getParsedUnitsBehavior(),
115 container::setCdrgdrg)),
116
117 CSRP_X((token, context, container) -> token.processAsDouble(Units.M3_PER_KG, context.getParsedUnitsBehavior(),
118 container::setCsrpx)),
119
120 CSRP_Y((token, context, container) -> token.processAsDouble(Units.M3_PER_KG, context.getParsedUnitsBehavior(),
121 container::setCsrpy)),
122
123 CSRP_Z((token, context, container) -> token.processAsDouble(Units.M3_PER_KG, context.getParsedUnitsBehavior(),
124 container::setCsrpz)),
125
126 CSRP_XDOT((token, context, container) -> token.processAsDouble(Units.M3_PER_KGS, context.getParsedUnitsBehavior(),
127 container::setCsrpxdot)),
128
129 CSRP_YDOT((token, context, container) -> token.processAsDouble(Units.M3_PER_KGS, context.getParsedUnitsBehavior(),
130 container::setCsrpydot)),
131
132 CSRP_ZDOT((token, context, container) -> token.processAsDouble(Units.M3_PER_KGS, context.getParsedUnitsBehavior(),
133 container::setCsrpzdot)),
134
135 CSRP_DRG((token, context, container) -> token.processAsDouble(Units.M4_PER_KG2, context.getParsedUnitsBehavior(),
136 container::setCsrpdrg)),
137
138 CSRP_SRP((token, context, container) -> token.processAsDouble(Units.M4_PER_KG2, context.getParsedUnitsBehavior(),
139 container::setCsrpsrp)),
140
141 CTHR_X((token, context, container) -> token.processAsDouble(Units.M2_PER_S2, context.getParsedUnitsBehavior(),
142 container::setCthrx)),
143
144 CTHR_Y((token, context, container) -> token.processAsDouble(Units.M2_PER_S2, context.getParsedUnitsBehavior(),
145 container::setCthry)),
146
147 CTHR_Z((token, context, container) -> token.processAsDouble(Units.M2_PER_S2, context.getParsedUnitsBehavior(),
148 container::setCthrz)),
149
150 CTHR_XDOT((token, context, container) -> token.processAsDouble(Units.M2_PER_S3, context.getParsedUnitsBehavior(),
151 container::setCthrxdot)),
152
153 CTHR_YDOT((token, context, container) -> token.processAsDouble(Units.M2_PER_S3, context.getParsedUnitsBehavior(),
154 container::setCthrydot)),
155
156 CTHR_ZDOT((token, context, container) -> token.processAsDouble(Units.M2_PER_S3, context.getParsedUnitsBehavior(),
157 container::setCthrzdot)),
158
159 CTHR_DRG((token, context, container) -> token.processAsDouble(Units.M3_PER_KGS2, context.getParsedUnitsBehavior(),
160 container::setCthrdrg)),
161
162 CTHR_SRP((token, context, container) -> token.processAsDouble(Units.M3_PER_KGS2, context.getParsedUnitsBehavior(),
163 container::setCthrsrp)),
164
165 CTHR_THR((token, context, container) -> token.processAsDouble(Units.M2_PER_S4, context.getParsedUnitsBehavior(),
166 container::setCthrthr));
167
168
169 private final transient TokenProcessor processor;
170
171
172
173
174 XYZCovarianceKey(final TokenProcessor processor) {
175 this.processor = processor;
176 }
177
178
179
180
181
182
183
184 public boolean process(final ParseToken token, final ContextBinding context, final XYZCovariance container) {
185 return processor.process(token, context, container);
186 }
187
188
189 interface TokenProcessor {
190
191
192
193
194
195
196 boolean process(ParseToken token, ContextBinding context, XYZCovariance container);
197 }
198
199 }