Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
58ca672
Improving.
staudtMarius Mar 6, 2023
438e3b4
Improving ``ValidationUtils``.
staudtMarius Mar 8, 2023
16dc44c
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius Mar 9, 2023
86c91ac
Merge branch 'ms/#707-Refactor-data-sources-to-throw-exceptions-inste…
staudtMarius Mar 9, 2023
db202f5
Updating CHANGELOG.
staudtMarius Mar 9, 2023
c145bbd
Improving `ValidationUtils`.
staudtMarius Mar 10, 2023
1ae4c04
Merge branch 'ms/#707-Refactor-data-sources-to-throw-exceptions-inste…
staudtMarius Mar 11, 2023
b655ebe
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius Mar 13, 2023
94f5da1
Adapting tests.
staudtMarius Mar 13, 2023
9e68d90
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius Apr 11, 2023
3cd33c9
Adding some new features.
staudtMarius Apr 11, 2023
f8667c3
Adding tests.
staudtMarius Apr 12, 2023
5520c48
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius Apr 18, 2023
54ecf77
fmt
staudtMarius Apr 18, 2023
9a5c7a6
Improving ``GridContainerValidationUtils``
staudtMarius Apr 18, 2023
3806ab2
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius Apr 20, 2023
fe7ea69
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius Apr 24, 2023
fb294de
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius Apr 24, 2023
e95c356
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius May 2, 2023
81d87ba
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius May 4, 2023
6720d02
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius May 9, 2023
ca16f51
fmt
staudtMarius May 9, 2023
edb56c7
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius May 15, 2023
2c3e49f
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius May 16, 2023
b7e8eb6
Adapting to changes.
staudtMarius May 16, 2023
6e596fe
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius May 22, 2023
6f5ded4
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius May 25, 2023
210425a
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius May 30, 2023
cbb75ee
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius Jun 7, 2023
b8aead1
Merge branch 'ms/#707-Refactor-data-sources-to-throw-exceptions-inste…
staudtMarius Jun 29, 2023
3dc162b
Adapting to changes.
staudtMarius Jun 29, 2023
1ae94b8
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius Jul 19, 2023
2a8e897
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius Jul 26, 2023
863b5fe
Adapting ``ValidationUtils`` to the recent changes in ``Try``.
staudtMarius Jul 26, 2023
403e326
Fixing some ``sonarqube`` issues.
staudtMarius Jul 27, 2023
d6bab5b
Fixing failing test.
staudtMarius Jul 27, 2023
fde8699
Fixing ``sonatype`` isuue.
staudtMarius Jul 27, 2023
8e3365f
Fixing ``codacy`` isuue.
staudtMarius Jul 27, 2023
d574534
Fixing ``sonarqube`` isuue.
staudtMarius Jul 27, 2023
32bc1bd
Some improvements.
staudtMarius Jul 27, 2023
0df2058
Merge branch 'dev' into ms/#758-improving-ValidationUtils
staudtMarius Jul 28, 2023
0f7ee8f
Some improvements.
staudtMarius Jul 28, 2023
807ac08
Some improvements.
staudtMarius Jul 28, 2023
aeb98fd
Merge remote-tracking branch 'origin/ms/#758-improving-ValidationUtil…
staudtMarius Jul 28, 2023
363927c
Fixing failing test.
staudtMarius Jul 28, 2023
673e9d3
Fixing ``codacy`` issue.
staudtMarius Jul 28, 2023
ecd43a9
Suggestion: Optimized structure of Try
sebastian-peter Jul 28, 2023
ce7d148
Fixing CsvRawGridSourceTest
sebastian-peter Jul 28, 2023
a2e0063
Fixing code smell
sebastian-peter Jul 28, 2023
b52d845
Fixing codacy issue
sebastian-peter Jul 30, 2023
06b4066
Minor changes.
staudtMarius Jul 30, 2023
7014bb6
Renaming childInstance() to the more fitting thisInstance()
sebastian-peter Jul 31, 2023
fd688fb
Fixing code smell
sebastian-peter Jul 31, 2023
26c9aab
Renaming remaining childInstance() methods
sebastian-peter Jul 31, 2023
0f8a390
Further simplifications
sebastian-peter Jul 31, 2023
7d62119
Adding some @Override notations and abstract method definitions
sebastian-peter Jul 31, 2023
ac7564a
Reinstated removed method
sebastian-peter Jul 31, 2023
b2df229
Improved formatting of failure messages
sebastian-peter Jul 31, 2023
47d307b
Fixing test
sebastian-peter Jul 31, 2023
0767e27
Fixing ValidationUtilsTest
sebastian-peter Jul 31, 2023
e80502b
Fixing TryTest
sebastian-peter Jul 31, 2023
a66754e
Codacy issues
sebastian-peter Jul 31, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/*
* © 2023. TU Dortmund University,
* Institute of Energy Systems, Energy Efficiency and Energy Economics,
* Research group Distribution grid planning and operation
*/
package edu.ie3.datamodel.exceptions;

