1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.files.ccsds.ndm.odm.omm;
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
27
28
29 public enum OmmTleKey {
30
31
32 COMMENT((token, context, container) ->
33 token.getType() == TokenType.ENTRY ? container.addComment(token.getContentAsNormalizedString()) : true),
34
35
36 EPHEMERIS_TYPE((token, context, container) -> token.processAsInteger(container::setEphemerisType)),
37
38
39 CLASSIFICATION_TYPE((token, context, container) -> token.processAsNormalizedCharacter(container::setClassificationType)),
40
41
42 NORAD_CAT_ID((token, context, container) -> token.processAsInteger(container::setNoradID)),
43
44
45 ELEMENT_SET_NO((token, context, container) -> token.processAsInteger(container::setElementSetNo)),
46
47
48 REV_AT_EPOCH((token, context, container) -> token.processAsInteger(container::setRevAtEpoch)),
49
50
51 BSTAR((token, context, container) -> token.processAsDouble(Units.ONE_PER_ER, context.getParsedUnitsBehavior(),
52 container::setBStar)),
53
54
55
56
57 BTERM((token, context, container) -> token.processAsDouble(Units.M2_PER_KG, context.getParsedUnitsBehavior(),
58 container::setBTerm)),
59
60
61 MEAN_MOTION_DOT((token, context, container) -> token.processAsDouble(Units.REV_PER_DAY2_SCALED, context.getParsedUnitsBehavior(),
62 container::setMeanMotionDot)),
63
64
65 MEAN_MOTION_DDOT((token, context, container) -> token.processAsDouble(Units.REV_PER_DAY3_SCALED, context.getParsedUnitsBehavior(),
66 container::setMeanMotionDotDot)),
67
68
69
70
71 AGOM((token, context, container) -> token.processAsDouble(Units.M2_PER_KG, context.getParsedUnitsBehavior(),
72 container::setAGoM));
73
74
75 private final transient TokenProcessor processor;
76
77
78
79
80 OmmTleKey(final TokenProcessor processor) {
81 this.processor = processor;
82 }
83
84
85
86
87
88
89
90 public boolean process(final ParseToken token, final ContextBinding context, final OmmTle container) {
91 return processor.process(token, context, container);
92 }
93
94
95 interface TokenProcessor {
96
97
98
99
100
101
102 boolean process(ParseToken token, ContextBinding context, OmmTle container);
103 }
104
105 }