/** * Filters the report XML file using the JDK XSL processor. * * @throws TransformerException if the transformation fails. * @throws IOException if an io operation fails. */ public void filter() throws TransformerException, IOException { logger.log(Level.FINE, "Filtering jcoderz-report.xml files..."); for (final File filterFile : mFilters) { logger.log(Level.FINE, "Filter: " + filterFile); final TransformerFactory tFactory = TransformerFactory.newInstance(); final Transformer transformer = tFactory.newTransformer(new StreamSource(filterFile)); final File tempOutputFile = new File(mOutFile.getCanonicalPath() + ".tmp"); FileUtils.createNewFile(tempOutputFile); final FileOutputStream out = new FileOutputStream(tempOutputFile); transformer.transform(new StreamSource(mOutFile), new StreamResult(out)); IoUtil.close(out); FileUtils.copyFile(tempOutputFile, mOutFile); FileUtils.delete(tempOutputFile); } }
/** * Sets the out file. * * @param outFile the new out file * @throws IOException Signals that an I/O exception has occurred. */ public void setOutFile(File outFile) throws IOException { if (mOutFile != null) { throw new ArgumentMalformedException( "outFile", outFile, "Out File already set to '" + mOutFile + "'."); } mOutFile = outFile; if (mOutFile.isDirectory()) { FileUtils.mkdirs(mOutFile); mOutFile = new File(mOutFile, ReportNormalizer.JCODERZ_REPORT_XML).getCanonicalFile(); } else { mOutFile = mOutFile.getCanonicalFile(); } }