From 41b78e7313ee44cc6f1023dd84ff21e62f82e33a Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Fri, 8 Feb 2013 00:01:50 +0000 Subject: [PATCH] moved that infiniteStock field from ItemPool to more approriate place --- .../java/forge/game/limited/BoosterDraft.java | 2 +- .../forge/game/limited/CustomLimited.java | 2 +- .../controllers/CEditorConstructed.java | 4 +- .../controllers/CEditorQuestCardShop.java | 6 +-- .../controllers/CEditorVariant.java | 2 +- .../controllers/CProbabilities.java | 3 +- .../deckeditor/controllers/CStatistics.java | 3 +- .../deckeditor/tables/EditorTableView.java | 16 ++++--- src/main/java/forge/item/ItemPool.java | 44 +++---------------- src/main/java/forge/item/ItemPoolView.java | 16 +------ src/test/java/forge/BoosterDraftTest.java | 2 +- 11 files changed, 31 insertions(+), 69 deletions(-) diff --git a/src/main/java/forge/game/limited/BoosterDraft.java b/src/main/java/forge/game/limited/BoosterDraft.java index 4ff60d35075..a90f90b22fa 100644 --- a/src/main/java/forge/game/limited/BoosterDraft.java +++ b/src/main/java/forge/game/limited/BoosterDraft.java @@ -252,7 +252,7 @@ public final class BoosterDraft implements IBoosterDraft { } this.computerChoose(); - return ItemPool.createFrom(this.pack.get(this.getCurrentBoosterIndex()), CardPrinted.class, false); + return ItemPool.createFrom(this.pack.get(this.getCurrentBoosterIndex()), CardPrinted.class); } /** diff --git a/src/main/java/forge/game/limited/CustomLimited.java b/src/main/java/forge/game/limited/CustomLimited.java index 80f27c44e4c..5b902cd3bc4 100644 --- a/src/main/java/forge/game/limited/CustomLimited.java +++ b/src/main/java/forge/game/limited/CustomLimited.java @@ -110,7 +110,7 @@ public class CustomLimited extends DeckBase { final String deckName = data.get("DeckFile"); final Deck deckCube = cubes.get(deckName); cd.cardPool = deckCube == null ? ItemPool.createFrom( - CardDb.instance().getAllUniqueCards(), CardPrinted.class, false) + CardDb.instance().getAllUniqueCards(), CardPrinted.class) : deckCube.getMain(); return cd; diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorConstructed.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorConstructed.java index e945e357074..18bf82cfeae 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorConstructed.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorConstructed.java @@ -131,7 +131,7 @@ public final class CEditorConstructed extends ACEditorBase { @Override public void resetTables() { // Constructed mode can use all cards, no limitations. - this.getTableCatalog().setDeck(ItemPool.createFrom(CardDb.instance().getAllTraditionalCards(), CardPrinted.class, true)); + this.getTableCatalog().setDeck(ItemPool.createFrom(CardDb.instance().getAllTraditionalCards(), CardPrinted.class), true); this.getTableDeck().setDeck(this.controller.getModel().getMain()); } @@ -159,7 +159,7 @@ public final class CEditorConstructed extends ACEditorBase { } else { lstCatalogCols.remove(SColumnUtil.getColumn(ColumnName.CAT_QUANTITY)); this.getTableCatalog().setAvailableColumns(lstCatalogCols); - this.getTableCatalog().setDeck(ItemPool.createFrom(CardDb.instance().getAllTraditionalCards(), CardPrinted.class, true)); + this.getTableCatalog().setDeck(ItemPool.createFrom(CardDb.instance().getAllTraditionalCards(), CardPrinted.class), true); this.getTableDeck().setDeck(this.controller.getModel().getMain()); } diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java index 507b1969823..7cfc6c1306e 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java @@ -94,7 +94,7 @@ public final class CEditorQuestCardShop extends ACEditorBase cardsForSale; private final ItemPool fullCatalogCards = - ItemPool.createFrom(CardDb.instance().getAllTraditionalCards(), InventoryItem.class, true); + ItemPool.createFrom(CardDb.instance().getAllTraditionalCards(), InventoryItem.class); private boolean showingFullCatalog = false; // get pricelist: @@ -137,7 +137,7 @@ public final class CEditorQuestCardShop extends ACEditorBase newInventory = - ItemPool.createFrom(deck.getDeck().getMain(), InventoryItem.class, false); + ItemPool.createFrom(deck.getDeck().getMain(), InventoryItem.class); getTableDeck().addCards(newInventory); JOptionPane.showMessageDialog(null, String.format( "Deck '%s' was added to your decklist.%n%nCards from it were also added to your pool.", diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorVariant.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorVariant.java index 536107727a4..4bfd4681bc0 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorVariant.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorVariant.java @@ -130,7 +130,7 @@ public final class CEditorVariant extends ACEditorBase { Iterable allNT = CardDb.instance().getAllNonTraditionalCards(); allNT = Iterables.filter(allNT, cardPoolCondition); - this.getTableCatalog().setDeck(ItemPool.createFrom(allNT, CardPrinted.class, true)); + this.getTableCatalog().setDeck(ItemPool.createFrom(allNT, CardPrinted.class), true); this.getTableDeck().setDeck(this.controller.getModel().getSideboard()); } diff --git a/src/main/java/forge/gui/deckeditor/controllers/CProbabilities.java b/src/main/java/forge/gui/deckeditor/controllers/CProbabilities.java index f25e9da35b8..3ca7b76d013 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CProbabilities.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CProbabilities.java @@ -63,8 +63,7 @@ public enum CProbabilities implements ICDoc { final ACEditorBase ed = (ACEditorBase) CDeckEditorUI.SINGLETON_INSTANCE.getCurrentEditorController(); - final ItemPoolView deck = ItemPool.createFrom( - ed.getTableDeck().getCards(), CardPrinted.class, false); + final ItemPoolView deck = ItemPool.createFrom(ed.getTableDeck().getCards(), CardPrinted.class); final List cardProbabilities = new ArrayList(); diff --git a/src/main/java/forge/gui/deckeditor/controllers/CStatistics.java b/src/main/java/forge/gui/deckeditor/controllers/CStatistics.java index eee4905ecac..56afa281b7c 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CStatistics.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CStatistics.java @@ -73,8 +73,7 @@ public enum CStatistics implements ICDoc { if (ed == null) { return; } - final ItemPoolView deck = ItemPool.createFrom( - ed.getTableDeck().getCards(), CardPrinted.class, false); + final ItemPoolView deck = ItemPool.createFrom(ed.getTableDeck().getCards(), CardPrinted.class); int total = deck.countAll(); diff --git a/src/main/java/forge/gui/deckeditor/tables/EditorTableView.java b/src/main/java/forge/gui/deckeditor/tables/EditorTableView.java index ee1fc53d6a1..f5385c3af52 100644 --- a/src/main/java/forge/gui/deckeditor/tables/EditorTableView.java +++ b/src/main/java/forge/gui/deckeditor/tables/EditorTableView.java @@ -67,6 +67,7 @@ public final class EditorTableView { private boolean alwaysNonUnique = false; private final Class genericType; + private boolean infiniteSupply; /** * @@ -278,7 +279,8 @@ public final class EditorTableView { * an Iterable */ public void setDeck(final Iterable cards) { - this.setDeckImpl(ItemPool.createFrom(cards, this.genericType, false)); + this.setDeckImpl(ItemPool.createFrom(cards, this.genericType)); + this.infiniteSupply = false; } /** @@ -287,10 +289,13 @@ public final class EditorTableView { * @param poolView * an ItemPoolView */ - public void setDeck(final ItemPoolView poolView) { - this.setDeckImpl(ItemPool.createFrom(poolView, this.genericType, false)); + public void setDeck(final ItemPoolView poolView, boolean infinite) { + this.setDeckImpl(ItemPool.createFrom(poolView, this.genericType)); + this.infiniteSupply = infinite; + } + public void setDeck(final ItemPoolView poolView) { + this.setDeck(poolView, false); } - /** * Sets the deck. * @@ -299,6 +304,7 @@ public final class EditorTableView { */ public void setDeck(final ItemPool pool) { this.setDeckImpl(pool); + this.infiniteSupply = false; } /** @@ -426,7 +432,7 @@ public final class EditorTableView { } public int getCardCount(final T card) { - return this.pool.count(card); + return infiniteSupply ? Integer.MAX_VALUE : this.pool.count(card); } public Predicate getFilter() { diff --git a/src/main/java/forge/item/ItemPool.java b/src/main/java/forge/item/ItemPool.java index 9f0d3e3deb2..6502209c8f2 100644 --- a/src/main/java/forge/item/ItemPool.java +++ b/src/main/java/forge/item/ItemPool.java @@ -43,27 +43,10 @@ public class ItemPool extends ItemPoolView { super(cls); } - public ItemPool(final Class cls, boolean infiniteStock) { - super(cls, infiniteStock); - } - - /** - * createFrom method. - * - * @param - * an InventoryItem - * @param - * an InventoryItem - * @param from - * a Tin - * @param clsHint - * a Tout - * @return InventoryItem - */ + @SuppressWarnings("unchecked") - public static ItemPool createFrom( - final ItemPoolView from, final Class clsHint, boolean infiniteStock) { - final ItemPool result = new ItemPool(clsHint, infiniteStock); + public static ItemPool createFrom(final ItemPoolView from, final Class clsHint) { + final ItemPool result = new ItemPool(clsHint); if (from != null) { for (final Entry e : from) { final Tin srcKey = e.getKey(); @@ -75,23 +58,10 @@ public class ItemPool extends ItemPoolView { return result; } - /** - * createFrom method. - * - * @param - * an InventoryItem - * @param - * an InventoryItem - * @param from - * a Iterable - * @param clsHint - * a Class - * @return an InventoryItem - */ + @SuppressWarnings("unchecked") - public static ItemPool createFrom( - final Iterable from, final Class clsHint, boolean infiniteStock) { - final ItemPool result = new ItemPool(clsHint, infiniteStock); + public static ItemPool createFrom(final Iterable from, final Class clsHint) { + final ItemPool result = new ItemPool(clsHint); if (from != null) { for (final Tin srcKey : from) { if (clsHint.isInstance(srcKey)) { @@ -138,7 +108,7 @@ public class ItemPool extends ItemPoolView { if (amount <= 0) { return; } - this.getCards().put(card, this.count(card) + amount); + this.getCards().put(card, Integer.valueOf(this.count(card) + amount)); this.setListInSync(false); } diff --git a/src/main/java/forge/item/ItemPoolView.java b/src/main/java/forge/item/ItemPoolView.java index 2c9cbe6a5ab..226d7e80a78 100644 --- a/src/main/java/forge/item/ItemPoolView.java +++ b/src/main/java/forge/item/ItemPoolView.java @@ -77,27 +77,15 @@ public class ItemPoolView implements Iterable cls) { - this(cls, false); - } - - public ItemPoolView(final Class cls, boolean infiniteStock) { - this(new Hashtable(), cls, infiniteStock); + this(new Hashtable(), cls); } public ItemPoolView(final Map inMap, final Class cls) { - this(inMap, cls, false); - } - - public ItemPoolView(final Map inMap, final Class cls, boolean infiniteStock) { this.cards = inMap; this.myClass = cls; - this.infiniteStock = infiniteStock; } // Data members - // if this is true, queries for card count will return INT_MAX - private final boolean infiniteStock; - /** The cards. */ private final Map cards; @@ -152,7 +140,7 @@ public class ItemPoolView implements Iterable