diff options
author | Eduardo Pedroni <e.pedroni91@gmail.com> | 2015-06-05 15:37:51 +0200 |
---|---|---|
committer | Eduardo Pedroni <e.pedroni91@gmail.com> | 2015-06-05 15:37:51 +0200 |
commit | 0465829c25ef43ba9ba898dff01ebaa5106fd1f8 (patch) | |
tree | 4b6a15e99294c6f3c12376c0d280b73387cd9613 /src/eu/equalparts/cardbase/data/CardBaseManager.java | |
parent | 1f0159bcf903c0f422ab47b07cd296da1e816f87 (diff) |
It works! Reading in a file, writing to the same file or a different existing file, glancing, perusing, adding and removing cards by number
Diffstat (limited to 'src/eu/equalparts/cardbase/data/CardBaseManager.java')
-rw-r--r-- | src/eu/equalparts/cardbase/data/CardBaseManager.java | 68 |
1 files changed, 63 insertions, 5 deletions
diff --git a/src/eu/equalparts/cardbase/data/CardBaseManager.java b/src/eu/equalparts/cardbase/data/CardBaseManager.java index acf5a3a..0baf9d7 100644 --- a/src/eu/equalparts/cardbase/data/CardBaseManager.java +++ b/src/eu/equalparts/cardbase/data/CardBaseManager.java @@ -2,6 +2,7 @@ package eu.equalparts.cardbase.data; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.Iterator; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; @@ -11,19 +12,17 @@ import eu.equalparts.cardbase.query.IO; public class CardBaseManager { private ArrayList<MetaCardSet> metaSets; + public CardBase cardBase; - public static void main(String... args) { - - } - /** * Parse a cardbase file and create an associated CardBase object. * @throws IOException * @throws JsonMappingException * @throws JsonParseException */ - public CardBaseManager(File cardbase) throws JsonParseException, JsonMappingException, IOException { + public CardBaseManager(File cardBaseFile) throws JsonParseException, JsonMappingException, IOException { metaSets = IO.getAllMetaSets(); + cardBase = IO.readCardBase(cardBaseFile); } /** @@ -34,10 +33,69 @@ public class CardBaseManager { */ public CardBaseManager() throws JsonParseException, JsonMappingException, IOException { metaSets = IO.getAllMetaSets(); + cardBase = new CardBase(); } public ArrayList<MetaCardSet> getAllMetaSets() { return metaSets; } + /** + * Add a specific amount of a card to the cardbase. + * If the card is not already in the cardbase, it is added. + * If it is already present, the count is simply updated. + * + * + * @param newCard + * @param count + */ + public void addCard(Card newCard, Integer count) { + Card card = cardBase.getCardByNumber(newCard.setCode, newCard.number); + if (card != null) { + card.count += count; + } else { + newCard.count = count; + cardBase.cards.add(newCard); + } + } + + /** + * Remove a specific amount of a card from the cardbase. + * If the card is not present in the cardbase, nothing happens. + * If the card is present in the card, the specified amount is removed. + * If that amount is equal to or exceeds the count already in the cardbase, + * the card entry is removed altogether. + * + * @param remove + * @param count + */ + public void removeCard(Card remove, Integer count) { + Card card = cardBase.getCardByNumber(remove.setCode, remove.number); + if (card != null) { + if (card.count <= count) { + cardBase.cards.remove(card); + } else { + card.count -= count; + } + } + } + + /** + * @return an iterator to the cards in the cardbase. + */ + public Iterator<Card> cardIterator() { + return cardBase.cards.iterator(); + } + + /** + * Return a card from the cardBase by setCode and number. + * If no such card is in the cardbase, return null. + * + * @param code + * @param string + * @return + */ + public Card getCard(String code, String number) { + return cardBase.getCardByNumber(code, number); + } } |