private void findNewFindings( org.jcoderz.phoenix.report.jaxb.File newFile, org.jcoderz.phoenix.report.jaxb.File oldFile) { final List<Item> newFindings = new ArrayList<Item>((List<Item>) newFile.getItem()); final List<Item> oldFindings = new ArrayList<Item>((List<Item>) oldFile.getItem()); filterLowSeverity(newFindings); filterLowSeverity(oldFindings); filterFullMatches(newFindings, oldFindings); filterPartialMatches(newFindings, oldFindings); // the rest... flaggAllAsNew(newFindings); for (Item item : oldFindings) { addAsOld(newFile.getItem(), item); } }
/** * Searches for new findings based on the old jcReport and increases the severity of such findings * to NEW. */ public void flagNewFindings() { logger.log(Level.FINE, "Searching for NEW findings..."); try { final JAXBContext ctx = JAXBContext.newInstance(new Class[] {Report.class}); final Report currentReport = (Report) ctx.createUnmarshaller().unmarshal(mOutFile); final Report oldReport = (Report) ctx.createUnmarshaller().unmarshal(mOldReport); for (org.jcoderz.phoenix.report.jaxb.File newFile : (List<org.jcoderz.phoenix.report.jaxb.File>) currentReport.getFile()) { final org.jcoderz.phoenix.report.jaxb.File oldFile = findFile(newFile, oldReport); if (oldFile != null) { findNewFindings(newFile, oldFile); } else { flaggAllAsNew(newFile.getItem()); } } writeResult(currentReport, mOutFile); } catch (Exception ex) { logger.log(Level.WARNING, "Failed to flagNewFindings. Cause " + ex.getMessage(), ex); } }