Skip to content

Commit 28756ae

Browse files
committed
Improving the messages and the format of exceptions.
1 parent 0a9e861 commit 28756ae

33 files changed

+222
-231
lines changed

src/main/java/edu/ie3/datamodel/exceptions/DuplicateEntitiesException.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public DuplicateEntitiesException(
1919
this(
2020
"The following exception(s) occurred while checking the uniqueness of '"
2121
+ entityName
22-
+ "' entities: "
23-
+ ExceptionUtils.getMessages(exceptions));
22+
+ "' entities: \n"
23+
+ ExceptionUtils.combineExceptions(exceptions));
2424
}
2525
}

src/main/java/edu/ie3/datamodel/exceptions/FailedValidationException.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ public FailedValidationException(String message) {
2323

2424
/** @param exceptions List of exceptions, which must not be empty */
2525
public FailedValidationException(List<? extends Exception> exceptions) {
26-
super(
27-
"Validation failed due to: \n" + ExceptionUtils.getMessages(exceptions), exceptions.get(0));
26+
super("Validation failed due to: " + ExceptionUtils.combineExceptions(exceptions));
2827
}
2928
}

src/main/java/edu/ie3/datamodel/exceptions/InvalidEntityException.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,12 @@ public class InvalidEntityException extends ValidationException {
1313
private static final long serialVersionUID = 809496087520306374L;
1414

1515
public InvalidEntityException(String faultDescription, UniqueEntity invalidEntity) {
16-
super("Entity is invalid because of: \n" + faultDescription + " [" + invalidEntity + "]");
16+
super("Entity is invalid because of: " + faultDescription + " [" + invalidEntity + "]");
1717
}
1818

1919
public InvalidEntityException(
2020
String faultDescription, Throwable cause, UniqueEntity invalidEntity) {
21-
super(
22-
"Entity is invalid because of: \n" + faultDescription + " [" + invalidEntity + "]", cause);
21+
super("Entity is invalid because of: " + faultDescription + " [" + invalidEntity + "]", cause);
2322
}
2423

2524
public InvalidEntityException(String message, Throwable cause) {

src/main/java/edu/ie3/datamodel/exceptions/SourceException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@ public SourceException(final String message) {
3232
}
3333

3434
public SourceException(String message, List<? extends Exception> exceptions) {
35-
super(message + " " + ExceptionUtils.getMessages(exceptions), exceptions.get(0));
35+
super(message + "\n " + ExceptionUtils.combineExceptions(exceptions));
3636
}
3737
}

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

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

88
import edu.ie3.datamodel.exceptions.EntityProcessorException;
9-
import edu.ie3.datamodel.exceptions.FailureException;
109
import edu.ie3.datamodel.exceptions.ProcessorProviderException;
1110
import edu.ie3.datamodel.io.processor.input.InputEntityProcessor;
1211
import edu.ie3.datamodel.io.processor.result.ResultEntityProcessor;
@@ -313,25 +312,22 @@ public static Collection<EntityProcessor<? extends Entity>> allResultEntityProce
313312
Value,
314313
Value>>
315314
allTimeSeriesProcessors() throws EntityProcessorException {
316-
try {
317-
return Try.scanStream(
318-
TimeSeriesProcessor.eligibleKeys.stream()
319-
.map(
320-
key ->
321-
Try.of(
322-
() ->
323-
new TimeSeriesProcessor<>(
324-
(Class<TimeSeries<TimeSeriesEntry<Value>, Value, Value>>)
325-
key.getTimeSeriesClass(),
326-
(Class<TimeSeriesEntry<Value>>) key.getEntryClass(),
327-
(Class<Value>) key.getValueClass()),
328-
EntityProcessorException.class)),
329-
"list of processors")
330-
.getOrThrow()
331-
.collect(Collectors.toMap(TimeSeriesProcessor::getRegisteredKey, Function.identity()));
332-
} catch (FailureException e) {
333-
throw new EntityProcessorException(e.getCause());
334-
}
315+
return Try.scanStream(
316+
TimeSeriesProcessor.eligibleKeys.stream()
317+
.map(
318+
key ->
319+
Try.of(
320+
() ->
321+
new TimeSeriesProcessor<>(
322+
(Class<TimeSeries<TimeSeriesEntry<Value>, Value, Value>>)
323+
key.getTimeSeriesClass(),
324+
(Class<TimeSeriesEntry<Value>>) key.getEntryClass(),
325+
(Class<Value>) key.getValueClass()),
326+
EntityProcessorException.class)),
327+
"time series processors",
328+
EntityProcessorException::new)
329+
.getOrThrow()
330+
.collect(Collectors.toMap(TimeSeriesProcessor::getRegisteredKey, Function.identity()));
335331
}
336332

337333
@SuppressWarnings("unchecked cast")

src/main/java/edu/ie3/datamodel/io/source/EntitySource.java

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -204,14 +204,12 @@ protected static <E extends Entity, D extends EntityData> Stream<E> getEntities(
204204
* @return a stream of the entity data wrapped in a {@link Try}
205205
*/
206206
protected static Stream<Try<EntityData, SourceException>> buildEntityData(
207-
Class<? extends Entity> entityClass, DataSource dataSource) {
208-
return Try.of(() -> dataSource.getSourceData(entityClass), SourceException.class)
209-
.convert(
210-
data ->
211-
data.map(
212-
fieldsToAttributes ->
213-
new Try.Success<>(new EntityData(fieldsToAttributes, entityClass))),
214-
exception -> Stream.of(Failure.of(exception)));
207+
Class<? extends Entity> entityClass, DataSource dataSource) throws SourceException {
208+
Stream<Map<String, String>> dataStream =
209+
Try.of(() -> dataSource.getSourceData(entityClass), SourceException.class).getOrThrow();
210+
211+
return dataStream.map(
212+
fieldsToAttributes -> new Try.Success<>(new EntityData(fieldsToAttributes, entityClass)));
215213
}
216214

217215
/**
@@ -227,7 +225,8 @@ protected static Stream<Try<EntityData, SourceException>> buildEntityData(
227225
protected static <E extends EntityData> Stream<Try<E, SourceException>> buildEntityData(
228226
Class<? extends Entity> entityClass,
229227
DataSource dataSource,
230-
WrappedFunction<EntityData, E> converter) {
228+
WrappedFunction<EntityData, E> converter)
229+
throws SourceException {
231230
return buildEntityData(entityClass, dataSource).map(converter);
232231
}
233232

@@ -356,9 +355,7 @@ Function<Pair<E, T>, R> enrichFunction(
356355
*/
357356
protected static <S, E extends Exception> Stream<S> unpack(
358357
Stream<Try<S, E>> inputStream, Class<S> clazz) throws SourceException {
359-
return Try.scanStream(inputStream, clazz.getSimpleName())
360-
.transformF(SourceException::new)
361-
.getOrThrow();
358+
return Try.scanStream(inputStream, clazz.getSimpleName(), SourceException::new).getOrThrow();
362359
}
363360

364361
/**

src/main/java/edu/ie3/datamodel/io/source/GraphicSource.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ public void validate() throws ValidationException {
5959
Stream.of(
6060
validate(NodeGraphicInput.class, dataSource, nodeGraphicInputFactory),
6161
validate(LineGraphicInput.class, dataSource, lineGraphicInputFactory)),
62-
"Validation")
63-
.transformF(FailedValidationException::new)
62+
"Validation",
63+
FailedValidationException::new)
6464
.getOrThrow();
6565
}
6666

@@ -95,12 +95,11 @@ public GraphicElements getGraphicElements(Map<UUID, NodeInput> nodes, Map<UUID,
9595
Try<Set<LineGraphicInput>, SourceException> lineGraphics =
9696
Try.of(() -> getLineGraphicInput(lines), SourceException.class);
9797

98-
List<SourceException> exceptions = Try.getExceptions(List.of(nodeGraphics, lineGraphics));
98+
List<SourceException> exceptions = Try.getExceptions(nodeGraphics, lineGraphics);
9999

100100
if (!exceptions.isEmpty()) {
101101
throw new GraphicSourceException(
102-
exceptions.size() + " error(s) occurred while initializing graphic elements. ",
103-
exceptions);
102+
"Some exception(s) occurred while initializing graphic elements. ", exceptions);
104103
} else {
105104
// if everything is fine, return a GraphicElements instance
106105
// getOrThrow should not throw an exception in this context, because all exception are

src/main/java/edu/ie3/datamodel/io/source/RawGridSource.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,19 @@
55
*/
66
package edu.ie3.datamodel.io.source;
77

8-
import edu.ie3.datamodel.exceptions.*;
8+
import edu.ie3.datamodel.exceptions.FailedValidationException;
9+
import edu.ie3.datamodel.exceptions.RawGridException;
10+
import edu.ie3.datamodel.exceptions.SourceException;
11+
import edu.ie3.datamodel.exceptions.ValidationException;
912
import edu.ie3.datamodel.io.factory.EntityData;
1013
import edu.ie3.datamodel.io.factory.input.*;
11-
import edu.ie3.datamodel.models.input.*;
12-
import edu.ie3.datamodel.models.input.connector.*;
14+
import edu.ie3.datamodel.models.input.MeasurementUnitInput;
15+
import edu.ie3.datamodel.models.input.NodeInput;
16+
import edu.ie3.datamodel.models.input.OperatorInput;
17+
import edu.ie3.datamodel.models.input.connector.LineInput;
18+
import edu.ie3.datamodel.models.input.connector.SwitchInput;
19+
import edu.ie3.datamodel.models.input.connector.Transformer2WInput;
20+
import edu.ie3.datamodel.models.input.connector.Transformer3WInput;
1321
import edu.ie3.datamodel.models.input.connector.type.LineTypeInput;
1422
import edu.ie3.datamodel.models.input.connector.type.Transformer2WTypeInput;
1523
import edu.ie3.datamodel.models.input.connector.type.Transformer3WTypeInput;
@@ -62,8 +70,8 @@ public void validate() throws ValidationException {
6270
validate(Transformer3WInput.class, dataSource, transformer3WInputFactory),
6371
validate(SwitchInput.class, dataSource, switchInputFactory),
6472
validate(MeasurementUnitInput.class, dataSource, measurementUnitInputFactory)),
65-
"Validation")
66-
.transformF(FailedValidationException::new)
73+
"Validation",
74+
FailedValidationException::new)
6775
.getOrThrow();
6876
}
6977

