@@ -176,35 +176,40 @@ private void checkData(OwsServiceRequest request, AbstractObservationResponse re
176
176
Map <String , List <OmObservation >> map = Maps .newHashMap ();
177
177
while (response .getObservationCollection ().hasNext ()) {
178
178
OmObservation omObservation = response .getObservationCollection ().next ();
179
+ String observationType = checkForObservationTypeForStreaming (omObservation , request );
179
180
if (omObservation .getValue () instanceof StreamingValue <?>) {
180
181
if (checkRequestedObservationTypeForOffering (omObservation , request )) {
181
- String observationType = checkForObservationTypeForStreaming (omObservation , request );
182
182
while (((StreamingValue <?>) omObservation .getValue ()).hasNext ()) {
183
183
OmObservation observation = ((StreamingValue <?>) omObservation .getValue ()).next ();
184
- if (InspireOMSOConstants .OBS_TYPE_PROFILE_OBSERVATION .equals (observationType )) {
185
- putOrAdd (map , InspireOMSOConstants .OBS_TYPE_PROFILE_OBSERVATION ,
186
- convertToProfileObservations (observation ));
187
- } else if (InspireOMSOConstants .OBS_TYPE_TRAJECTORY_OBSERVATION .equals (observationType )) {
188
- putOrAdd (map , InspireOMSOConstants .OBS_TYPE_TRAJECTORY_OBSERVATION ,
189
- convertToTrajectoryObservations (observation ));
190
- } else if (InspireOMSOConstants .OBS_TYPE_MULTI_POINT_OBSERVATION .equals (observationType )) {
191
- putOrAdd (map , InspireOMSOConstants .OBS_TYPE_MULTI_POINT_OBSERVATION ,
192
- convertToMultiPointObservations (observation ));
193
- } else if (InspireOMSOConstants .OBS_TYPE_POINT_TIME_SERIES_OBSERVATION
194
- .equals (observationType )) {
195
- putOrAdd (map , InspireOMSOConstants .OBS_TYPE_POINT_TIME_SERIES_OBSERVATION ,
196
- convertToPointTimeSeriesObservations (observation ));
197
- } else if (InspireOMSOConstants .OBS_TYPE_POINT_OBSERVATION .equals (observationType )) {
198
- putOrAdd (map , InspireOMSOConstants .OBS_TYPE_POINT_OBSERVATION ,
199
- convertToPointObservations (observation ));
200
- }
184
+ checkAndPutOrAdd (observation , map , observationType );
201
185
}
202
186
}
187
+ } else {
188
+ checkAndPutOrAdd (omObservation , map , observationType );
203
189
}
204
190
}
205
191
response .setObservationCollection (mergeObservations (map ));
206
192
}
207
193
194
+ private void checkAndPutOrAdd (OmObservation observation , Map <String , List <OmObservation >> map ,
195
+ String observationType ) throws CodedException {
196
+ if (InspireOMSOConstants .OBS_TYPE_PROFILE_OBSERVATION .equals (observationType )) {
197
+ putOrAdd (map , InspireOMSOConstants .OBS_TYPE_PROFILE_OBSERVATION ,
198
+ convertToProfileObservations (observation ));
199
+ } else if (InspireOMSOConstants .OBS_TYPE_TRAJECTORY_OBSERVATION .equals (observationType )) {
200
+ putOrAdd (map , InspireOMSOConstants .OBS_TYPE_TRAJECTORY_OBSERVATION ,
201
+ convertToTrajectoryObservations (observation ));
202
+ } else if (InspireOMSOConstants .OBS_TYPE_MULTI_POINT_OBSERVATION .equals (observationType )) {
203
+ putOrAdd (map , InspireOMSOConstants .OBS_TYPE_MULTI_POINT_OBSERVATION ,
204
+ convertToMultiPointObservations (observation ));
205
+ } else if (InspireOMSOConstants .OBS_TYPE_POINT_TIME_SERIES_OBSERVATION .equals (observationType )) {
206
+ putOrAdd (map , InspireOMSOConstants .OBS_TYPE_POINT_TIME_SERIES_OBSERVATION ,
207
+ convertToPointTimeSeriesObservations (observation ));
208
+ } else if (InspireOMSOConstants .OBS_TYPE_POINT_OBSERVATION .equals (observationType )) {
209
+ putOrAdd (map , InspireOMSOConstants .OBS_TYPE_POINT_OBSERVATION , convertToPointObservations (observation ));
210
+ }
211
+ }
212
+
208
213
/**
209
214
* Merge the observations depending on their observationType
210
215
*
0 commit comments