From b13394f03cd9e7c8a3ce299c7312b8528ea14d21 Mon Sep 17 00:00:00 2001
From: North <robyter@gmail>
Date: Sun, 16 Jun 2013 17:19:10 +0300
Subject: [PATCH] refactoring to CardImageSource

---
 .../card/dl/sources/CardImageSource.java      |  6 ++--
 .../dl/sources/MagicCardsImageSource.java     | 31 ++++++++++---------
 .../dl/sources/WizardCardsImageSource.java    | 25 ++++++++-------
 .../plugins/card/images/DownloadPictures.java |  9 ++----
 4 files changed, 37 insertions(+), 34 deletions(-)

diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/CardImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/CardImageSource.java
index dac76f4ed1..fa6c54aa94 100644
--- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/CardImageSource.java
+++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/CardImageSource.java
@@ -1,12 +1,14 @@
 package org.mage.plugins.card.dl.sources;
 
+import org.mage.plugins.card.images.CardDownloadData;
+
 /**
  *
  * @author North
  */
 public interface CardImageSource {
 
-    String generateURL(Integer collectorId, String cardName, String cardSet, boolean twoFacedCard, boolean secondFace, boolean isFlipCard, boolean isSplitCard, boolean flippedView) throws Exception;
-    String generateTokenUrl(String name, String set);
+    String generateURL(CardDownloadData card) throws Exception;
+    String generateTokenUrl(CardDownloadData card);
     Float getAverageSize();
 }
diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MagicCardsImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MagicCardsImageSource.java
index 192e8c0fcd..5f340657f9 100644
--- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MagicCardsImageSource.java
+++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MagicCardsImageSource.java
@@ -1,5 +1,6 @@
 package org.mage.plugins.card.dl.sources;
 
+import org.mage.plugins.card.images.CardDownloadData;
 import org.mage.plugins.card.utils.CardImageUtils;
 
 import java.util.HashMap;
@@ -64,7 +65,9 @@ public class MagicCardsImageSource implements CardImageSource {
     }
 
     @Override
