Format.java
- package org.jbehave.core.reporters;
- import java.io.PrintStream;
- import org.jbehave.core.reporters.StoryReporterBuilder.ProvidedFormat;
- /**
- * A Format is a {@link StoryReporter} factory, allowing named-based pre-defined
- * story reporters to be configured via the
- * {@link StoryReporterBuilder#withFormats(Format...)} method. Users wanting to
- * configure their custom defined story reporters, can do so via the
- * {@link StoryReporterBuilder#withReporters(StoryReporter...)} method, or use
- * the {@link ProvidedFormat} wrapper.
- */
- public abstract class Format {
- public static final Format CONSOLE = new Format("CONSOLE") {
- @Override
- public StoryReporter createStoryReporter(FilePrintStreamFactory factory,
- StoryReporterBuilder storyReporterBuilder) {
- return configureFailureTraces(storyReporterBuilder, new ConsoleOutput(storyReporterBuilder.keywords()));
- }
- };
- public static final Format ANSI_CONSOLE = new Format("ANSI_CONSOLE") {
- @Override
- public StoryReporter createStoryReporter(FilePrintStreamFactory factory,
- StoryReporterBuilder storyReporterBuilder) {
- return configureFailureTraces(storyReporterBuilder,
- new ANSIConsoleOutput(storyReporterBuilder.keywords()).withCodes(storyReporterBuilder.codes()));
- }
- };
- public static final Format IDE_CONSOLE = new Format("IDE_CONSOLE") {
- @Override
- public StoryReporter createStoryReporter(FilePrintStreamFactory factory,
- StoryReporterBuilder storyReporterBuilder) {
- return configureFailureTraces(storyReporterBuilder,
- new IdeOnlyConsoleOutput(storyReporterBuilder.keywords()));
- }
- };
- public static final Format TEAMCITY_CONSOLE = new Format("TEAMCITY_CONSOLE") {
- @Override
- public StoryReporter createStoryReporter(FilePrintStreamFactory factory,
- StoryReporterBuilder storyReporterBuilder) {
- return configureFailureTraces(storyReporterBuilder,
- new TeamCityConsoleOutput(storyReporterBuilder.keywords()));
- }
- };
- public static final Format TXT = new Format("TXT") {
- @Override
- public StoryReporter createStoryReporter(FilePrintStreamFactory factory,
- StoryReporterBuilder storyReporterBuilder) {
- factory.useConfiguration(storyReporterBuilder.fileConfiguration("txt"));
- return configureFailureTraces(storyReporterBuilder,
- new TxtOutput(factory.createPrintStream(), storyReporterBuilder.keywords()));
- }
- };
- public static final Format HTML = new Format("HTML") {
- @Override
- public StoryReporter createStoryReporter(FilePrintStreamFactory factory,
- StoryReporterBuilder storyReporterBuilder) {
- factory.useConfiguration(storyReporterBuilder.fileConfiguration("html"));
- return configureFailureTraces(storyReporterBuilder,
- new HtmlOutput(factory.createPrintStream(), storyReporterBuilder.keywords()));
- }
- };
- public static final Format XML = new Format("XML") {
- @Override
- public StoryReporter createStoryReporter(FilePrintStreamFactory factory,
- StoryReporterBuilder storyReporterBuilder) {
- factory.useConfiguration(storyReporterBuilder.fileConfiguration("xml"));
- return configureFailureTraces(storyReporterBuilder,
- new XmlOutput(factory.createPrintStream(), storyReporterBuilder.keywords()));
- }
- };
- public static final Format JSON = new Format("JSON") {
- @Override
- public StoryReporter createStoryReporter(FilePrintStreamFactory factory,
- StoryReporterBuilder storyReporterBuilder) {
- factory.useConfiguration(storyReporterBuilder.fileConfiguration("json"));
- return configureFailureTraces(storyReporterBuilder,
- new JsonOutput(factory.createPrintStream(), storyReporterBuilder.keywords()));
- }
- };
- public static final Format HTML_TEMPLATE = new Format("HTML") {
- @Override
- public StoryReporter createStoryReporter(FilePrintStreamFactory factory,
- StoryReporterBuilder storyReporterBuilder) {
- factory.useConfiguration(storyReporterBuilder.fileConfiguration("html"));
- return new HtmlTemplateOutput(factory.getOutputFile(), storyReporterBuilder.keywords());
- }
- };
- public static final Format XML_TEMPLATE = new Format("XML") {
- @Override
- public StoryReporter createStoryReporter(FilePrintStreamFactory factory,
- StoryReporterBuilder storyReporterBuilder) {
- factory.useConfiguration(storyReporterBuilder.fileConfiguration("xml"));
- return new XmlTemplateOutput(factory.getOutputFile(), storyReporterBuilder.keywords());
- }
- };
- public static final Format JSON_TEMPLATE = new Format("JSON") {
- @Override
- public StoryReporter createStoryReporter(FilePrintStreamFactory factory,
- StoryReporterBuilder storyReporterBuilder) {
- factory.useConfiguration(storyReporterBuilder.fileConfiguration("json"));
- return new JsonTemplateOutput(factory.getOutputFile(), storyReporterBuilder.keywords());
- }
- };
- /**
- * STATS is needed by the final reports.html summary page.
- */
- public static final Format STATS = new Format("STATS") {
- @Override
- public StoryReporter createStoryReporter(FilePrintStreamFactory factory,
- StoryReporterBuilder storyReporterBuilder) {
- factory.useConfiguration(storyReporterBuilder.fileConfiguration("stats"));
- return new PostStoryStatisticsCollector(factory.createPrintStream());
- }
- };
- private final String name;
- public Format(String name) {
- this.name = name;
- }
- public String name() {
- return name;
- }
- public abstract StoryReporter createStoryReporter(FilePrintStreamFactory factory,
- StoryReporterBuilder storyReporterBuilder);
- public static void println(PrintStream writer, String format, Object... args) {
- writer.printf(format + "%n", args);
- }
- @Override
- public String toString() {
- return name;
- }
- private static PrintStreamOutput configureFailureTraces(StoryReporterBuilder storyReporterBuilder,
- PrintStreamOutput output) {
- return output
- .doReportFailureTrace(storyReporterBuilder.reportFailureTrace())
- .doCompressFailureTrace(storyReporterBuilder.compressFailureTrace());
- }
- }