From 3ba464665eec062f8ca114bb03a20ba51e3c69dc Mon Sep 17 00:00:00 2001 From: leriomaggio Date: Mon, 21 Jun 2021 11:43:51 +0100 Subject: [PATCH] New methods returning a map of all editions per type. This method is used to populate the "Sets" advanced filters in UI (so far, desktop only) --- .../src/main/java/forge/StaticData.java | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/forge-core/src/main/java/forge/StaticData.java b/forge-core/src/main/java/forge/StaticData.java index c3a18a76739..6b7671cfb8f 100644 --- a/forge-core/src/main/java/forge/StaticData.java +++ b/forge-core/src/main/java/forge/StaticData.java @@ -1,20 +1,12 @@ package forge; import java.io.File; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; +import java.util.*; import com.google.common.base.Predicate; -import forge.card.CardDb; +import forge.card.*; import forge.card.CardDb.CardRequest; -import forge.card.CardEdition; -import forge.card.CardRules; -import forge.card.PrintSheet; import forge.item.BoosterBox; import forge.item.FatPack; import forge.item.PaperCard; @@ -174,6 +166,22 @@ public class StaticData { return sortedEditions; } + private TreeMap> editionsTypeMap; + public final Map> getEditionsTypeMap(){ + if (editionsTypeMap == null){ + editionsTypeMap = new TreeMap<>(); + for (CardEdition.Type editionType : CardEdition.Type.values()){ + editionsTypeMap.put(editionType, new ArrayList<>()); + } + for (CardEdition edition : this.getSortedEditions()){ + CardEdition.Type key = edition.getType(); + List editionsOfType = editionsTypeMap.get(key); + editionsOfType.add(edition); + } + } + return editionsTypeMap; + } + public CardEdition getCardEdition(String setCode){ CardEdition edition = this.editions.get(setCode); if (edition == null) // try custom editions