diff --git a/forge-core/src/main/java/forge/util/storage/StorageReaderFileSections.java b/forge-core/src/main/java/forge/util/storage/StorageReaderFileSections.java index 88b252d8461..e1a0d12787d 100644 --- a/forge-core/src/main/java/forge/util/storage/StorageReaderFileSections.java +++ b/forge-core/src/main/java/forge/util/storage/StorageReaderFileSections.java @@ -49,12 +49,16 @@ public abstract class StorageReaderFileSections extends StorageReaderBase } + protected Map createMap() { + return new TreeMap(); + } + /* (non-Javadoc) * @see forge.util.IItemReader#readAll() */ @Override public Map readAll() { - final Map result = new TreeMap(); + final Map result = createMap(); int idx = 0; Iterable file = FileUtil.readFile(this.file); diff --git a/forge-game/src/main/java/forge/game/GameFormat.java b/forge-game/src/main/java/forge/game/GameFormat.java index b2d544ecccf..99229e22cb9 100644 --- a/forge-game/src/main/java/forge/game/GameFormat.java +++ b/forge-game/src/main/java/forge/game/GameFormat.java @@ -195,6 +195,8 @@ public class GameFormat implements Comparable { * Instantiates a new format utils. */ public static class Reader extends StorageReaderFileSections { + List naturallyOrdered = new ArrayList(); + public Reader(File file0) { super(file0, GameFormat.FN_GET_NAME); } @@ -214,13 +216,18 @@ public class GameFormat implements Comparable { bannedCards = Arrays.asList(strCars.split("; ")); } - return new GameFormat(title, sets, bannedCards, 1 + idx); + GameFormat result = new GameFormat(title, sets, bannedCards, 1 + idx); + naturallyOrdered.add(result); + return result; } } public static class Collection extends StorageBase { - public Collection(StorageReaderBase reader) { + private List naturallyOrdered; + + public Collection(GameFormat.Reader reader) { super("Format collections", reader); + naturallyOrdered = reader.naturallyOrdered; } public GameFormat getStandard() { @@ -240,7 +247,7 @@ public class GameFormat implements Comparable { } public GameFormat getFormatOfDeck(Deck deck) { - for(GameFormat gf : this) { + for(GameFormat gf : naturallyOrdered) { if ( Deck.createPredicate(gf.getFilterRules()).apply(deck) ) return gf; }