-    public String generateURL(Integer collectorId, String cardName, String cardSet, boolean twoFacedCard, boolean secondSide, boolean isFlipCard, boolean isSplitCard, boolean flippedView) throws Exception {
+    public String generateURL(CardDownloadData card) throws Exception {
+        Integer collectorId = card.getCollectorId();
+        String cardSet = card.getSet();
         if (collectorId == null || cardSet == null) {
             throw new Exception("Wrong parameters for image: collector id: " + collectorId + ",card set: " + cardSet);
         }
@@ -72,14 +75,14 @@ public class MagicCardsImageSource implements CardImageSource {
         StringBuilder url = new StringBuilder("http://magiccards.info/scans/en/");
         url.append(set.toLowerCase()).append("/").append(collectorId);
 
-        if (twoFacedCard) {
-            url.append(secondSide ? "b" : "a");
+        if (card.isTwoFacedCard()) {
+            url.append(card.isSecondSide() ? "b" : "a");
         }
-        if (isSplitCard) {
+        if (card.isSplitCard()) {
             url.append("a");
         }
-        if (isFlipCard) {
-            if (flippedView) { // download rotated by 180 degree image
+        if (card.isFlipCard()) {
+            if (card.isFlippedSide()) { // download rotated by 180 degree image
                 url.append("b");
             } else {
                 url.append("a");
@@ -91,17 +94,15 @@ public class MagicCardsImageSource implements CardImageSource {
     }
 
     @Override
-    public String generateTokenUrl(String name, String set) {
-        String _name = name.replaceAll(" ", "-").replace(",", "").toLowerCase();
-        String _set = "not-supported-set";
-        if (setNameReplacement.containsKey(set)) {
-            _set = setNameReplacement.get(set);
+    public String generateTokenUrl(CardDownloadData card) {
+        String name = card.getName().replaceAll(" ", "-").replace(",", "").toLowerCase();
+        String set = "not-supported-set";
+        if (setNameReplacement.containsKey(card.getSet())) {
+            set = setNameReplacement.get(card.getSet());
         } else {
-            _set += "-" + set;
+            set += "-" + card.getSet();
         }
-        String url = "http://magiccards.info/extras/token/" + _set + "/" + _name + ".jpg";
-        return url;
-
+        return "http://magiccards.info/extras/token/" + set + "/" + name + ".jpg";
     }
 
     @Override
diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java
index d849cbc8ae..aa597c8dee 100644
--- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java
+++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java
@@ -3,6 +3,7 @@ package org.mage.plugins.card.dl.sources;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.select.Elements;
+import org.mage.plugins.card.images.CardDownloadData;
 
 import java.io.IOException;
 import java.util.HashMap;
@@ -15,8 +16,8 @@ import java.util.Map;
 public class WizardCardsImageSource implements CardImageSource {
 
     private static CardImageSource instance;
-    private static Map setsAliases;
-    private Map sets;
+    private static Map<String, String> setsAliases;
+    private Map<String, Map<String, String>> sets;
 
     public static CardImageSource getInstance() {
         if (instance == null) {
@@ -26,8 +27,8 @@ public class WizardCardsImageSource implements CardImageSource {
     }
 
     public WizardCardsImageSource() {
-        sets = new HashMap();
-        setsAliases = new HashMap();
+        sets = new HashMap<String, Map<String, String>>();
+        setsAliases = new HashMap<String, String>();
         setsAliases.put("MMA", "modernmasters/cig");
         setsAliases.put("DGM", "dragonsmaze/cig");
         setsAliases.put("GTC", "gatecrash/cig");
@@ -56,7 +57,7 @@ public class WizardCardsImageSource implements CardImageSource {
     private Map<String, String> getSetLinks(String cardSet) {
         Map<String, String> setLinks = new HashMap<String, String>();
         try {
-            Document doc = Jsoup.connect("http://www.wizards.com/magic/tcg/article.aspx?x=mtg/tcg/" + (String) setsAliases.get(cardSet)).get();
+            Document doc = Jsoup.connect("http://www.wizards.com/magic/tcg/article.aspx?x=mtg/tcg/" + setsAliases.get(cardSet)).get();
             Elements cardsImages = doc.select("img[height$=370]");
             for (int i = 0; i < cardsImages.size(); i++) {
                 String cardName = cardsImages.get(i).attr("title").replace("\u00C6", "AE").replace("\u2019", "'");
@@ -94,20 +95,22 @@ public class WizardCardsImageSource implements CardImageSource {
     }
 
     @Override
-    public String generateURL(Integer collectorId, String cardName, String cardSet, boolean twoFacedCard, boolean secondSide, boolean isFlipCard, boolean isSplitCard, boolean flippedView) throws Exception {
+    public String generateURL(CardDownloadData card) throws Exception {
+        Integer collectorId = card.getCollectorId();
+        String cardSet = card.getSet();
         if (collectorId == null || cardSet == null) {
             throw new Exception("Wrong parameters for image: collector id: " + collectorId + ",card set: " + cardSet);
         }
-        if (flippedView) { //doesn't support rotated images
+        if (card.isFlippedSide()) { //doesn't support rotated images
             return null;
         }
         if (setsAliases.get(cardSet) != null) {
-            Map<String, String> setLinks = (Map<String, String>) sets.get(cardSet);
+            Map<String, String> setLinks = sets.get(cardSet);
             if (setLinks == null) {
                 setLinks = getSetLinks(cardSet);
                 sets.put(cardSet, setLinks);
             }
-            String link = setLinks.get(cardName);
+            String link = setLinks.get(card.getDownloadName());
             if (link == null) {
                 if (setLinks.size() >= collectorId) {
                     link = setLinks.get(Integer.toString(collectorId - 1));
@@ -127,7 +130,7 @@ public class WizardCardsImageSource implements CardImageSource {
     }
 
     @Override
-    public String generateTokenUrl(String name, String set) {
+    public String generateTokenUrl(CardDownloadData card) {
         return null;
     }
 
@@ -135,4 +138,4 @@ public class WizardCardsImageSource implements CardImageSource {
     public Float getAverageSize() {
         return 60.0f;
     }
-}
\ No newline at end of file
+}
diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java b/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java
index b985cf4aa9..36e73d4a36 100644
--- a/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java
+++ b/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java
@@ -60,8 +60,6 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
 
     private ExecutorService executor = Executors.newFixedThreadPool(10);
 
-    public static final Proxy.Type[] types = Proxy.Type.values();
-
     public static void main(String[] args) {
         startDownload(null, null, null);
     }
@@ -399,10 +397,9 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
                         if (card.getCollectorId() != 0) {
                             continue;
                         }
-                        url = cardImageSource.generateTokenUrl(card.getName(), card.getSet());
+                        url = cardImageSource.generateTokenUrl(card);
                     } else {
-                        url = cardImageSource.generateURL(card.getCollectorId(), card.getDownloadName(), card.getSet(),
-                                card.isTwoFacedCard(), card.isSecondSide(), card.isFlipCard(), card.isSplitCard(), card.isFlippedSide());
+                        url = cardImageSource.generateURL(card);
                     }
 
                     if (url != null) {
@@ -566,7 +563,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
             count = DownloadPictures.this.cards.size();
 
             if (count == 0) {
-                bar.setString(String.format("0 cards remaining! Please close!", count));
+                bar.setString("0 cards remaining! Please close!");
             } else {
                 bar.setString(String.format("%d cards remaining! Please choose another source!", count));
                 //executor = Executors.newFixedThreadPool(10);