/** {@inheritDoc} */ @Override public void persist(ReportInstance report) { StatisticsReport dbReport = new StatisticsReport(); dbReport.setName(report.getName()); dbReport.setDescription(report.getDescription()); dbReport.setStartDate(new Date(report.getStartTime())); dbReport.setEndDate(new Date(report.getEndTime())); dbReport.setJobStartedDate(report.getJobStartedDate()); dbReport.setJobCompletedDate(report.getJobCompletedDate()); dbReport.setPurgeDate(new Date(report.getJobCompletedDate().getTime() + report.getRetainInterval())); for (AttributeStatistic stat : report.getResults()) { ResourceReference resource = getResourceReference(stat.getAttribute().getResource().getId().toString()); StatisticsReportData data = new StatisticsReportData(); data.setResource(resource); data.setReport(dbReport); data.setValue(stat.getStatistic()); dbReport.addData(data); LOG.debug("Adding {}", data); } if (dbReport.getData().isEmpty()) { LOG.warn("Cannot store {} because it doesn't contain data. Probably all the metrics are NaN for the report period.", report); } else { m_statisticsReportDao.save(dbReport); } }