Refactor project validation, add test
[jSite.git] / src / main / java / de / todesbaum / jsite / application / validation / CheckReport.java
diff --git a/src/main/java/de/todesbaum/jsite/application/validation/CheckReport.java b/src/main/java/de/todesbaum/jsite/application/validation/CheckReport.java
new file mode 100644 (file)
index 0000000..7a10c36
--- /dev/null
@@ -0,0 +1,37 @@
+package de.todesbaum.jsite.application.validation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import de.todesbaum.jsite.application.Project;
+
+/**
+ * Container class that collects all warnings and errors that occured during
+ * {@link ProjectValidator#validateProject(Project) project validation}.
+ *
+ * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
+ */
+public class CheckReport implements Iterable<Issue> {
+
+       private final List<Issue> issues = new ArrayList<>();
+
+       void addIssue(String errorKey, boolean fatal, String... parameters) {
+               issues.add(new Issue(errorKey, fatal, parameters));
+       }
+
+       public Collection<Issue> getIssues() {
+               return issues;
+       }
+
+       @Override
+       public Iterator<Issue> iterator() {
+               return issues.iterator();
+       }
+
+       public boolean isEmpty() {
+               return issues.isEmpty();
+       }
+
+}