diff options
| author | J08nY | 2018-07-29 18:34:58 +0200 |
|---|---|---|
| committer | J08nY | 2018-07-29 18:34:58 +0200 |
| commit | d24630d759bb16f715564ab80a5d4447f57d03f2 (patch) | |
| tree | c30699e723a8ed31ea354be7e76eb16c1b681f04 /src/cz/crcs/ectester/reader/output/FileTestWriter.java | |
| parent | cb6c6b8b1274fe5a340c4317a4b015ea0ef15396 (diff) | |
| parent | 07d0c8947ef0d0f4c0ae01c1d8699d24a892752d (diff) | |
| download | ECTester-d24630d759bb16f715564ab80a5d4447f57d03f2.tar.gz ECTester-d24630d759bb16f715564ab80a5d4447f57d03f2.tar.zst ECTester-d24630d759bb16f715564ab80a5d4447f57d03f2.zip | |
Merge branch 'devel'
Diffstat (limited to 'src/cz/crcs/ectester/reader/output/FileTestWriter.java')
| -rw-r--r-- | src/cz/crcs/ectester/reader/output/FileTestWriter.java | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/cz/crcs/ectester/reader/output/FileTestWriter.java b/src/cz/crcs/ectester/reader/output/FileTestWriter.java new file mode 100644 index 0000000..e4ef9b8 --- /dev/null +++ b/src/cz/crcs/ectester/reader/output/FileTestWriter.java @@ -0,0 +1,53 @@ +package cz.crcs.ectester.reader.output; + +import cz.crcs.ectester.common.output.TeeTestWriter; +import cz.crcs.ectester.common.output.TestWriter; + +import javax.xml.parsers.ParserConfigurationException; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.PrintStream; +import java.util.regex.Pattern; + +/** + * @author Jan Jancar johny@neuromancer.sk + */ +public class FileTestWriter extends TeeTestWriter { + + private static final Pattern PREFIX = Pattern.compile("(text|xml|yaml|yml):.+"); + + public FileTestWriter(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 fName = files[i]; + String format = null; + if (PREFIX.matcher(fName).matches()) { + String[] split = fName.split(":",2); + format = split[0]; + fName = split[1]; + } + writers[i + 1] = createWriter(format, new PrintStream(new FileOutputStream(fName))); + } + } + + private TestWriter createWriter(String format, PrintStream out) throws ParserConfigurationException { + if (format == null) { + return new TextTestWriter(out); + } + switch (format) { + case "text": + return new TextTestWriter(out); + case "xml": + return new XMLTestWriter(out); + case "yaml": + case "yml": + return new YAMLTestWriter(out); + default: + return null; + } + } +} |
