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.utils.ContextBinding;
20 import org.orekit.files.ccsds.utils.lexical.ParseToken;
21 import org.orekit.files.ccsds.utils.lexical.TokenType;
22 import org.orekit.utils.units.Unit;
23
24
25
26
27
28 public enum ODParametersKey {
29
30
31 COMMENT((token, context, container) ->
32 token.getType() == TokenType.ENTRY ? container.addComment(token.getContentAsNormalizedString()) : true),
33
34
35 TIME_LASTOB_START((token, context, container) -> token.processAsDate(container::setTimeLastObsStart, context)),
36
37
38 TIME_LASTOB_END((token, context, container) -> token.processAsDate(container::setTimeLastObsEnd, context)),
39
40
41 RECOMMENDED_OD_SPAN((token, context, container) -> token.processAsDouble(Unit.DAY, context.getParsedUnitsBehavior(),
42 container::setRecommendedOdSpan)),
43
44
45 ACTUAL_OD_SPAN((token, context, container) -> token.processAsDouble(Unit.DAY, context.getParsedUnitsBehavior(),
46 container::setActualOdSpan)),
47
48
49 OBS_AVAILABLE((token, context, container) -> token.processAsInteger(container::setObsAvailable)),
50
51
52 OBS_USED((token, context, container) -> token.processAsInteger(container::setObsUsed)),
53
54
55 TRACKS_AVAILABLE((token, context, container) -> token.processAsInteger(container::setTracksAvailable)),
56
57
58 TRACKS_USED((token, context, container) -> token.processAsInteger(container::setTracksUsed)),
59
60
61 RESIDUALS_ACCEPTED((token, context, container) -> token.processAsDouble(Unit.PERCENT, context.getParsedUnitsBehavior(),
62 container::setResidualsAccepted)),
63
64
65 WEIGHTED_RMS((token, context, container) -> token.processAsDouble(Unit.ONE, context.getParsedUnitsBehavior(),
66 container::setWeightedRMS)),
67
68
69 OD_EPOCH((token, context, container) -> token.processAsDate(container::setOdEpoch, context));
70
71
72
73 private final transient TokenProcessor processor;
74
75
76
77
78 ODParametersKey(final TokenProcessor processor) {
79 this.processor = processor;
80 }
81
82
83
84
85
86
87
88 public boolean process(final ParseToken token, final ContextBinding context, final ODParameters container) {
89 return processor.process(token, context, container);
90 }
91
92
93 interface TokenProcessor {
94
95
96
97
98
99
100 boolean process(ParseToken token, ContextBinding context, ODParameters container);
101 }
102
103 }