package com.qprogramming.tasq.agile; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; class SprintData extends AgileData { private Map<String, Float> left; private Map<String, Float> burned; private Map<String, Float> ideal; private Integer totalPoints = 0; public SprintData() { left = new LinkedHashMap<>(); burned = new LinkedHashMap<>(); ideal = new LinkedHashMap<>(); } public Map<String, Float> getLeft() { return left; } public void setLeft(Map<String, Float> left) { this.left = left; } public Map<String, Float> getIdeal() { return ideal; } public void setIdeal(Map<String, Float> ideal) { this.ideal = ideal; } public Map<String, Float> getBurned() { return burned; } public void setBurned(Map<String, Float> pointsBurned) { this.burned = pointsBurned; } public Integer getTotalPoints() { return totalPoints; } public void setTotalPoints(Integer totalPoints) { this.totalPoints = totalPoints; } public void createIdeal(String startTime, Float value, String endTime) { ideal.put(startTime, value); left.put(startTime, value); burned.put(startTime, 0f); ideal.put(endTime, 0f); } public void putToLeft(String time, Float value) { left.put(time, value); } public void fillEnds(String endTime) { fillEnd(endTime, left); fillEnd(endTime, burned); } private void fillEnd(String time, Map<String, Float> map) { if (map.get(time) == null) { List<Map.Entry<String, Float>> entryList = new ArrayList<>(map.entrySet()); Map.Entry<String, Float> entry = entryList.get(entryList.size() - 1); map.put(time, entry.getValue()); } } }