aboutsummaryrefslogtreecommitdiff
path: root/jacoco-maven-plugin/src/org/jacoco/maven/ReportFormat.java
diff options
context:
space:
mode:
Diffstat (limited to 'jacoco-maven-plugin/src/org/jacoco/maven/ReportFormat.java')
-rw-r--r--jacoco-maven-plugin/src/org/jacoco/maven/ReportFormat.java80
1 files changed, 80 insertions, 0 deletions
diff --git a/jacoco-maven-plugin/src/org/jacoco/maven/ReportFormat.java b/jacoco-maven-plugin/src/org/jacoco/maven/ReportFormat.java
new file mode 100644
index 00000000..9406996f
--- /dev/null
+++ b/jacoco-maven-plugin/src/org/jacoco/maven/ReportFormat.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2021 Mountainminds GmbH & Co. KG and Contributors
+ * This program and the accompanying materials are made available under
+ * the terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Marc R. Hoffmann - initial API and implementation
+ *
+ *******************************************************************************/
+package org.jacoco.maven;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Locale;
+
+import org.jacoco.report.FileMultiReportOutput;
+import org.jacoco.report.IReportVisitor;
+import org.jacoco.report.csv.CSVFormatter;
+import org.jacoco.report.html.HTMLFormatter;
+import org.jacoco.report.xml.XMLFormatter;
+
+/**
+ * Configurable output formats for the report goals.
+ */
+public enum ReportFormat {
+
+ /**
+ * Multi-page html report.
+ */
+ HTML() {
+ @Override
+ IReportVisitor createVisitor(final AbstractReportMojo mojo,
+ final Locale locale) throws IOException {
+ final HTMLFormatter htmlFormatter = new HTMLFormatter();
+ htmlFormatter.setOutputEncoding(mojo.outputEncoding);
+ htmlFormatter.setLocale(locale);
+ if (mojo.footer != null) {
+ htmlFormatter.setFooterText(mojo.footer);
+ }
+ return htmlFormatter.createVisitor(
+ new FileMultiReportOutput(mojo.getOutputDirectory()));
+ }
+ },
+
+ /**
+ * Single-file XML report.
+ */
+ XML() {
+ @Override
+ IReportVisitor createVisitor(final AbstractReportMojo mojo,
+ final Locale locale) throws IOException {
+ final XMLFormatter xml = new XMLFormatter();
+ xml.setOutputEncoding(mojo.outputEncoding);
+ return xml.createVisitor(new FileOutputStream(
+ new File(mojo.getOutputDirectory(), "jacoco.xml")));
+ }
+ },
+
+ /**
+ * Single-file CSV report.
+ */
+ CSV() {
+ @Override
+ IReportVisitor createVisitor(final AbstractReportMojo mojo,
+ final Locale locale) throws IOException {
+ final CSVFormatter csv = new CSVFormatter();
+ csv.setOutputEncoding(mojo.outputEncoding);
+ return csv.createVisitor(new FileOutputStream(
+ new File(mojo.getOutputDirectory(), "jacoco.csv")));
+ }
+ };
+
+ abstract IReportVisitor createVisitor(AbstractReportMojo mojo,
+ final Locale locale) throws IOException;
+
+}