Commit 6b8e786f authored by Riegel's avatar Riegel
Browse files

Refactor: Add CheckError-collection visitor

parent 7471e87c
...@@ -25,6 +25,7 @@ import java.util.List; ...@@ -25,6 +25,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import de.hft.stuttgart.citydoctor2.utils.CheckErrorFound; import de.hft.stuttgart.citydoctor2.utils.CheckErrorFound;
import de.hft.stuttgart.citydoctor2.utils.visitors.CheckableErrorCollector;
import de.hft.stuttgart.citydoctor2.utils.visitors.ContainsAnyErrorVisitor; import de.hft.stuttgart.citydoctor2.utils.visitors.ContainsAnyErrorVisitor;
import de.hft.stuttgart.citydoctor2.utils.visitors.ContainsErrorVisitor; import de.hft.stuttgart.citydoctor2.utils.visitors.ContainsErrorVisitor;
import de.hft.stuttgart.citydoctor2.utils.visitors.PrepareForCheckingVisitor; import de.hft.stuttgart.citydoctor2.utils.visitors.PrepareForCheckingVisitor;
...@@ -256,6 +257,16 @@ public abstract class Checkable implements Serializable { ...@@ -256,6 +257,16 @@ public abstract class Checkable implements Serializable {
* @param errors the collection in which the errors are added. * @param errors the collection in which the errors are added.
*/ */
public void collectContainedErrors(List<CheckError> errors) { public void collectContainedErrors(List<CheckError> errors) {
this.accept(new CheckableErrorCollector(errors));
}
/**
* Collects all errors from this checkable and adds
* them to the given list. DEPENDENCY_NOT_MET errors are excluded from this.
*
* @param errors the collection in which the errors are added.
*/
public void collectErrors(List<CheckError> errors) {
for (CheckResult cr : checkResults.values()) { for (CheckResult cr : checkResults.values()) {
if (cr.getResultStatus() == ResultStatus.ERROR) { if (cr.getResultStatus() == ResultStatus.ERROR) {
errors.add(cr.getError()); errors.add(cr.getError());
......
package de.hft.stuttgart.citydoctor2.utils.visitors;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.Checkable;
import java.util.List;
public class CheckableErrorCollector extends AbstractCheck {
List<CheckError> errors;
public CheckableErrorCollector(List<CheckError> errors) {
this.errors = errors;
}
@Override
public void check(Checkable checkable) {
checkable.collectErrors(errors);
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment