diff --git a/.gitattributes b/.gitattributes index 9d5f3bfaf28..464c0ad391d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11212,7 +11212,6 @@ src/main/java/forge/deck/DeckBase.java -text src/main/java/forge/deck/DeckRecognizer.java -text src/main/java/forge/deck/DeckSection.java -text src/main/java/forge/deck/DeckSet.java -text -src/main/java/forge/deck/OldDeckParser.java -text src/main/java/forge/deck/generate/DeckGenerator.java -text src/main/java/forge/deck/generate/Generate2ColorDeck.java svneol=native#text/plain src/main/java/forge/deck/generate/Generate3ColorDeck.java svneol=native#text/plain @@ -11227,6 +11226,7 @@ src/main/java/forge/deck/io/DeckFileHeader.java -text src/main/java/forge/deck/io/DeckSerializer.java -text src/main/java/forge/deck/io/DeckSerializerBase.java -text src/main/java/forge/deck/io/DeckSetSerializer.java -text +src/main/java/forge/deck/io/OldDeckParser.java -text src/main/java/forge/deck/package-info.java svneol=native#text/plain src/main/java/forge/error/BugzReporter.java svneol=native#text/plain src/main/java/forge/error/ErrorViewer.java svneol=native#text/plain diff --git a/src/main/java/forge/deck/CardCollections.java b/src/main/java/forge/deck/CardCollections.java index 5d0ddf0a260..acab4ed1df1 100644 --- a/src/main/java/forge/deck/CardCollections.java +++ b/src/main/java/forge/deck/CardCollections.java @@ -5,6 +5,7 @@ import java.io.File; import forge.deck.io.CubeSerializer; import forge.deck.io.DeckSerializer; import forge.deck.io.DeckSetSerializer; +import forge.deck.io.OldDeckParser; import forge.util.FolderMap; import forge.util.IFolderMap; diff --git a/src/main/java/forge/deck/OldDeckParser.java b/src/main/java/forge/deck/io/OldDeckParser.java similarity index 95% rename from src/main/java/forge/deck/OldDeckParser.java rename to src/main/java/forge/deck/io/OldDeckParser.java index a4d7a51de6c..26db842ab80 100644 --- a/src/main/java/forge/deck/OldDeckParser.java +++ b/src/main/java/forge/deck/io/OldDeckParser.java @@ -1,4 +1,4 @@ -package forge.deck; +package forge.deck.io; import java.io.File; import java.io.FilenameFilter; @@ -14,9 +14,9 @@ import org.apache.commons.lang3.tuple.MutablePair; import org.apache.commons.lang3.tuple.Pair; import forge.PlayerType; -import forge.deck.io.DeckFileHeader; -import forge.deck.io.DeckSerializer; -import forge.deck.io.DeckSetSerializer; +import forge.deck.CustomLimited; +import forge.deck.Deck; +import forge.deck.DeckSet; import forge.util.FileUtil; import forge.util.IFolderMap; import forge.util.SectionUtil; diff --git a/src/main/java/forge/item/PreconDeck.java b/src/main/java/forge/item/PreconDeck.java index 17cf5e19095..a1625d6a1c9 100644 --- a/src/main/java/forge/item/PreconDeck.java +++ b/src/main/java/forge/item/PreconDeck.java @@ -79,28 +79,20 @@ public class PreconDeck implements InventoryItemFromSet { public PreconDeck(final File f) { final List deckLines = FileUtil.readFile(f); final Map> sections = SectionUtil.parseSections(deckLines); - this.deck = Deck.fromLines(deckLines); + this.deck = Deck.fromSections(sections); - String filenameProxy = null; String setProxy = "n/a"; - String descriptionProxy = ""; - final List metadata = sections.get("metadata"); - if ((null != metadata) && !metadata.isEmpty()) { - for (final String s : metadata) { - final String[] kv = s.split("="); - if ("Image".equalsIgnoreCase(kv[0])) { - filenameProxy = kv[1]; - } else if ("set".equalsIgnoreCase(kv[0]) && (SetUtils.getSetByCode(kv[1].toUpperCase()) != null)) { - setProxy = kv[1]; - } else if ("Description".equalsIgnoreCase(kv[0])) { - descriptionProxy = kv[1]; - } - } - } - this.imageFilename = filenameProxy; + + Map kv = SectionUtil.parseKvPairs(sections.get("metadata"), "="); + + imageFilename = kv.get("Image"); + description = kv.get("Description"); + if( SetUtils.getSetByCode(kv.get("set").toUpperCase()) != null ) + { setProxy = kv.get("set"); } + this.set = setProxy; this.recommendedDeals = new SellRules(sections.get("shop")); - this.description = descriptionProxy; + } /** diff --git a/src/main/java/forge/util/FolderMap.java b/src/main/java/forge/util/FolderMap.java index dc36903d697..82b288d9e38 100644 --- a/src/main/java/forge/util/FolderMap.java +++ b/src/main/java/forge/util/FolderMap.java @@ -61,6 +61,16 @@ public class FolderMap extends FolderMapView implements I public final void delete(final String deckName) { serializer.erase(this.getMap().remove(deckName)); } + + + + /* (non-Javadoc) + * @see forge.deck.IFolderMapView#isUnique(java.lang.String) + */ + @Override + public final boolean isUnique(final String name) { + return !this.getMap().containsKey(name); + } diff --git a/src/main/java/forge/util/FolderMapView.java b/src/main/java/forge/util/FolderMapView.java index ef7162e6b64..713162f0c28 100644 --- a/src/main/java/forge/util/FolderMapView.java +++ b/src/main/java/forge/util/FolderMapView.java @@ -47,14 +47,6 @@ public class FolderMapView implements Iterable, IFolderMa this.map = io.readAll(); } - /* (non-Javadoc) - * @see forge.deck.IFolderMapView#isUnique(java.lang.String) - */ - @Override - public final boolean isUnique(final String name) { - return !this.map.containsKey(name); - } - /* (non-Javadoc) * @see forge.deck.IFolderMapView#get(java.lang.String) */ diff --git a/src/main/java/forge/util/IFolderMap.java b/src/main/java/forge/util/IFolderMap.java index c92462eb494..e1a9b19bbef 100644 --- a/src/main/java/forge/util/IFolderMap.java +++ b/src/main/java/forge/util/IFolderMap.java @@ -28,4 +28,15 @@ public interface IFolderMap extends IFolderMapView { */ public abstract void delete(final String deckName); + /** + *

+ * isUnique. + *

+ * + * @param deckName + * a {@link java.lang.String} object. + * @return a boolean. + */ + public abstract boolean isUnique(final String name); + } \ No newline at end of file diff --git a/src/main/java/forge/util/IFolderMapView.java b/src/main/java/forge/util/IFolderMapView.java index f74f26892fd..40bd3249862 100644 --- a/src/main/java/forge/util/IFolderMapView.java +++ b/src/main/java/forge/util/IFolderMapView.java @@ -10,17 +10,6 @@ import java.util.Collection; */ public interface IFolderMapView extends Iterable { - /** - *

- * isUnique. - *

- * - * @param deckName - * a {@link java.lang.String} object. - * @return a boolean. - */ - public abstract boolean isUnique(final String name); - /** *

* getDeck. diff --git a/src/main/java/forge/util/SectionUtil.java b/src/main/java/forge/util/SectionUtil.java index ea45b02625e..a4599641f6c 100644 --- a/src/main/java/forge/util/SectionUtil.java +++ b/src/main/java/forge/util/SectionUtil.java @@ -86,6 +86,9 @@ public class SectionUtil { * @return the map */ public static Map parseKvPairs(final List lines, String separator ) { + if ( null == lines ) + return null; + final Map result = new TreeMap(String.CASE_INSENSITIVE_ORDER); for (final String dd : lines) {