1 /* 2 * @(#)IReportGenerator.java 3 * 4 * Copyright (C) 2002-2004 Matt Albrecht 5 * groboclown@users.sourceforge.net 6 * http://groboutils.sourceforge.net 7 * 8 * Permission is hereby granted, free of charge, to any person obtaining a 9 * copy of this software and associated documentation files (the "Software"), 10 * to deal in the Software without restriction, including without limitation 11 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 * and/or sell copies of the Software, and to permit persons to whom the 13 * Software is furnished to do so, subject to the following conditions: 14 * 15 * The above copyright notice and this permission notice shall be included in 16 * all copies or substantial portions of the Software. 17 * 18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 * DEALINGS IN THE SOFTWARE. 25 */ 26 27 package net.sourceforge.groboutils.codecoverage.v2.report; 28 29 import java.io.IOException; 30 31 import net.sourceforge.groboutils.codecoverage.v2.IAnalysisMetaData; 32 import net.sourceforge.groboutils.codecoverage.v2.IAnalysisModule; 33 34 import org.w3c.dom.Element; 35 36 37 /** 38 * Interface for all classes that generate reports of coverage data. 39 * 40 * @author Matt Albrecht <a HREF="mailto:groboclown@users.sourceforge.net">groboclown@users.sourceforge.net</a> 41 * @version $Date: 2004/04/15 05:48:26 $ 42 * @since December 17, 2002 43 * @see IAnalysisMetaData 44 */ 45 public interface IReportGenerator 46 { 47 48 49 /** 50 * Sends the generated report to <tt>out</tt> using the given module 51 * and data set. 52 * 53 * @param module the measure which is being reported. 54 * @param data the set of data to report. 55 * @return the root element generated. 56 * @exception IOException thrown if writing to <tt>out</tt> causes an 57 * IOException. 58 * @exception IllegalArgumentException thrown if any argument is 59 * <tt>null</tt>. 60 */ 61 public Element createReport( IAnalysisModule module, 62 AnalysisModuleData data ) 63 throws IOException; 64 } 65 66