diff options
Diffstat (limited to 'src/eu/equalparts/cardbase/cardstorage/StandaloneCardContainer.java')
-rw-r--r-- | src/eu/equalparts/cardbase/cardstorage/StandaloneCardContainer.java | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/eu/equalparts/cardbase/cardstorage/StandaloneCardContainer.java b/src/eu/equalparts/cardbase/cardstorage/StandaloneCardContainer.java index 52fc89e..6c785df 100644 --- a/src/eu/equalparts/cardbase/cardstorage/StandaloneCardContainer.java +++ b/src/eu/equalparts/cardbase/cardstorage/StandaloneCardContainer.java @@ -12,14 +12,19 @@ import com.fasterxml.jackson.annotation.JsonProperty; import eu.equalparts.cardbase.cards.Card; import eu.equalparts.cardbase.comparator.CardComparator; +/** + * Holds actual card data in addition to the card counts in {@code ReferenceCardContainer}. + * + * @author Eduardo Pedroni + * + */ public abstract class StandaloneCardContainer extends ReferenceCardContainer { - @JsonProperty private Map<Integer, Card> cardData; - - public StandaloneCardContainer() { - super(); - cardData = new HashMap<>(); - } + /** + * A map with card hashes as entry keys (calculated used {@code Card.hashCode()}) + * and card objects as entry values. + */ + @JsonProperty private Map<Integer, Card> cardData = new HashMap<>(); @Override public void addCard(Card cardToAdd, int count) { @@ -30,9 +35,11 @@ public abstract class StandaloneCardContainer extends ReferenceCardContainer { @Override public int removeCard(Card cardToRemove, int count) { int removed = super.removeCard(cardToRemove, count); + if (getCount(cardToRemove) <= 0) { cardData.remove(cardToRemove.hashCode()); } + return removed; } |