XMLFormatter.java revision 849216bc555142245eec725d4f6a222d32c544aa
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; 16import java.util.List; 17 18import org.jacoco.core.analysis.ICoverageNode; 19import org.jacoco.core.data.SessionInfo; 20import org.jacoco.report.IReportFormatter; 21import org.jacoco.report.IReportVisitor; 22import org.jacoco.report.ISingleReportOutput; 23 24/** 25 * Report formatter that creates a single XML file for a coverage session 26 * 27 * @author Brock Janiczak 28 * @version $Revision: $ 29 */ 30public class XMLFormatter implements IReportFormatter { 31 32 private static final String PUBID = "-//JACOCO//DTD Report 1.0//EN"; 33 34 private static final String SYSTEM = "report.dtd"; 35 36 private ISingleReportOutput output; 37 38 private String outputEncoding = "UTF-8"; 39 40 public IReportVisitor createReportVisitor(final ICoverageNode session, 41 List<SessionInfo> sessionInfos) throws IOException { 42 final XMLElement root = new XMLDocument("report", PUBID, SYSTEM, 43 outputEncoding, true, output.createFile()); 44 return new XMLReportNodeHandler(root, session); 45 } 46 47 /** 48 * Sets the report output callback for this report formatter. This is a 49 * mandatory property. 50 * 51 * @param output 52 * report output 53 */ 54 public void setReportOutput(final ISingleReportOutput output) { 55 this.output = output; 56 } 57 58 /** 59 * Sets the encoding used for generated XML document. Default is UTF-8. 60 * 61 * @param outputEncoding 62 * XML output encoding 63 */ 64 public void setOutputEncoding(final String outputEncoding) { 65 this.outputEncoding = outputEncoding; 66 } 67 68} 69