diff --git a/Mage.Verify/src/main/java/mage/verify/JsonCard.java b/Mage.Verify/src/main/java/mage/verify/JsonCard.java deleted file mode 100644 index bb85a00e7d2..00000000000 --- a/Mage.Verify/src/main/java/mage/verify/JsonCard.java +++ /dev/null @@ -1,58 +0,0 @@ -package mage.verify; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; - -import java.util.List; - -import static mage.verify.MtgJson.MTGJSON_IGNORE_NEW_PROPERTIES; - -@JsonIgnoreProperties(ignoreUnknown = MTGJSON_IGNORE_NEW_PROPERTIES) -class JsonCard { - // docs: https://mtgjson.com/v4/docs.html - - public String artist; - public String borderColor; - public List colorIdentity; - public List colorIndicator; - public List colors; - public float convertedManaCost; - public float faceConvertedManaCost; - public String flavorText; - public List foreignData; - public String frameVersion; - public boolean hasFoil; - public boolean hasNonFoil; - public boolean isOnlineOnly; - public boolean isOversized; - public boolean isReserved; - public boolean isTimeshifted; - public String layout; - public JsonLegalities legalities; - public String loyalty; - public String manaCost; - public int multiverseId; - public String name; - public List names; - public String number; - public String originalText; - public String originalType; - public List printings; - public String power; - public String rarity; - public boolean starter; - public String side; - public List rulings; - public List subtypes; - public List supertypes; - public String text; - public String toughness; - public String type; - public List types; - public String uuid; - public List variations; - public String watermark; - public String tcgplayerProductId; - public String scryfallId; - public boolean isAlternative; - public String frameEffect; -} diff --git a/Mage.Verify/src/main/java/mage/verify/JsonForeignData.java b/Mage.Verify/src/main/java/mage/verify/JsonForeignData.java deleted file mode 100644 index 5c85acd664a..00000000000 --- a/Mage.Verify/src/main/java/mage/verify/JsonForeignData.java +++ /dev/null @@ -1,15 +0,0 @@ -package mage.verify; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; - -import static mage.verify.MtgJson.MTGJSON_IGNORE_NEW_PROPERTIES; - -@JsonIgnoreProperties(ignoreUnknown = MTGJSON_IGNORE_NEW_PROPERTIES) -public class JsonForeignData { - public String flavorText; - public String language; - public int multiverseId; - public String name; - public String text; - public String type; -} diff --git a/Mage.Verify/src/main/java/mage/verify/JsonLegalities.java b/Mage.Verify/src/main/java/mage/verify/JsonLegalities.java deleted file mode 100644 index b9480444727..00000000000 --- a/Mage.Verify/src/main/java/mage/verify/JsonLegalities.java +++ /dev/null @@ -1,24 +0,0 @@ -package mage.verify; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -import static mage.verify.MtgJson.MTGJSON_IGNORE_NEW_PROPERTIES; - -@JsonIgnoreProperties(ignoreUnknown = MTGJSON_IGNORE_NEW_PROPERTIES) -public class JsonLegalities { - @JsonProperty("1v1") - public String oneVersusOne; - public String brawl; - public String commander; - public String duel; - public String frontier; - public String future; - public String legacy; - public String modern; - public String penny; - public String pauper; - public String standard; - public String vintage; - public String oldschool; -} diff --git a/Mage.Verify/src/main/java/mage/verify/JsonMeta.java b/Mage.Verify/src/main/java/mage/verify/JsonMeta.java deleted file mode 100644 index af617214bd9..00000000000 --- a/Mage.Verify/src/main/java/mage/verify/JsonMeta.java +++ /dev/null @@ -1,11 +0,0 @@ -package mage.verify; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; - -import static mage.verify.MtgJson.MTGJSON_IGNORE_NEW_PROPERTIES; - -@JsonIgnoreProperties(ignoreUnknown = MTGJSON_IGNORE_NEW_PROPERTIES) -public class JsonMeta { - public String date; - public String version; -} diff --git a/Mage.Verify/src/main/java/mage/verify/JsonRuling.java b/Mage.Verify/src/main/java/mage/verify/JsonRuling.java deleted file mode 100644 index 77ae25709eb..00000000000 --- a/Mage.Verify/src/main/java/mage/verify/JsonRuling.java +++ /dev/null @@ -1,11 +0,0 @@ -package mage.verify; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; - -import static mage.verify.MtgJson.MTGJSON_IGNORE_NEW_PROPERTIES; - -@JsonIgnoreProperties(ignoreUnknown = MTGJSON_IGNORE_NEW_PROPERTIES) -public class JsonRuling { - public String date; - public String text; -} diff --git a/Mage.Verify/src/main/java/mage/verify/JsonSet.java b/Mage.Verify/src/main/java/mage/verify/JsonSet.java deleted file mode 100644 index d53d310d04f..00000000000 --- a/Mage.Verify/src/main/java/mage/verify/JsonSet.java +++ /dev/null @@ -1,26 +0,0 @@ -package mage.verify; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; - -import java.util.List; - -import static mage.verify.MtgJson.MTGJSON_IGNORE_NEW_PROPERTIES; - -@JsonIgnoreProperties(ignoreUnknown = MTGJSON_IGNORE_NEW_PROPERTIES) -class JsonSet { - public int baseSetSize; - public String block; - public List boosterV3; // [["rare", "mythic rare"], "uncommon", "uncommon", "uncommon", "common"] - public List cards; - public String code; - public boolean isFoilOnly; - public boolean isOnlineOnly; - public JsonMeta meta; - public String mtgoCode; - public String name; - public String releaseDate; - public List tokens; - public int totalSetSize; - public String type; - public String tcgplayerGroupId; -} diff --git a/Mage.Verify/src/main/java/mage/verify/JsonToken.java b/Mage.Verify/src/main/java/mage/verify/JsonToken.java deleted file mode 100644 index c3484856890..00000000000 --- a/Mage.Verify/src/main/java/mage/verify/JsonToken.java +++ /dev/null @@ -1,29 +0,0 @@ -package mage.verify; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; - -import java.util.List; - -import static mage.verify.MtgJson.MTGJSON_IGNORE_NEW_PROPERTIES; - -@JsonIgnoreProperties(ignoreUnknown = MTGJSON_IGNORE_NEW_PROPERTIES) -public class JsonToken { - public String artist; - public String borderColor; - public List colorIdentity; - public List colorIndicator; - public List colors; - public String loyalty; - public String name; - public String number; - public String power; - public List reverseRelated; - public String side; - public String text; - public String toughness; - public String type; - public String uuid; - public String watermark; - public boolean isOnlineOnly; - public String scryfallId; -} diff --git a/Mage.Verify/src/main/java/mage/verify/MtgJsonCard.java b/Mage.Verify/src/main/java/mage/verify/MtgJsonCard.java new file mode 100644 index 00000000000..6e990337d23 --- /dev/null +++ b/Mage.Verify/src/main/java/mage/verify/MtgJsonCard.java @@ -0,0 +1,23 @@ +package mage.verify; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +import java.util.List; + +import static mage.verify.MtgJsonService.MTGJSON_IGNORE_NEW_PROPERTIES; + +@JsonIgnoreProperties(ignoreUnknown = MTGJSON_IGNORE_NEW_PROPERTIES) +class MtgJsonCard { + // docs: https://mtgjson.com/v4/docs.html + public List colorIdentity; + public List colors; + public String layout; + public String manaCost; + public String number; + public String power; + public List subtypes; + public List supertypes; + public String text; + public String toughness; + public List types; +} diff --git a/Mage.Verify/src/main/java/mage/verify/MtgJson.java b/Mage.Verify/src/main/java/mage/verify/MtgJsonService.java similarity index 88% rename from Mage.Verify/src/main/java/mage/verify/MtgJson.java rename to Mage.Verify/src/main/java/mage/verify/MtgJsonService.java index 705564689bb..fc2a3919296 100644 --- a/Mage.Verify/src/main/java/mage/verify/MtgJson.java +++ b/Mage.Verify/src/main/java/mage/verify/MtgJsonService.java @@ -18,7 +18,7 @@ import java.util.List; import java.util.Map; import java.util.zip.ZipInputStream; -public final class MtgJson { +public final class MtgJsonService { public static Map mtgJsonToXMageCodes = new HashMap<>(); public static Map xMageToMtgJsonCodes = new HashMap<>(); @@ -49,11 +49,11 @@ public final class MtgJson { } } - private MtgJson() { + private MtgJsonService() { } private static final class CardHolder { - private static final Map cards; + private static final Map cards; static { try { @@ -62,7 +62,7 @@ public final class MtgJson { List keysToDelete = new ArrayList<>(); // fix names - Map newKeys = new HashMap<>(); + Map newKeys = new HashMap<>(); for (String key : cards.keySet()) { if (key.contains("(")) { newKeys.put(key.replaceAll("\\(.*\\)", "").trim(), cards.get(key)); @@ -74,7 +74,7 @@ public final class MtgJson { // remove wrong data (tokens) keysToDelete.clear(); - for (Map.Entry record : cards.entrySet()) { + for (Map.Entry record : cards.entrySet()) { if (record.getValue().layout.equals("token") || record.getValue().layout.equals("double_faced_token")) { keysToDelete.add(record.getKey()); } @@ -89,7 +89,7 @@ public final class MtgJson { } private static final class SetHolder { - private static final Map sets; + private static final Map sets; static { try { @@ -100,18 +100,18 @@ public final class MtgJson { } } - private static Map loadAllCards() throws IOException { - return readFromZip("AllCards.json.zip", new TypeReference>() { + private static Map loadAllCards() throws IOException { + return readFromZip("AllCards.json.zip", new TypeReference>() { }); } - private static Map loadAllSets() throws IOException { - return readFromZip("AllPrintings.json.zip", new TypeReference>() { + private static Map loadAllSets() throws IOException { + return readFromZip("AllPrintings.json.zip", new TypeReference>() { }); } private static T readFromZip(String filename, TypeReference ref) throws IOException { - InputStream stream = MtgJson.class.getResourceAsStream(filename); + InputStream stream = MtgJsonService.class.getResourceAsStream(filename); if (stream == null) { File file = new File(filename); if (!file.exists()) { @@ -133,11 +133,11 @@ public final class MtgJson { } - public static Map sets() { + public static Map sets() { return SetHolder.sets; } - public static JsonCard card(String name) { + public static MtgJsonCard card(String name) { return findReference(CardHolder.cards, name); } diff --git a/Mage.Verify/src/main/java/mage/verify/MtgJsonSet.java b/Mage.Verify/src/main/java/mage/verify/MtgJsonSet.java new file mode 100644 index 00000000000..38a5a68978d --- /dev/null +++ b/Mage.Verify/src/main/java/mage/verify/MtgJsonSet.java @@ -0,0 +1,16 @@ +package mage.verify; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +import java.util.List; + +import static mage.verify.MtgJsonService.MTGJSON_IGNORE_NEW_PROPERTIES; + +@JsonIgnoreProperties(ignoreUnknown = MTGJSON_IGNORE_NEW_PROPERTIES) +class MtgJsonSet { + public List cards; + public String code; + public String name; + public String releaseDate; + public int totalSetSize; +} diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java index c2680f531bc..208625951ee 100644 --- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java +++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java @@ -426,12 +426,12 @@ public class VerifyCardDataTest { Collection sets = Sets.getInstance().values(); // official sets - for (Map.Entry refEntry : MtgJson.sets().entrySet()) { - JsonSet refSet = refEntry.getValue(); + for (Map.Entry refEntry : MtgJsonService.sets().entrySet()) { + MtgJsonSet refSet = refEntry.getValue(); mtgCards += refSet.totalSetSize; // replace codes for aliases - String searchSet = MtgJson.mtgJsonToXMageCodes.getOrDefault(refSet.code, refSet.code); + String searchSet = MtgJsonService.mtgJsonToXMageCodes.getOrDefault(refSet.code, refSet.code); if (skipListHaveName(SKIP_LIST_UNSUPPORTED_SETS, searchSet)) { unsupportedSets++; unsupportedCards += refSet.totalSetSize; @@ -455,7 +455,7 @@ public class VerifyCardDataTest { // unofficial sets info for (ExpansionSet set : sets) { - if (MtgJson.sets().containsKey(set.getCode())) { + if (MtgJsonService.sets().containsKey(set.getCode())) { continue; } @@ -468,10 +468,10 @@ public class VerifyCardDataTest { printMessages(info); System.out.println(); System.out.println("Official sets implementation stats:"); - System.out.println("* MTG sets: " + MtgJson.sets().size() + ", cards: " + mtgCards); + System.out.println("* MTG sets: " + MtgJsonService.sets().size() + ", cards: " + mtgCards); System.out.println("* Implemented sets: " + mtgSets + ", cards: " + xmageCards); System.out.println("* Unsupported sets: " + unsupportedSets + ", cards: " + unsupportedCards); - System.out.println("* TODO sets: " + (MtgJson.sets().size() - mtgSets - unsupportedSets) + ", cards: " + (mtgCards - xmageCards - unsupportedCards)); + System.out.println("* TODO sets: " + (MtgJsonService.sets().size() - mtgSets - unsupportedSets) + ", cards: " + (mtgCards - xmageCards - unsupportedCards)); System.out.println(); System.out.println("Unofficial sets implementation stats:"); System.out.println("* Implemented sets: " + xmageUnofficialSets + ", cards: " + xmageUnofficialCards); @@ -998,16 +998,16 @@ public class VerifyCardDataTest { } private void check(Card card, Set tokens, int cardIndex) { - JsonCard ref = MtgJson.card(card.getName()); + MtgJsonCard ref = MtgJsonService.card(card.getName()); if (ref == null) { warn(card, "Missing card reference"); return; } checkAll(card, ref, cardIndex); if (tokens != null) { - JsonCard ref2 = null; + MtgJsonCard ref2 = null; if (card.isFlipCard()) { - ref2 = MtgJson.card(card.getFlipCardName()); + ref2 = MtgJsonService.card(card.getFlipCardName()); } for (String token : tokens) { if (!(token.equals(card.getName()) @@ -1020,7 +1020,7 @@ public class VerifyCardDataTest { } } - private boolean containsInTypesOrText(JsonCard ref, String token) { + private boolean containsInTypesOrText(MtgJsonCard ref, String token) { return contains(ref.types, token) || contains(ref.subtypes, token) || contains(ref.supertypes, token) @@ -1031,7 +1031,7 @@ public class VerifyCardDataTest { return options != null && options.contains(value); } - private void checkAll(Card card, JsonCard ref, int cardIndex) { + private void checkAll(Card card, MtgJsonCard ref, int cardIndex) { checkCost(card, ref); checkPT(card, ref); checkSubtypes(card, ref); @@ -1045,7 +1045,7 @@ public class VerifyCardDataTest { checkWrongAbilitiesText(card, ref, cardIndex); } - private void checkColors(Card card, JsonCard ref) { + private void checkColors(Card card, MtgJsonCard ref) { if (skipListHaveName(SKIP_LIST_COLOR, card.getExpansionSetCode(), card.getName())) { return; } @@ -1070,7 +1070,7 @@ public class VerifyCardDataTest { } } - private void checkSubtypes(Card card, JsonCard ref) { + private void checkSubtypes(Card card, MtgJsonCard ref) { if (skipListHaveName(SKIP_LIST_SUBTYPE, card.getExpansionSetCode(), card.getName())) { return; } @@ -1104,7 +1104,7 @@ public class VerifyCardDataTest { } } - private void checkSupertypes(Card card, JsonCard ref) { + private void checkSupertypes(Card card, MtgJsonCard ref) { if (skipListHaveName(SKIP_LIST_SUPERTYPE, card.getExpansionSetCode(), card.getName())) { return; } @@ -1115,7 +1115,7 @@ public class VerifyCardDataTest { } } - private void checkMissingAbilities(Card card, JsonCard ref) { + private void checkMissingAbilities(Card card, MtgJsonCard ref) { if (skipListHaveName(SKIP_LIST_MISSING_ABILITIES, card.getExpansionSetCode(), card.getName())) { return; } @@ -1180,7 +1180,7 @@ public class VerifyCardDataTest { } } - private void checkLegalityFormats(Card card, JsonCard ref) { + private void checkLegalityFormats(Card card, MtgJsonCard ref) { if (skipListHaveName("LEGALITY", card.getExpansionSetCode(), card.getName())) { return; } @@ -1297,7 +1297,7 @@ public class VerifyCardDataTest { } }*/ - private void checkWrongAbilitiesText(Card card, JsonCard ref, int cardIndex) { + private void checkWrongAbilitiesText(Card card, MtgJsonCard ref, int cardIndex) { // checks missing or wrong text if (!card.getExpansionSetCode().equals(FULL_ABILITIES_CHECK_SET_CODE)) { return; @@ -1365,7 +1365,7 @@ public class VerifyCardDataTest { } } - private void checkTypes(Card card, JsonCard ref) { + private void checkTypes(Card card, MtgJsonCard ref) { if (skipListHaveName(SKIP_LIST_TYPE, card.getExpansionSetCode(), card.getName())) { return; } @@ -1380,7 +1380,7 @@ public class VerifyCardDataTest { } } - private void checkPT(Card card, JsonCard ref) { + private void checkPT(Card card, MtgJsonCard ref) { if (skipListHaveName(SKIP_LIST_PT, card.getExpansionSetCode(), card.getName())) { return; } @@ -1400,7 +1400,7 @@ public class VerifyCardDataTest { } } - private void checkCost(Card card, JsonCard ref) { + private void checkCost(Card card, MtgJsonCard ref) { if (skipListHaveName(SKIP_LIST_COST, card.getExpansionSetCode(), card.getName())) { return; } @@ -1418,7 +1418,7 @@ public class VerifyCardDataTest { } } - private void checkNumbers(Card card, JsonCard ref) { + private void checkNumbers(Card card, MtgJsonCard ref) { if (skipListHaveName(SKIP_LIST_NUMBER, card.getExpansionSetCode(), card.getName())) { return; } @@ -1446,7 +1446,7 @@ public class VerifyCardDataTest { || checkName.equals("Wastes"); } - private void checkBasicLands(Card card, JsonCard ref) { + private void checkBasicLands(Card card, MtgJsonCard ref) { // basic lands must have Rarity.LAND and SuperType.BASIC // other cards can't have that stats