From 9286d5e943f80b2cfcd886eb4420db895cfb17a2 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Sat, 2 Mar 2013 07:55:01 +0000 Subject: [PATCH] StorageReaderFile passes record seq. number along with the record itself --- src/main/java/forge/card/BoosterData.java | 2 +- src/main/java/forge/card/CardBlock.java | 2 +- src/main/java/forge/card/CardEdition.java | 4 ++-- src/main/java/forge/card/FatPackData.java | 2 +- src/main/java/forge/card/FormatCollection.java | 4 ++-- src/main/java/forge/quest/QuestWorld.java | 7 ++++++- src/main/java/forge/util/storage/StorageReaderFile.java | 8 +++++--- 7 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/main/java/forge/card/BoosterData.java b/src/main/java/forge/card/BoosterData.java index fd8596b19c5..b1294a3d3fa 100644 --- a/src/main/java/forge/card/BoosterData.java +++ b/src/main/java/forge/card/BoosterData.java @@ -180,7 +180,7 @@ public class BoosterData { * @see forge.util.StorageReaderFile#read(java.lang.String) */ @Override - protected BoosterData read(String line) { + protected BoosterData read(String line, int i) { final FileSection section = FileSection.parse(line, ":", "|"); int nC = section.getInt("Commons", 0); int nU = section.getInt("Uncommons", 0); diff --git a/src/main/java/forge/card/CardBlock.java b/src/main/java/forge/card/CardBlock.java index e49658acb44..65dcd1ee945 100644 --- a/src/main/java/forge/card/CardBlock.java +++ b/src/main/java/forge/card/CardBlock.java @@ -229,7 +229,7 @@ public final class CardBlock implements Comparable { * @see forge.util.StorageReaderFile#read(java.lang.String) */ @Override - protected CardBlock read(String line) { + protected CardBlock read(String line, int i) { final String[] sParts = line.trim().split("\\|"); String name = null; diff --git a/src/main/java/forge/card/CardEdition.java b/src/main/java/forge/card/CardEdition.java index 4d8fff6582f..9f514a01dca 100644 --- a/src/main/java/forge/card/CardEdition.java +++ b/src/main/java/forge/card/CardEdition.java @@ -208,9 +208,9 @@ public final class CardEdition implements Comparable { // immutable } @Override - protected CardEdition read(String line) { + protected CardEdition read(String line, int i) { FileSection section = FileSection.parse(line, ":", "|"); - int index = section.getInt("index", -1); + int index = 1+i; String code2 = section.get("code2"); String code = section.get("code3"); String type = section.get("type"); diff --git a/src/main/java/forge/card/FatPackData.java b/src/main/java/forge/card/FatPackData.java index 233eaa61e7a..ac0c1998b4d 100644 --- a/src/main/java/forge/card/FatPackData.java +++ b/src/main/java/forge/card/FatPackData.java @@ -57,7 +57,7 @@ public class FatPackData { * @see forge.util.StorageReaderFile#read(java.lang.String) */ @Override - protected FatPackData read(String line) { + protected FatPackData read(String line, int i) { final FileSection section = FileSection.parse(line, ":", "|"); int nBoosters = section.getInt("Boosters", 0); int nLand = section.getInt("BasicLands", 0); diff --git a/src/main/java/forge/card/FormatCollection.java b/src/main/java/forge/card/FormatCollection.java index 2e4a1deb1ee..20d50a16bc0 100644 --- a/src/main/java/forge/card/FormatCollection.java +++ b/src/main/java/forge/card/FormatCollection.java @@ -93,7 +93,7 @@ public final class FormatCollection extends StorageView { * @see forge.util.StorageReaderFile#read(java.lang.String) */ @Override - protected GameFormat read(String line) { + protected GameFormat read(String line, int i) { final List sets = new ArrayList(); // default: all sets allowed final List bannedCards = new ArrayList(); // default: // nothing @@ -101,7 +101,7 @@ public final class FormatCollection extends StorageView { FileSection section = FileSection.parse(line, ":", "|"); String name = section.get("name"); - int index = section.getInt("index", 0); + int index = 1 + i; String strSets = section.get("sets"); if ( null != strSets ) { sets.addAll(Arrays.asList(strSets.split(", "))); diff --git a/src/main/java/forge/quest/QuestWorld.java b/src/main/java/forge/quest/QuestWorld.java index 5c00b5d54b3..e0dfb175035 100644 --- a/src/main/java/forge/quest/QuestWorld.java +++ b/src/main/java/forge/quest/QuestWorld.java @@ -24,6 +24,7 @@ import java.util.List; import com.google.common.base.Function; import forge.quest.data.GameFormatQuest; +import forge.util.FileSection; import forge.util.storage.StorageReaderFile; /** @@ -121,7 +122,7 @@ public class QuestWorld implements Comparable{ * @see forge.util.StorageReaderFile#read(java.lang.String) */ @Override - protected QuestWorld read(String line) { + protected QuestWorld read(String line, int i) { String useName = null; String useDir = null; GameFormatQuest useFormat = null; @@ -129,9 +130,13 @@ public class QuestWorld implements Comparable{ final List sets = new ArrayList(); final List bannedCards = new ArrayList(); // if both empty, no format + // This is what you need to use here => + // FileSection.parse(line, ":", "|"); + final String[] sParts = line.trim().split("\\|"); for (final String sPart : sParts) { + final String[] kv = sPart.split(":", 2); final String key = kv[0].toLowerCase(); if ("name".equals(key)) { diff --git a/src/main/java/forge/util/storage/StorageReaderFile.java b/src/main/java/forge/util/storage/StorageReaderFile.java index d788337e8f1..ae743e7010c 100644 --- a/src/main/java/forge/util/storage/StorageReaderFile.java +++ b/src/main/java/forge/util/storage/StorageReaderFile.java @@ -70,12 +70,13 @@ public abstract class StorageReaderFile implements IItemReader { public Map readAll() { final Map result = new TreeMap(); + int idx = 0; for (final String s : FileUtil.readFile(this.file)) { if (!this.lineContainsObject(s)) { continue; } - final T item = this.read(s); + final T item = this.read(s, idx); if (null == item) { final String msg = "An object stored in " + this.file.getPath() + " failed to load.\nPlease submit this as a bug with the mentioned file attached."; @@ -83,6 +84,7 @@ public abstract class StorageReaderFile implements IItemReader { continue; } + idx++; result.put(this.keySelector.apply(item), item); } @@ -95,8 +97,8 @@ public abstract class StorageReaderFile implements IItemReader { * @param line * the line * @return the t - */ - protected abstract T read(String line); + */ + protected abstract T read(String line, int idx); /** * Line contains object.