Skip to content

Commit cb61b13

Browse files
(#2982) Handle a dataset with no measurements of a run type
1 parent ed6bb55 commit cb61b13

File tree

1 file changed

+29
-9
lines changed

1 file changed

+29
-9
lines changed

WebApp/src/uk/ac/exeter/QuinCe/data/Dataset/DatasetMeasurements.java

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -208,23 +208,43 @@ public TreeSet<Measurement> getMeasurementsInSameRun(long variableId,
208208
public TreeSet<Measurement> getRunBefore(long variableId, String runType,
209209
LocalDateTime time) {
210210

211-
Optional<Measurement> lastBefore = getMeasurements(variableId, runType)
212-
.stream().filter(m -> m.getTime().isBefore(time))
213-
.reduce((first, second) -> second);
211+
TreeSet<Measurement> result;
214212

215-
return lastBefore.isEmpty() ? new TreeSet<Measurement>()
216-
: getMeasurementsInSameRun(variableId, lastBefore.get());
213+
List<Measurement> measurements = getMeasurements(variableId, runType);
217214

215+
if (null == measurements) {
216+
result = new TreeSet<Measurement>();
217+
} else {
218+
219+
Optional<Measurement> lastBefore = getMeasurements(variableId, runType)
220+
.stream().filter(m -> m.getTime().isBefore(time))
221+
.reduce((first, second) -> second);
222+
223+
result = lastBefore.isEmpty() ? new TreeSet<Measurement>()
224+
: getMeasurementsInSameRun(variableId, lastBefore.get());
225+
}
226+
227+
return result;
218228
}
219229

220230
public TreeSet<Measurement> getRunAfter(long variableId, String runType,
221231
LocalDateTime time) {
222232

223-
Optional<Measurement> firstAfter = getMeasurements(variableId, runType)
224-
.stream().filter(m -> m.getTime().isAfter(time)).findFirst();
233+
TreeSet<Measurement> result;
225234

226-
return firstAfter.isEmpty() ? new TreeSet<Measurement>()
227-
: getMeasurementsInSameRun(variableId, firstAfter.get());
235+
List<Measurement> measurements = getMeasurements(variableId, runType);
236+
237+
if (null == measurements) {
238+
result = new TreeSet<Measurement>();
239+
} else {
240+
Optional<Measurement> firstAfter = getMeasurements(variableId, runType)
241+
.stream().filter(m -> m.getTime().isAfter(time)).findFirst();
242+
243+
result = firstAfter.isEmpty() ? new TreeSet<Measurement>()
244+
: getMeasurementsInSameRun(variableId, firstAfter.get());
245+
}
246+
247+
return result;
228248

229249
}
230250

0 commit comments

Comments
 (0)