From e10abfe09e292207da8d1a20c247845509a1f1b1 Mon Sep 17 00:00:00 2001 From: North Date: Fri, 2 Sep 2011 00:57:09 +0300 Subject: [PATCH] Now Sets are ordered by their release date. Manually updating this file is no longer necessary. --- .../java/mage/client/cards/CardsStorage.java | 119 +++++++----------- 1 file changed, 45 insertions(+), 74 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/cards/CardsStorage.java b/Mage.Client/src/main/java/mage/client/cards/CardsStorage.java index fc3fb61e284..2bc4a0724f0 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardsStorage.java +++ b/Mage.Client/src/main/java/mage/client/cards/CardsStorage.java @@ -20,12 +20,11 @@ import org.apache.log4j.Logger; public class CardsStorage { private static final Logger log = Logger.getLogger(CardsStorage.class); - private static List allCards = new ArrayList(); - private static Set nonBasicLandCards = new LinkedHashSet(); + private static final List allCards; + private static final Set nonBasicLandCards; + private static final List setCodes; private static Map ratings; private static Integer min = Integer.MAX_VALUE, max = 0; - private static int cardsCount; - private static List setCodes = new ArrayList(); private static List notImplementedCards; /** @@ -34,21 +33,28 @@ public class CardsStorage { */ private static final int DEFAULT_NOT_RATED_CARD_RATING = 6; - static { - for (ExpansionSet set : Sets.getInstance().values()) { - setCodes.add(set.getCode()); - List cards = set.getCards(); - allCards.addAll(cards); - for (Card card : cards) { - if (CardUtil.isLand(card) && !CardUtil.isBasicLand(card)) { - nonBasicLandCards.add(card); - } - } - } - Collections.sort(allCards, new CardComparator()); - Collections.sort(setCodes, new SetComparator()); - cardsCount = allCards.size(); - } + static { + allCards = new ArrayList(); + nonBasicLandCards = new LinkedHashSet(); + setCodes = new ArrayList(); + + List sets = new ArrayList(Sets.getInstance().values()); + Collections.sort(sets, new SetComparator()); + for (ExpansionSet set : sets) { + setCodes.add(set.getCode()); + } + + for (ExpansionSet set : sets) { + List cards = set.getCards(); + Collections.sort(cards, new CardComparator()); + allCards.addAll(cards); + for (Card card : cards) { + if (CardUtil.isLand(card) && !CardUtil.isBasicLand(card)) { + nonBasicLandCards.add(card); + } + } + } + } public static List getAllCards() { return allCards; @@ -92,12 +98,12 @@ public class CardsStorage { } public static int getCardsCount() { - return cardsCount; + return allCards.size(); } - public static List getSetCodes() { - return setCodes; - } + public static List getSetCodes() { + return setCodes; + } public static Set getNonBasicLandCards() { return nonBasicLandCards; @@ -225,69 +231,34 @@ public class CardsStorage { /** * Card comparator. - * First compares set codes, then collector ids and just then card names. + * First compares collector ids and then card names. *

* Show latest set cards on top. * * @author nantuko */ - private static class CardComparator implements Comparator { - private static final String LATEST_SET_CODE = "M12"; + private static class CardComparator implements Comparator { - @Override - public int compare(Card o1, Card o2) { - String set1 = o1.getExpansionSetCode(); - String set2 = o2.getExpansionSetCode(); - if (set1.equals(set2)) { - Integer cid1 = o1.getCardNumber(); - Integer cid2 = o2.getCardNumber(); - if (cid1 == cid2) { - return o1.getName().compareTo(o2.getName()); - } else { - return cid1.compareTo(cid2); - } - } else { - // put latest set on top - if (set1.equals(LATEST_SET_CODE)) { - return -1; - } - if (set2.equals(LATEST_SET_CODE)) { - return 1; - } - return set1.compareTo(set2); - } - } - } + @Override + public int compare(Card o1, Card o2) { + Integer cid1 = o1.getCardNumber(); + Integer cid2 = o2.getCardNumber(); + if (cid1 == cid2) { + return o1.getName().compareTo(o2.getName()); + } else { + return cid1.compareTo(cid2); + } + } + } /** * Set comparator. Puts latest set on top. */ - private static class SetComparator implements Comparator { + private static class SetComparator implements Comparator { - /** - * Sets that will be put on top. - */ - private static final List latestSetCodes = new ArrayList(); - - static { - latestSetCodes.add("SOM"); - latestSetCodes.add("MBS"); - latestSetCodes.add("NPH"); - latestSetCodes.add("M12"); - } - @Override - public int compare(String set1, String set2) { - // put latest set on top - for (String set : latestSetCodes) { - if (set1.equals(set)) { - return -1; - } - if (set2.equals(set)) { - return 1; - } - } - return set1.compareTo(set2); + public int compare(ExpansionSet set1, ExpansionSet set2) { + return set2.getReleaseDate().compareTo(set1.getReleaseDate()); } } }