Skip to content

Commit 3fcdca3

Browse files
Avoided usage of RuntimeException in time series processor map creation
1 parent f83abfb commit 3fcdca3

File tree

2 files changed

+26
-15
lines changed

2 files changed

+26
-15
lines changed

src/main/java/edu/ie3/datamodel/io/processor/ProcessorProvider.java

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package edu.ie3.datamodel.io.processor;
77

88
import edu.ie3.datamodel.exceptions.EntityProcessorException;
9+
import edu.ie3.datamodel.exceptions.FailureException;
910
import edu.ie3.datamodel.exceptions.ProcessorProviderException;
1011
import edu.ie3.datamodel.io.processor.input.InputEntityProcessor;
1112
import edu.ie3.datamodel.io.processor.result.ResultEntityProcessor;
@@ -19,6 +20,7 @@
1920
import edu.ie3.datamodel.models.value.Value;
2021
import edu.ie3.datamodel.utils.Try;
2122
import java.util.*;
23+
import java.util.function.Function;
2224
import java.util.stream.Collectors;
2325

2426
/**
@@ -275,21 +277,26 @@ public static Collection<EntityProcessor<? extends UniqueEntity>> allResultEntit
275277
TimeSeriesProcessorKey,
276278
TimeSeriesProcessor<
277279
TimeSeries<TimeSeriesEntry<Value>, Value>, TimeSeriesEntry<Value>, Value>>
278-
allTimeSeriesProcessors() {
279-
return TimeSeriesProcessor.eligibleKeys.stream()
280-
.collect(
281-
Collectors.toMap(
282-
key -> key,
283-
key -> {
284-
try {
285-
return new TimeSeriesProcessor<>(
286-
(Class<TimeSeries<TimeSeriesEntry<Value>, Value>>) key.getTimeSeriesClass(),
287-
(Class<TimeSeriesEntry<Value>>) key.getEntryClass(),
288-
(Class<Value>) key.getValueClass());
289-
} catch (EntityProcessorException e) {
290-
throw new RuntimeException(e);
291-
}
292-
}));
280+
allTimeSeriesProcessors() throws EntityProcessorException {
281+
try {
282+
return Try.scanStream(
283+
TimeSeriesProcessor.eligibleKeys.stream()
284+
.map(
285+
key ->
286+
Try.of(
287+
() ->
288+
new TimeSeriesProcessor<>(
289+
(Class<TimeSeries<TimeSeriesEntry<Value>, Value>>)
290+
key.getTimeSeriesClass(),
291+
(Class<TimeSeriesEntry<Value>>) key.getEntryClass(),
292+
(Class<Value>) key.getValueClass()),
293+
EntityProcessorException.class)),
294+
"list of processors")
295+
.getOrThrow()
296+
.collect(Collectors.toMap(TimeSeriesProcessor::getRegisteredKey, Function.identity()));
297+
} catch (FailureException e) {
298+
throw new EntityProcessorException(e.getCause());
299+
}
293300
}
294301

295302
@SuppressWarnings("unchecked cast")

src/main/java/edu/ie3/datamodel/io/processor/timeseries/TimeSeriesProcessor.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,10 @@ public TimeSeriesProcessor(Class<T> timeSeriesClass, Class<E> entryClass, Class<
9292
this.flattenedHeaderElements = fieldToSource.keySet().toArray(new String[0]);
9393
}
9494

95+
public TimeSeriesProcessorKey getRegisteredKey() {
96+
return registeredKey;
97+
}
98+
9599
/**
96100
* Collects the mapping, where to find which information and how to get them (in terms of getter
97101
* method).

0 commit comments

Comments
 (0)