XMLFormatter.java

    1/*******************************************************************************
    2 * Copyright (c) 2009, 2010 Mountainminds GmbH & Co. KG and Contributors
    3 * All rights reserved. This program and the accompanying materials
    4 * are made available under the terms of the Eclipse Public License v1.0
    5 * which accompanies this distribution, and is available at
    6 * http://www.eclipse.org/legal/epl-v10.html
    7 *
    8 * Contributors:
    9 *    Brock Janiczak -initial API and implementation
   10 *    
   11 * $Id: $
   12 *******************************************************************************/
   13package org.jacoco.report.xml;
   14
   15import java.io.IOException;
   16
   17import org.jacoco.core.analysis.ICoverageNode;
   18import org.jacoco.report.IReportFormatter;
   19import org.jacoco.report.IReportVisitor;
   20import org.jacoco.report.ISingleReportOutput;
   21
   22/**
   23 * Report formatter that creates a single XML file for a coverage session
   24 * 
   25 * @author Brock Janiczak
   26 * @version $Revision: $
   27 */
   28public class XMLFormatter implements IReportFormatter {
   29
   30    private static final String PUBID = "-//JACOCO//DTD Report 1.0//EN";
   31
   32    private static final String SYSTEM = "report.dtd";
   33
   34    private ISingleReportOutput output;
   35
   36    private String outputEncoding = "UTF-8";
   37
   38    public IReportVisitor createReportVisitor(final ICoverageNode session)
   39            throws IOException {
   40        final XMLElement root = new XMLDocument("report", PUBID, SYSTEM,
   41                outputEncoding, true, output.createFile());
   42        return new XMLReportNodeHandler(root, session);
   43    }
   44
   45    /**
   46     * Sets the report output callback for this report formatter. This is a
   47     * mandatory property.
   48     * 
   49     * @param output
   50     *            report output
   51     */
   52    public void setReportOutput(final ISingleReportOutput output) {
   53        this.output = output;
   54    }
   55
   56    /**
   57     * Sets the encoding used for generated XML document. Default is UTF-8.
   58     * 
   59     * @param outputEncoding
   60     *            XML output encoding
   61     */
   62    public void setOutputEncoding(final String outputEncoding) {
   63        this.outputEncoding = outputEncoding;
   64    }
   65
   66}