diff --git a/java/org/slub/rosetta/dps/repository/plugin/SLUBXmlValidationLogger.java b/java/org/slub/rosetta/dps/repository/plugin/SLUBXmlValidationLogger.java new file mode 100644 index 0000000000000000000000000000000000000000..66a4c9e121259eeb779280af0dd17af275064fec --- /dev/null +++ b/java/org/slub/rosetta/dps/repository/plugin/SLUBXmlValidationLogger.java @@ -0,0 +1,66 @@ +package org.slub.rosetta.dps.repository.plugin; + +import java.util.ArrayList; +import java.util.List; + +public class SLUBXmlValidationLogger { + private final List<String> log = new ArrayList<>(); + private boolean result = true; + private boolean isDebug; + public void error (String err) { + result = false; + log.add("[ERROR] " + err); + } + public void debug (String detail) { + log.add("[DEBUG] " + detail ); + } + public void info (String detail) { + log.add("[INFO] " + detail ); + } + public void fatal (String detail) { + result = false; + log.add("[FATAL] " + detail ); + } + public void warning (String detail) { + log.add("[WARN] " + detail ); + } + public void print( ValidationLevel level ) { + for (String e: log) { + switch ( level) { + case debug: if ( e.startsWith("[DEBUG]")) { System.out.println( e); } + case info: if ( e.startsWith("[INFO]")) { System.out.println( e); } + case warn: if ( e.startsWith("[WARN]")) { System.out.println( e); } + case error: if ( e.startsWith("[ERROR]")) { System.out.println( e); } + case fatal: if ( e.startsWith("[FATAL]")) { System.out.println( e); } + } + } + } + + public void setResult( boolean r) { + this.result = r; + } + public boolean getResult( ) { + return this.result; + } + public void clear() { + log.clear(); + this.result = true; + } + public List<String> getErrors() { + System.out.println("---------------->"); + print(ValidationLevel.debug); + System.out.println("<----------------"); + return log + .stream() + .filter(f -> f.startsWith("[ERROR]") || f.startsWith("FATAL")) + .toList() + ; + } + public String getLog() { + return log + .stream() + .filter(f -> !f.startsWith("[DEBUG]")) + .reduce( "\n", String::concat) + ; + } +}