1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.files.ccsds.ndm.adm.apm;
18
19 import java.util.ArrayList;
20 import java.util.Collections;
21 import java.util.List;
22
23 import org.orekit.files.ccsds.section.CommentsContainer;
24 import org.orekit.files.ccsds.section.Data;
25
26
27
28
29
30
31 public class ApmData implements Data {
32
33
34 private final CommentsContainer commentsBlock;
35
36
37 private final ApmQuaternion quaternionBlock;
38
39
40 private final Euler eulerBlock;
41
42
43 private final SpinStabilized spinStabilizedBlock;
44
45
46 private final SpacecraftParameters spacecraftParameters;
47
48
49 private final List<Maneuver> maneuvers;
50
51
52
53
54
55
56
57
58 public ApmData(final CommentsContainer commentsBlock,
59 final ApmQuaternion quaternionBlock,
60 final Euler eulerBlock,
61 final SpinStabilized spinStabilizedBlock,
62 final SpacecraftParameters spacecraftParameters) {
63 this.commentsBlock = commentsBlock;
64 this.quaternionBlock = quaternionBlock;
65 this.eulerBlock = eulerBlock;
66 this.spinStabilizedBlock = spinStabilizedBlock;
67 this.spacecraftParameters = spacecraftParameters;
68 this.maneuvers = new ArrayList<>();
69 }
70
71
72 @Override
73 public void validate(final double version) {
74 quaternionBlock.validate(version);
75 if (eulerBlock != null) {
76 eulerBlock.validate(version);
77 }
78 if (spinStabilizedBlock != null) {
79 spinStabilizedBlock.validate(version);
80 }
81 if (spacecraftParameters != null) {
82 spacecraftParameters.validate(version);
83 }
84 for (final Maneuver maneuver : maneuvers) {
85 maneuver.validate(version);
86 }
87 }
88
89
90
91
92 public List<String> getComments() {
93 return commentsBlock.getComments();
94 }
95
96
97
98
99 public ApmQuaternion getQuaternionBlock() {
100 return quaternionBlock;
101 }
102
103
104
105
106 public Euler getEulerBlock() {
107 return eulerBlock;
108 }
109
110
111
112
113 public SpinStabilized getSpinStabilizedBlock() {
114 return spinStabilizedBlock;
115 }
116
117
118
119
120 public SpacecraftParameters getSpacecraftParametersBlock() {
121 return spacecraftParameters;
122 }
123
124
125
126
127
128 public int getNbManeuvers() {
129 return maneuvers.size();
130 }
131
132
133
134
135
136 public List<Maneuver> getManeuvers() {
137 return Collections.unmodifiableList(maneuvers);
138 }
139
140
141
142
143
144
145 public Maneuver getManeuver(final int index) {
146 return maneuvers.get(index);
147 }
148
149
150
151
152
153 public void addManeuver(final Maneuver maneuver) {
154 maneuvers.add(maneuver);
155 }
156
157
158
159
160
161
162 public boolean hasManeuvers() {
163 return !maneuvers.isEmpty();
164 }
165
166 }