001: package net.firstpartners.nounit.report;
002:
003: /**
004: * Title: NoUnit - Identify Classes that are not being unit Tested
005: *
006: * Copyright (C) 2001 Paul Browne , FirstPartners.net
007: *
008: *
009: * This program is free software; you can redistribute it and/or
010: * modify it under the terms of the GNU General Public License
011: * as published by the Free Software Foundation; either version 2
012: * of the License, or (at your option) any later version.
013: *
014: * This program is distributed in the hope that it will be useful,
015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
017: * GNU General Public License for more details.
018: *
019: * You should have received a copy of the GNU General Public License
020: * along with this program; if not, write to the Free Software
021: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
022: *
023: * @author Paul Browne
024: * @version 0.7
025: */
026:
027: import java.io.File;
028: import java.io.FileNotFoundException;
029: import java.io.IOException;
030:
031: import javax.xml.transform.TransformerConfigurationException;
032: import javax.xml.transform.TransformerException;
033:
034: import org.apache.log4j.Logger;
035:
036: import net.firstpartners.nounit.ui.common.CommandPackage;
037: import net.firstpartners.nounit.ui.common.SystemValues;
038: import net.firstpartners.nounit.utility.NoUnitException;
039:
040: /*
041: * Runs Any Report , using the standard XML (@see nounit-standard.dtd).
042: * Uses the StyleSheet (XSLT) to present this information to the user
043: * (For an Example @see simplereport.xsl) which shows that structure of
044: * the project.<BR>
045: * This Simple report is ideal if you like XSLT and are happy doing most
046: * of the tranformation work there , and none in Java. <BR>
047: * @see CallsReport if you prefer doing more transformations in Java!
048: */
049: public class SimpleReport extends AbstractReport {
050:
051: /**
052: * Key that the XSLT report is stored under in the WebPackage
053: */
054: public static final String XSLT_REPORT = "report_name";
055:
056: /**
057: * Key that the final output name is stored under in the WebPackage
058: */
059: public static final String OUTPUT_FILE = "output_file";
060:
061: //handle to logger
062: static Logger log = Logger.getLogger(SimpleReport.class);
063:
064: /**
065: * Transform the XML into a simple report - uses Xalan (XML->HTML convertor)
066: * @param inPackage - CommandPackage with required parameters
067: * @exception TransformerException
068: * @exception TransformerConfigurationException
069: * @exception IOException
070: * @exception FileNotFoundException
071: */
072: public void makeReport(CommandPackage inPackage)
073: throws TransformerException,
074: TransformerConfigurationException, IOException,
075: FileNotFoundException, NoUnitException {
076:
077: //Local Variables
078: File xsltFile = new File(inPackage.getString(XSLT_REPORT));
079: File outFile = new File(inPackage
080: .getString(CommandPackage.OUTPUT_DIR), inPackage
081: .getString(OUTPUT_FILE));
082: File xmlInFile = new File(inPackage
083: .getString(CommandPackage.OUTPUT_DIR),
084: SystemValues.XML_OUTPUT_NAME);
085:
086: //Check on incoming values
087: if ((outFile == null) || outFile.equals("")) {
088: throw new NoUnitException("Please specify a value for "
089: + OUTPUT_FILE);
090: }
091:
092: if ((xsltFile == null) || xsltFile.equals("")) {
093: throw new NoUnitException("Please specify a value for "
094: + XSLT_REPORT);
095: }
096:
097: log.debug("Generating Report:");
098: log.debug("XML in:" + xmlInFile);
099: log.debug("XSLT file:" + xsltFile);
100: log.debug("Output file:" + outFile);
101: log.debug("");
102:
103: //Do the transformation
104: super.transformFile(xmlInFile, xsltFile, outFile);
105: }
106: }
|