aboutsummaryrefslogtreecommitdiffstats
path: root/src/eu/equalparts/cardbase/Cardbase.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/eu/equalparts/cardbase/Cardbase.java')
-rw-r--r--src/eu/equalparts/cardbase/Cardbase.java74
1 files changed, 1 insertions, 73 deletions
diff --git a/src/eu/equalparts/cardbase/Cardbase.java b/src/eu/equalparts/cardbase/Cardbase.java
index 2d92d64..fac4ace 100644
--- a/src/eu/equalparts/cardbase/Cardbase.java
+++ b/src/eu/equalparts/cardbase/Cardbase.java
@@ -2,11 +2,7 @@ package eu.equalparts.cardbase;
import java.io.File;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -14,9 +10,7 @@ import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
-import eu.equalparts.cardbase.cards.Card;
import eu.equalparts.cardbase.cardstorage.StandaloneCardContainer;
-import eu.equalparts.cardbase.comparator.CardComparator;
import eu.equalparts.cardbase.utils.JSON;
/**
@@ -24,18 +18,9 @@ import eu.equalparts.cardbase.utils.JSON;
*
* @author Eduardo Pedroni
*/
-public class Cardbase implements StandaloneCardContainer {
+public class Cardbase extends StandaloneCardContainer {
/**
- * A map with card hashes as entry keys (calculated used {@code Card.hashCode()}) and card amounts as entry values.
- */
- @JsonProperty private Map<Integer, Integer> cardReferences = 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<>();
- /**
* The decks which have been saved along with this collection of cards.
*/
@JsonProperty private Map<Integer, Object> decks;
@@ -44,8 +29,6 @@ public class Cardbase implements StandaloneCardContainer {
* Creates a clean cardbase.
*/
public Cardbase() {
- cardReferences = new HashMap<>();
- cardData = new HashMap<>();
decks = new HashMap<>();
}
@@ -77,59 +60,4 @@ public class Cardbase implements StandaloneCardContainer {
public void write(File outputFile) throws JsonGenerationException, JsonMappingException, IOException {
JSON.mapper.writeValue(outputFile, this);
}
-
- @Override
- public int getCount(Card cardToCount) {
- int hashCode = cardToCount.hashCode();
- return cardReferences.containsKey(hashCode) ? cardReferences.get(hashCode) : 0;
- }
-
- @Override
- public void addCard(Card cardToAdd, int count) {
- int hashCode = cardToAdd.hashCode();
- if (cardReferences.containsKey(hashCode)) {
- cardReferences.replace(hashCode, cardReferences.get(hashCode) + count);
- } else {
- cardReferences.put(hashCode, count);
- }
- cardData.putIfAbsent(hashCode, cardToAdd);
- }
-
- @Override
- public int removeCard(Card cardToRemove, int count) {
- int hashCode = cardToRemove.hashCode();
- int removed = 0;
-
- if (cardReferences.containsKey(hashCode) && count > 0) {
- int oldCount = cardReferences.get(hashCode);
-
- if (oldCount > count) {
- cardReferences.replace(hashCode, oldCount - count);
- removed = count;
- } else {
- cardReferences.remove(hashCode);
- cardData.remove(cardToRemove.hashCode());
- removed = oldCount;
- }
- }
-
- return removed;
- }
-
- @Override
- public Card getCard(String setCode, String number) {
- return cardData.get(Card.makeHash(setCode, number));
- }
-
- @Override
- public Collection<Card> getCards() {
- return Collections.unmodifiableCollection(cardData.values());
- }
-
- @Override
- public Collection<Card> sortByField(String fieldName) throws NoSuchFieldException {
- List<Card> sortedCards = new ArrayList<Card>(getCards());
- sortedCards.sort(new CardComparator(Card.class.getDeclaredField(fieldName)));
- return Collections.unmodifiableCollection(sortedCards);
- }
}