package logbook.dto; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.TreeMap; /** * 集計結果 */ public final class BattleAggUnitDto extends AbstractDto { /** * 海域合算 */ private final BattleAggDetailsDto total = new BattleAggDetailsDto("すべて"); /** * 海域毎 */ private final Map<Integer, BattleAggDetailsDto> areaDetails = new TreeMap<>(); /** * 評価を集計する * * @param area 海域名 * @param rank 評価 * @param isStart 出撃 * @param isBoss ボス */ public void add(MapCellDto area, ResultRank rank) { // 合算に評価を加算 this.total.add(rank, area.isStart(), area.isBoss()); // 海域毎に評価を加算 BattleAggDetailsDto areaAgg = this.areaDetails.get(area.getAreaId()); if (areaAgg == null) { areaAgg = new BattleAggDetailsDto(area.getAreaString()); this.areaDetails.put(area.getAreaId(), areaAgg); } areaAgg.add(rank, area.isStart(), area.isBoss()); } /** * 集計結果を取得します * * @return 集計結果 */ public BattleAggDetailsDto getTotal() { return this.total; } /** * 海域毎の集計結果を取得します * * @return 海域毎の集計結果 */ public Set<Entry<Integer, BattleAggDetailsDto>> getAreaDetails() { return this.areaDetails.entrySet(); } }