1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.files.ccsds.ndm.odm.ocm;
18
19 import java.io.IOException;
20
21 import org.orekit.files.ccsds.definitions.TimeConverter;
22 import org.orekit.files.ccsds.ndm.odm.OdmMetadataKey;
23 import org.orekit.files.ccsds.section.AbstractWriter;
24 import org.orekit.files.ccsds.section.KvnStructureKey;
25 import org.orekit.files.ccsds.section.MetadataKey;
26 import org.orekit.files.ccsds.section.XmlStructureKey;
27 import org.orekit.files.ccsds.utils.generation.Generator;
28 import org.orekit.utils.units.Unit;
29
30
31
32
33
34
35
36 class OcmMetadataWriter extends AbstractWriter {
37
38
39 private final OcmMetadata metadata;
40
41
42 private final TimeConverter timeConverter;
43
44
45
46
47
48 OcmMetadataWriter(final OcmMetadata metadata, final TimeConverter timeConverter) {
49 super(XmlStructureKey.metadata.name(), KvnStructureKey.META.name());
50 this.metadata = metadata;
51 this.timeConverter = timeConverter;
52 }
53
54
55 @Override
56 protected void writeContent(final Generator generator) throws IOException {
57
58 generator.writeComments(metadata.getComments());
59
60 generator.writeEntry(OcmMetadataKey.CLASSIFICATION.name(),
61 metadata.getClassification(), null, false);
62
63
64 generator.writeEntry(OdmMetadataKey.OBJECT_NAME.name(),
65 metadata.getObjectName(), null, false);
66 generator.writeEntry(OcmMetadataKey.INTERNATIONAL_DESIGNATOR.name(),
67 metadata.getInternationalDesignator(), null, false);
68 generator.writeEntry(OcmMetadataKey.CATALOG_NAME.name(),
69 metadata.getCatalogName(), null, false);
70 generator.writeEntry(OcmMetadataKey.OBJECT_DESIGNATOR.name(),
71 metadata.getObjectDesignator(), null, false);
72 generator.writeEntry(OcmMetadataKey.ALTERNATE_NAMES.name(),
73 metadata.getAlternateNames(), false);
74
75
76 generator.writeEntry(OcmMetadataKey.ORIGINATOR_POC.name(),
77 metadata.getOriginatorPOC(), null, false);
78 generator.writeEntry(OcmMetadataKey.ORIGINATOR_POSITION.name(),
79 metadata.getOriginatorPosition(), null, false);
80 generator.writeEntry(OcmMetadataKey.ORIGINATOR_PHONE.name(),
81 metadata.getOriginatorPhone(), null, false);
82 generator.writeEntry(OcmMetadataKey.ORIGINATOR_ADDRESS.name(),
83 metadata.getOriginatorAddress(), null, false);
84
85
86 generator.writeEntry(OcmMetadataKey.TECH_ORG.name(),
87 metadata.getTechOrg(), null, false);
88 generator.writeEntry(OcmMetadataKey.TECH_POC.name(),
89 metadata.getTechPOC(), null, false);
90 generator.writeEntry(OcmMetadataKey.TECH_POSITION.name(),
91 metadata.getTechPosition(), null, false);
92 generator.writeEntry(OcmMetadataKey.TECH_PHONE.name(),
93 metadata.getTechPhone(), null, false);
94 generator.writeEntry(OcmMetadataKey.TECH_ADDRESS.name(),
95 metadata.getTechAddress(), null, false);
96
97
98 generator.writeEntry(OcmMetadataKey.PREVIOUS_MESSAGE_ID.name(),
99 metadata.getPreviousMessageID(), null, false);
100 generator.writeEntry(OcmMetadataKey.NEXT_MESSAGE_ID.name(),
101 metadata.getNextMessageID(), null, false);
102 generator.writeEntry(OcmMetadataKey.ADM_MESSAGE_LINK.name(),
103 metadata.getAdmMessageLink(), null, false);
104 generator.writeEntry(OcmMetadataKey.CDM_MESSAGE_LINK.name(),
105 metadata.getCdmMessageLink(), null, false);
106 generator.writeEntry(OcmMetadataKey.PRM_MESSAGE_LINK.name(),
107 metadata.getPrmMessageLink(), null, false);
108 generator.writeEntry(OcmMetadataKey.RDM_MESSAGE_LINK.name(),
109 metadata.getRdmMessageLink(), null, false);
110 generator.writeEntry(OcmMetadataKey.TDM_MESSAGE_LINK.name(),
111 metadata.getTdmMessageLink(), null, false);
112
113
114 generator.writeEntry(OcmMetadataKey.OPERATOR.name(),
115 metadata.getOperator(), null, false);
116 generator.writeEntry(OcmMetadataKey.OWNER.name(),
117 metadata.getOwner(), null, false);
118 generator.writeEntry(OcmMetadataKey.COUNTRY.name(),
119 metadata.getCountry(), null, false);
120 generator.writeEntry(OcmMetadataKey.CONSTELLATION.name(),
121 metadata.getConstellation(), null, false);
122 generator.writeEntry(OcmMetadataKey.OBJECT_TYPE.name(),
123 metadata.getObjectType(), false);
124
125
126 generator.writeEntry(MetadataKey.TIME_SYSTEM.name(),
127 metadata.getTimeSystem(), false);
128 generator.writeEntry(OcmMetadataKey.EPOCH_TZERO.name(), timeConverter,
129 metadata.getEpochT0(), true);
130
131
132 generator.writeEntry(OcmMetadataKey.OPS_STATUS.name(),
133 metadata.getOpsStatus(), false);
134 generator.writeEntry(OcmMetadataKey.ORBIT_CATEGORY.name(),
135 metadata.getOrbitCategory(), false);
136 generator.writeEntry(OcmMetadataKey.OCM_DATA_ELEMENTS.name(),
137 metadata.getOcmDataElements(), false);
138
139
140 generator.writeEntry(OcmMetadataKey.SCLK_OFFSET_AT_EPOCH.name(), metadata.getSclkOffsetAtEpoch(), Unit.SECOND, false);
141 generator.writeEntry(OcmMetadataKey.SCLK_SEC_PER_SI_SEC.name(), metadata.getSclkSecPerSISec(), Unit.SECOND, false);
142 generator.writeEntry(OcmMetadataKey.PREVIOUS_MESSAGE_EPOCH.name(), timeConverter,
143 metadata.getPreviousMessageEpoch(), false);
144 generator.writeEntry(OcmMetadataKey.NEXT_MESSAGE_EPOCH.name(), timeConverter,
145 metadata.getNextMessageEpoch(), false);
146 generator.writeEntry(OcmMetadataKey.START_TIME.name(), timeConverter,
147 metadata.getStartTime(), false);
148 generator.writeEntry(OcmMetadataKey.STOP_TIME.name(), timeConverter,
149 metadata.getStopTime(), false);
150 generator.writeEntry(OcmMetadataKey.TIME_SPAN.name(), metadata.getTimeSpan(), Unit.DAY, false);
151 generator.writeEntry(OcmMetadataKey.TAIMUTC_AT_TZERO.name(), metadata.getTaimutcT0(), Unit.SECOND, false);
152 generator.writeEntry(OcmMetadataKey.UT1MUTC_AT_TZERO.name(), metadata.getUt1mutcT0(), Unit.SECOND, false);
153
154
155 generator.writeEntry(OcmMetadataKey.EOP_SOURCE.name(),
156 metadata.getEopSource(), null, false);
157 generator.writeEntry(OcmMetadataKey.INTERP_METHOD_EOP.name(),
158 metadata.getInterpMethodEOP(), null, false);
159 generator.writeEntry(OcmMetadataKey.CELESTIAL_SOURCE.name(),
160 metadata.getCelestialSource(), null, false);
161
162 }
163
164 }