From b026dacd1af1970fb27f13783e039415cc862015 Mon Sep 17 00:00:00 2001 From: J08nY Date: Sat, 30 Mar 2024 19:16:44 +0100 Subject: Allow output splitting for standalone as well. --- .../ectester/common/output/BaseFileTestWriter.java | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 common/src/main/java/cz/crcs/ectester/common/output/BaseFileTestWriter.java (limited to 'common/src') diff --git a/common/src/main/java/cz/crcs/ectester/common/output/BaseFileTestWriter.java b/common/src/main/java/cz/crcs/ectester/common/output/BaseFileTestWriter.java new file mode 100644 index 0000000..523a92f --- /dev/null +++ b/common/src/main/java/cz/crcs/ectester/common/output/BaseFileTestWriter.java @@ -0,0 +1,27 @@ +package cz.crcs.ectester.common.output; + +import javax.xml.parsers.ParserConfigurationException; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.PrintStream; + +public abstract class BaseFileTestWriter extends TeeTestWriter { + + public BaseFileTestWriter(String defaultFormat, boolean systemOut, String[] files) throws ParserConfigurationException, FileNotFoundException { + int fLength = files == null ? 0 : files.length; + writers = new TestWriter[systemOut ? fLength + 1 : fLength]; + if (systemOut) { + writers[0] = createWriter(defaultFormat, System.out); + } + for (int i = 0; i < fLength; ++i) { + String[] matched = matchName(files[i]); + String format = matched[0]; + String fName = matched[1]; + writers[i + 1] = createWriter(format, new PrintStream(new FileOutputStream(fName))); + } + } + + protected abstract String[] matchName(String name); + + protected abstract TestWriter createWriter(String format, PrintStream out) throws ParserConfigurationException; +} -- cgit v1.2.3-70-g09d2