package com.metservice.kanban.charts.burnup; import org.jfree.data.xy.XYDataset; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; import org.joda.time.LocalDate; import com.google.gson.internal.Pair; public class EstimatesBurnDownDatasetGenerator { public XYDataset createDataset(EstimatesBurnDownDataModel model) { XYSeriesCollection dataset = new XYSeriesCollection(); double currentBudget = 0; int remainingFeaturePoints = model.getAllFeaturePoints(); XYSeries plannedBudgedSeries = new XYSeries("Planned budget"); XYSeries projectedBudgedSeries = new XYSeries("Estimated budget"); XYSeries currentBudgedSeries = new XYSeries("Current budget"); currentBudgedSeries.add(currentBudget, (double) remainingFeaturePoints); for (Pair<Integer, LocalDate> budgetEntry : model.getBudgetEntries()) { remainingFeaturePoints = model.getRemainingFeaturePointForBudget(budgetEntry); currentBudgedSeries.add((double) budgetEntry.first, remainingFeaturePoints); } plannedBudgedSeries.add(0, model.getAllFeaturePoints()); plannedBudgedSeries.add((double) model.getBudget(), 0); projectedBudgedSeries.add(0, model.getAllFeaturePoints()); projectedBudgedSeries.add((double) model.getProjectedBudgetConsumed(), 0); dataset.addSeries(plannedBudgedSeries); dataset.addSeries(projectedBudgedSeries); dataset.addSeries(currentBudgedSeries); return dataset; } }