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.lexical.ParseToken;
20 import org.orekit.files.ccsds.utils.lexical.TokenType;
21
22
23
24
25
26 public enum XmlSubStructureKey {
27
28
29 COMMENT((token, parser) -> token.getType() == TokenType.ENTRY ? parser.addGeneralComment(token.getContentAsNormalizedString()) : true),
30
31
32 relativeMetadataData((token, parser) -> parser.manageRelativeMetadataSection(token.getType() == TokenType.START)),
33
34
35 segment((token, parser) -> true),
36
37
38 relativeStateVector((token, parser) -> parser.manageRelativeStateVectorSection(token.getType() == TokenType.START)),
39
40
41 odParameters((token, parser) -> parser.manageODParametersSection(token.getType() == TokenType.START)),
42
43
44 additionalParameters((token, parser) -> parser.manageAdditionalParametersSection(token.getType() == TokenType.START)),
45
46
47 stateVector((token, parser) -> parser.manageStateVectorSection(token.getType() == TokenType.START)),
48
49
50 covarianceMatrix((token, parser) -> parser.manageXmlGeneralCovarianceSection(token.getType() == TokenType.START)),
51
52
53 userDefinedParameters((token, parser) -> parser.manageUserDefinedParametersSection(token.getType() == TokenType.START));
54
55
56 private final transient TokenProcessor processor;
57
58
59
60
61 XmlSubStructureKey(final TokenProcessor processor) {
62 this.processor = processor;
63 }
64
65
66
67
68
69
70 public boolean process(final ParseToken token, final CdmParser parser) {
71 return processor.process(token, parser);
72 }
73
74
75 interface TokenProcessor {
76
77
78
79
80
81 boolean process(ParseToken token, CdmParser parser);
82 }
83
84 }