aboutsummaryrefslogtreecommitdiffstats
path: root/src/eu/equalparts/cardbase/data/CardBaseManager.java
diff options
context:
space:
mode:
authorEduardo Pedroni <e.pedroni91@gmail.com>2015-06-05 15:37:51 +0200
committerEduardo Pedroni <e.pedroni91@gmail.com>2015-06-05 15:37:51 +0200
commit0465829c25ef43ba9ba898dff01ebaa5106fd1f8 (patch)
tree4b6a15e99294c6f3c12376c0d280b73387cd9613 /src/eu/equalparts/cardbase/data/CardBaseManager.java
parent1f0159bcf903c0f422ab47b07cd296da1e816f87 (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.java68
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);
+ }
}