1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.files.ccsds.ndm.adm.acm;
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
23
24
25
26
27
28 public enum AttitudeStateHistoryMetadataKey {
29
30
31 COMMENT((token, context, container) ->
32 token.getType() == TokenType.ENTRY ? container.addComment(token.getContentAsNormalizedString()) : true),
33
34
35 ATT_ID((token, context, container) -> token.processAsFreeTextString(container::setAttID)),
36
37
38 ATT_PREV_ID((token, context, container) -> token.processAsFreeTextString(container::setAttPrevID)),
39
40
41 ATT_BASIS((token, context, container) -> token.processAsFreeTextString(container::setAttBasis)),
42
43
44 ATT_BASIS_ID((token, context, container) -> token.processAsFreeTextString(container::setAttBasisID)),
45
46
47 REF_FRAME_A((token, context, container) -> token.processAsFrame(container.getEndpoints()::setFrameA, context, true, true, false)),
48
49
50 REF_FRAME_B((token, context, container) -> token.processAsFrame(container.getEndpoints()::setFrameB, context, false, false, true)),
51
52
53 EULER_ROT_SEQ((token, context, container) -> token.processAsRotationOrder(container::setEulerRotSeq)),
54
55
56 NUMBER_STATES((token, context, container) -> token.processAsInteger(container::setNbStates)),
57
58
59
60
61 ATT_TYPE((token, context, container) -> token.processAsEnum(AttitudeElementsType.class, container::setAttitudeType)),
62
63
64
65
66 RATE_TYPE((token, context, container) -> token.processAsEnum(RateElementsType.class, container::setRateType));
67
68
69 private final transient TokenProcessor processor;
70
71
72
73
74 AttitudeStateHistoryMetadataKey(final TokenProcessor processor) {
75 this.processor = processor;
76 }
77
78
79
80
81
82
83
84 public boolean process(final ParseToken token, final ContextBinding context, final AttitudeStateHistoryMetadata container) {
85 return processor.process(token, context, container);
86 }
87
88
89 interface TokenProcessor {
90
91
92
93
94
95
96 boolean process(ParseToken token, ContextBinding context, AttitudeStateHistoryMetadata container);
97 }
98
99 }