public class FailedValidationException extends ValidationException {
public FailedValidationException(String s) {
super(s);
}

public FailedValidationException(String s, Throwable throwable) {
super(s, throwable);
}
}
14 changes: 14 additions & 0 deletions src/main/java/edu/ie3/datamodel/utils/ExceptionUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
*/
package edu.ie3.datamodel.utils;

import java.util.ArrayList;
import java.util.List;

public class ExceptionUtils {
Expand All @@ -20,4 +21,17 @@ public static String getMessages(List<? extends Exception> exceptions) {
.map(Throwable::getMessage)
.reduce(firstInList.getMessage(), (a, b) -> a + ", " + b);
}

/**
* Creates a new {@link Exception} for multiple given exceptions. The new exception contains all
* messages of the given exceptions.
*
* @param exceptions list of exceptions
* @return new exceptions
*/
public static Exception getExceptions(List<? extends Exception> exceptions) {
ArrayList<? extends Exception> list = new ArrayList<>(exceptions);
String messages = getMessages(list);
return new Exception(messages);
}
}

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@
import edu.ie3.datamodel.models.input.graphics.GraphicInput;
import edu.ie3.datamodel.models.input.graphics.LineGraphicInput;
import edu.ie3.datamodel.models.input.graphics.NodeGraphicInput;
import edu.ie3.datamodel.utils.ExceptionUtils;
import edu.ie3.datamodel.utils.options.Failure;
import edu.ie3.datamodel.utils.options.Success;
import edu.ie3.datamodel.utils.options.Try;
import java.util.List;
import java.util.stream.Stream;

public class GraphicValidationUtils extends ValidationUtils {

Expand All @@ -26,19 +32,51 @@ private GraphicValidationUtils() {
* fulfill the checking task, based on the class of the given object.
*
* @param graphicInput GraphicInput to validate
* @throws edu.ie3.datamodel.exceptions.NotImplementedException if an unknown class is handed in
* @return a try object either containing an {@link InvalidEntityException} or an empty Success
*/
protected static void check(GraphicInput graphicInput) {
checkNonNull(graphicInput, "a graphic input");
if (graphicInput.getGraphicLayer() == null)
throw new InvalidEntityException(
"Graphic Layer of graphic element is not defined", graphicInput);
protected static Try<Void, InvalidEntityException> check(GraphicInput graphicInput) {
try {
checkNonNull(graphicInput, "a graphic input");
} catch (InvalidEntityException e) {
return new Failure<>(
new InvalidEntityException(
"Validation not possible because received object {" + graphicInput + "} was null",
e));
}

Try<Void, InvalidEntityException> layer;

if (graphicInput.getGraphicLayer() == null) {
layer =
new Failure<>(
new InvalidEntityException(
"Graphic Layer of graphic element is not defined", graphicInput));
} else {
layer = Success.empty();
}

Try<Void, InvalidEntityException> graphic;

// Further checks for subclasses
if (LineGraphicInput.class.isAssignableFrom(graphicInput.getClass()))
checkLineGraphicInput((LineGraphicInput) graphicInput);
if (NodeGraphicInput.class.isAssignableFrom(graphicInput.getClass()))
checkNodeGraphicInput((NodeGraphicInput) graphicInput);
if (LineGraphicInput.class.isAssignableFrom(graphicInput.getClass())) {
graphic = Try.apply(() -> checkLineGraphicInput((LineGraphicInput) graphicInput));
} else if (NodeGraphicInput.class.isAssignableFrom(graphicInput.getClass())) {
graphic = Try.apply(() -> checkNodeGraphicInput((NodeGraphicInput) graphicInput));
} else {
graphic = Success.empty();
}

List<InvalidEntityException> exceptions =
Stream.of(layer, graphic).filter(Try::isFailure).map(Try::getException).toList();

if (exceptions.size() > 0) {
return new Failure<>(
new InvalidEntityException(
"Validation failed due to the following exception(s): ",
new Throwable(ExceptionUtils.getMessages(exceptions))));
} else {
return Success.empty();
}
}

/**
Expand Down
Loading