protected IterationHistoryEntry getHistoryEntryForDate( List<IterationHistoryEntry> entries, LocalDate date) { IterationHistoryEntry foundEntry = new IterationHistoryEntry(); for (IterationHistoryEntry entry : entries) { if (entry.getTimestamp().equals(date)) { return entry; } if (entry.getTimestamp().compareTo(date) > 0) { break; } foundEntry = entry; } IterationHistoryEntry returnable = new IterationHistoryEntry(); returnable.setTimestamp(date.toDateMidnight().toLocalDate()); returnable.setEffortLeftSum(foundEntry.getEffortLeftSum()); returnable.setOriginalEstimateSum(foundEntry.getOriginalEstimateSum()); return returnable; }
/** Assembles all the needed <code>TimeSeries</code>. */ protected TimeSeriesCollection getDataset(Iteration iteration) { TimeSeriesCollection chartDataset = new TimeSeriesCollection(); List<IterationHistoryEntry> iterationEntries = iterationHistoryEntryBusiness.getHistoryEntriesForIteration(iteration); LocalDate yesterday = new LocalDate().minusDays(1); LocalDate today = new LocalDate(); IterationHistoryEntry yesterdayEntry = getHistoryEntryForDate(iterationEntries, yesterday); IterationHistoryEntry todayEntry = getHistoryEntryForDate(iterationEntries, today); DateTime iterationStartDate = new DateTime(iteration.getStartDate()); DateTime iterationEndDate = new DateTime(iteration.getEndDate()); chartDataset.addSeries( getBurndownTimeSeries( iterationEntries, new LocalDate(iteration.getStartDate()), determineEndDate(new LocalDate(iteration.getEndDate())))); chartDataset.addSeries(getCurrentDayTimeSeries(yesterdayEntry, todayEntry)); chartDataset.addSeries( getScopingTimeSeries( iterationEntries, iterationStartDate.toLocalDate(), iterationEndDate.toLocalDate())); chartDataset.addSeries( getReferenceVelocityTimeSeries( iterationStartDate, iterationEndDate, new ExactEstimate(todayEntry.getOriginalEstimateSum()))); TimeSeries predictedVelocity = getPredictedVelocityTimeSeries( iterationStartDate.toLocalDate(), iterationEndDate.toLocalDate(), yesterdayEntry, todayEntry); if (predictedVelocity != null) { chartDataset.addSeries(predictedVelocity); } return chartDataset; }