1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.files.ccsds.ndm.adm.apm;
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 import org.orekit.utils.units.Unit;
24
25
26
27
28
29
30 public enum ManeuverKey {
31
32
33 COMMENT((token, context, container) ->
34 token.getType() == TokenType.ENTRY ? container.addComment(token.getContentAsNormalizedString()) : true),
35
36
37 MAN_EPOCH_START((token, context, container) -> token.processAsDate(container::setEpochStart, context)),
38
39
40 MAN_DURATION((token, context, container) -> token.processAsDouble(Unit.SECOND, context.getParsedUnitsBehavior(),
41 container::setDuration)),
42
43
44 MAN_REF_FRAME((token, context, container) -> token.processAsFrame(container::setFrame, context, true, true, true)),
45
46
47 MAN_TOR_1((token, context, container) -> token.processAsIndexedDouble(0, Units.N_M, context.getParsedUnitsBehavior(),
48 container::setTorque)),
49
50
51
52
53 MAN_TOR_X((token, context, container) -> token.processAsIndexedDouble(0, Units.N_M, context.getParsedUnitsBehavior(),
54 container::setTorque)),
55
56
57 MAN_TOR_2((token, context, container) -> token.processAsIndexedDouble(1, Units.N_M, context.getParsedUnitsBehavior(),
58 container::setTorque)),
59
60
61
62
63 MAN_TOR_Y((token, context, container) -> token.processAsIndexedDouble(1, Units.N_M, context.getParsedUnitsBehavior(),
64 container::setTorque)),
65
66
67 MAN_TOR_3((token, context, container) -> token.processAsIndexedDouble(2, Units.N_M, context.getParsedUnitsBehavior(),
68 container::setTorque)),
69
70
71
72
73 MAN_TOR_Z((token, context, container) -> token.processAsIndexedDouble(2, Units.N_M, context.getParsedUnitsBehavior(),
74 container::setTorque)),
75
76
77
78
79 MAN_DELTA_MASS((token, context, container) -> token.processAsDouble(Unit.KILOGRAM, context.getParsedUnitsBehavior(),
80 container::setDeltaMass));
81
82
83 private final transient TokenProcessor processor;
84
85
86
87
88 ManeuverKey(final TokenProcessor processor) {
89 this.processor = processor;
90 }
91
92
93
94
95
96
97
98 public boolean process(final ParseToken token, final ContextBinding context, final Maneuver container) {
99 return processor.process(token, context, container);
100 }
101
102
103 interface TokenProcessor {
104
105
106
107
108
109
110 boolean process(ParseToken token, ContextBinding context, Maneuver container);
111 }
112
113 }