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.utils.units.Unit;
22
23
24
25
26
27
28 public enum AttitudeDeterminationSensorKey {
29
30
31 SENSOR_NUMBER((token, context, container) -> token.processAsInteger(container::setSensorNumber)),
32
33
34 SENSOR_USED((token, context, container) -> token.processAsUppercaseString(container::setSensorUsed)),
35
36
37 NUMBER_SENSOR_NOISE_COVARIANCE((token, context, container) -> token.processAsInteger(container::setNbSensorNoiseCovariance)),
38
39
40 SENSOR_NOISE_STDDEV((token, context, container) -> token.processAsDoubleArray(Unit.DEGREE, context.getParsedUnitsBehavior(),
41 container::setSensorNoiseCovariance)),
42
43
44 SENSOR_FREQUENCY((token, context, container) -> token.processAsDouble(Unit.HERTZ, context.getParsedUnitsBehavior(),
45 container::setSensorFrequency));
46
47
48 private final transient TokenProcessor processor;
49
50
51
52
53 AttitudeDeterminationSensorKey(final TokenProcessor processor) {
54 this.processor = processor;
55 }
56
57
58
59
60
61
62
63 public boolean process(final ParseToken token, final ContextBinding context,
64 final AttitudeDeterminationSensor container) {
65 return processor.process(token, context, container);
66 }
67
68
69 interface TokenProcessor {
70
71
72
73
74
75
76 boolean process(ParseToken token, ContextBinding context, AttitudeDeterminationSensor container);
77 }
78
79 }