@@ -146,12 +154,11 @@ public RawGridElements getGridData(
146154
Try.of(() -> getMeasurementUnits(operators, nodes), SourceException.class);
147155

148156
List<SourceException> exceptions =
149-
Try.getExceptions(
150-
List.of(transformer2WInputs, transformer3WInputs, switches, measurementUnits));
157+
Try.getExceptions(transformer2WInputs, transformer3WInputs, switches, measurementUnits);
151158

152159
if (!exceptions.isEmpty()) {
153160
throw new RawGridException(
154-
exceptions.size() + " error(s) occurred while initializing raw grid. ", exceptions);
161+
"Some exception(s) occurred while initializing raw grid.", exceptions);
155162
} else {
156163
/* build and return the grid if it is not empty */
157164
// getOrThrow should not throw an exception in this context, because all exception are

src/main/java/edu/ie3/datamodel/io/source/ResultEntitySource.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,7 @@ public void validate() throws ValidationException {
105105
validate(FlexOptionsResult.class, dataSource, flexOptionsResultFactory),
106106
validate(CongestionResult.class, dataSource, congestionResultFactory)));
107107

108-
Try.scanCollection(participantResults, Void.class)
109-
.transformF(FailedValidationException::new)
110-
.getOrThrow();
108+
Try.scanCollection(participantResults, Void.class, FailedValidationException::new).getOrThrow();
111109
}
112110

