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 public enum AdditionalCovarianceMetadataKey {
27
28
29 COMMENT((token, context, container) ->
30 token.getType() == TokenType.ENTRY ? container.addComment(token.getContentAsNormalizedString()) : true),
31
32
33 DENSITY_FORECAST_UNCERTAINTY((token, context, container) -> token.processAsDouble(Unit.NONE, context.getParsedUnitsBehavior(),
34 container::setDensityForecastUncertainty)),
35
36
37 CSCALE_FACTOR_MIN((token, context, container) -> token.processAsDouble(Unit.NONE, context.getParsedUnitsBehavior(),
38 container::setcScaleFactorMin)),
39
40
41 CSCALE_FACTOR((token, context, container) -> token.processAsDouble(Unit.NONE, context.getParsedUnitsBehavior(),
42 container::setcScaleFactor)),
43
44
45 CSCALE_FACTOR_MAX((token, context, container) -> token.processAsDouble(Unit.NONE, context.getParsedUnitsBehavior(),
46 container::setcScaleFactorMax)),
47
48
49 SCREENING_DATA_SOURCE((token, context, container) -> token.processAsFreeTextString(container::setScreeningDataSource)),
50
51
52 DCP_SENSITIVITY_VECTOR_POSITION((token, context, container) -> token.processAsDoubleArray(Unit.NONE, context.getParsedUnitsBehavior(),
53 container::setDcpSensitivityVectorPosition)),
54
55
56 DCP_SENSITIVITY_VECTOR_VELOCITY((token, context, container) -> token.processAsDoubleArray(Unit.NONE, context.getParsedUnitsBehavior(),
57 container::setDcpSensitivityVectorVelocity));
58
59
60 private final transient TokenProcessor processor;
61
62
63
64
65 AdditionalCovarianceMetadataKey(final TokenProcessor processor) {
66 this.processor = processor;
67 }
68
69
70
71
72
73
74
75 public boolean process(final ParseToken token, final ContextBinding context, final AdditionalCovarianceMetadata container) {
76 return processor.process(token, context, container);
77 }
78
79
80 interface TokenProcessor {
81
82
83
84
85
86
87 boolean process(ParseToken token, ContextBinding context, AdditionalCovarianceMetadata container);
88 }
89
90 }