113111
/**

src/main/java/edu/ie3/datamodel/io/source/SystemParticipantSource.java

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,8 @@ public void validate() throws ValidationException {
110110
validate(StorageInput.class, dataSource, storageInputFactory),
111111
validate(WecInput.class, dataSource, wecInputFactory),
112112
validate(EvcsInput.class, dataSource, evcsInputFactory)),
113-
"Validation")
114-
.transformF(FailedValidationException::new)
113+
"Validation",
114+
FailedValidationException::new)
115115
.getOrThrow();
116116
}
117117

@@ -212,22 +212,20 @@ public SystemParticipants getSystemParticipants(
212212

213213
List<SourceException> exceptions =
214214
Try.getExceptions(
215-
List.of(
216-
fixedFeedInInputs,
217-
pvInputs,
218-
loads,
219-
bmInputs,
220-
storages,
221-
wecInputs,
222-
evs,
223-
evcs,
224-
chpInputs,
225-
hpInputs));
215+
fixedFeedInInputs,
216+
pvInputs,
217+
loads,
218+
bmInputs,
219+
storages,
220+
wecInputs,
221+
evs,
222+
evcs,
223+
chpInputs,
224+
hpInputs);
226225

227226
if (!exceptions.isEmpty()) {
228227
throw new SystemParticipantsException(
229-
exceptions.size() + " error(s) occurred while initializing system participants. ",
230-
exceptions);
228+
"Some exception(s) occurred while initializing system participants.", exceptions);
231229
} else {
232230
// if everything is fine, return a system participants container
233231
// getOrThrow should not throw an exception in this context, because all exception are

0 commit comments

Comments
 (0)