From 9af799a88ec9dd8464c9af4ac1aaa20f4800c43d Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Fri, 15 Mar 2013 21:51:52 +0000 Subject: [PATCH] Changed some public final static arrays into guava's ImmutableList in Card class changed members to be just List instances (instead of ArrayList) --- src/main/java/forge/Card.java | 49 ++++++++++--------- src/main/java/forge/CardUtil.java | 2 +- src/main/java/forge/Constant.java | 6 ++- .../java/forge/card/ability/AbilityUtils.java | 2 +- .../java/forge/card/ability/ai/ProtectAi.java | 3 +- .../ability/effects/ChooseColorEffect.java | 6 ++- .../card/ability/effects/ManaEffect.java | 13 ++--- src/main/java/forge/card/mana/ManaPool.java | 4 +- .../StaticAbilityContinuous.java | 2 +- src/main/java/forge/game/GameActionUtil.java | 2 +- .../java/forge/game/limited/SealedDeck.java | 5 +- src/main/java/forge/game/phase/Untap.java | 4 +- 12 files changed, 51 insertions(+), 47 deletions(-) diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java index a7896117816..d9d2909b8d6 100644 --- a/src/main/java/forge/Card.java +++ b/src/main/java/forge/Card.java @@ -31,6 +31,7 @@ import java.util.Set; import java.util.TreeMap; import com.esotericsoftware.minlog.Log; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import forge.CardPredicates.Presets; @@ -207,28 +208,28 @@ public class Card extends GameEntity implements Comparable { private String miracleCost = null; private String chosenType = ""; // private String chosenColor = ""; - private ArrayList chosenColor = new ArrayList(); + private List chosenColor = new ArrayList(); private String namedCard = ""; private int chosenNumber; private Player chosenPlayer; - private ArrayList chosenCard = new ArrayList(); + private List chosenCard = new ArrayList(); private Card cloneOrigin = null; - private final ArrayList clones = new ArrayList(); - private final ArrayList gainControlTargets = new ArrayList(); - private final ArrayList gainControlReleaseCommands = new ArrayList(); + private final List clones = new ArrayList(); + private final List gainControlTargets = new ArrayList(); + private final List gainControlReleaseCommands = new ArrayList(); - private final ArrayList zcTriggers = new ArrayList(); - private final ArrayList equipCommandList = new ArrayList(); - private final ArrayList unEquipCommandList = new ArrayList(); - private final ArrayList enchantCommandList = new ArrayList(); - private final ArrayList unEnchantCommandList = new ArrayList(); - private final ArrayList untapCommandList = new ArrayList(); - private final ArrayList changeControllerCommandList = new ArrayList(); + private final List zcTriggers = new ArrayList(); + private final List equipCommandList = new ArrayList(); + private final List unEquipCommandList = new ArrayList(); + private final List enchantCommandList = new ArrayList(); + private final List unEnchantCommandList = new ArrayList(); + private final List untapCommandList = new ArrayList(); + private final List changeControllerCommandList = new ArrayList(); - private static String[] storableSVars = { "ChosenX", "ChosenY" }; + private final static ImmutableList storableSVars = ImmutableList.of("ChosenX", "ChosenY" ); - private final ArrayList hauntedBy = new ArrayList(); + private final List hauntedBy = new ArrayList(); private Card haunting = null; private Card effectSource = null; @@ -565,7 +566,7 @@ public class Card extends GameEntity implements Comparable { * * @return a String array */ - public static String[] getStorableSVars() { + public static List getStorableSVars() { return Card.storableSVars; } @@ -1162,7 +1163,7 @@ public class Card extends GameEntity implements Comparable { * * @return a {@link java.util.ArrayList} object. */ - public final ArrayList getClones() { + public final List getClones() { return this.clones; } @@ -1174,7 +1175,7 @@ public class Card extends GameEntity implements Comparable { * @param c * a {@link java.util.ArrayList} object. */ - public final void setClones(final ArrayList c) { + public final void setClones(final Collection c) { this.clones.clear(); this.clones.addAll(c); } @@ -1912,7 +1913,7 @@ public class Card extends GameEntity implements Comparable { * * @return an ArrayList object. */ - public final ArrayList getChosenColor() { + public final List getChosenColor() { return this.chosenColor; } @@ -1924,7 +1925,7 @@ public class Card extends GameEntity implements Comparable { * @param s * an ArrayList object. */ - public final void setChosenColor(final ArrayList s) { + public final void setChosenColor(final List s) { this.chosenColor = s; } @@ -1935,7 +1936,7 @@ public class Card extends GameEntity implements Comparable { * * @return an ArrayList object. */ - public final ArrayList getChosenCard() { + public final List getChosenCard() { return this.chosenCard; } @@ -2005,7 +2006,7 @@ public class Card extends GameEntity implements Comparable { * * @return a list of cards this card has gained control of */ - public final ArrayList getGainControlTargets() { + public final List getGainControlTargets() { return this.gainControlTargets; } @@ -2039,7 +2040,7 @@ public class Card extends GameEntity implements Comparable { * * @return a {@link java.util.ArrayList} object. */ - public final ArrayList getGainControlReleaseCommands() { + public final List getGainControlReleaseCommands() { return this.gainControlReleaseCommands; } @@ -6003,7 +6004,7 @@ public class Card extends GameEntity implements Comparable { */ @Override public final boolean hasKeyword(final String keyword) { - String kw = new String(keyword); + String kw = keyword; if (kw.startsWith("HIDDEN")) { kw = kw.substring(7); } @@ -8646,7 +8647,7 @@ public class Card extends GameEntity implements Comparable { * * @return the haunted by */ - public final ArrayList getHauntedBy() { + public final List getHauntedBy() { return this.hauntedBy; } diff --git a/src/main/java/forge/CardUtil.java b/src/main/java/forge/CardUtil.java index a5a46807d69..117157d6011 100644 --- a/src/main/java/forge/CardUtil.java +++ b/src/main/java/forge/CardUtil.java @@ -226,7 +226,7 @@ public final class CardUtil { * a {@link java.util.ArrayList} object. * @return a {@link java.lang.String} object. */ - public static String getShortColorsString(final ArrayList colors) { + public static String getShortColorsString(final Iterable colors) { String colorDesc = ""; for (final String col : colors) { if (col.equalsIgnoreCase("White")) { diff --git a/src/main/java/forge/Constant.java b/src/main/java/forge/Constant.java index dedcda1983a..a86b36fbcfa 100644 --- a/src/main/java/forge/Constant.java +++ b/src/main/java/forge/Constant.java @@ -22,6 +22,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import com.google.common.collect.ImmutableList; + import forge.properties.ForgeProps; import forge.properties.NewConstants; @@ -85,10 +87,10 @@ public final class Constant { public static final String COLORLESS = "colorless"; // color order "wubrg" /** The Colors. */ - public static final String[] COLORS = { Color.WHITE, Color.BLUE, Color.BLACK, Color.RED, Color.GREEN, Color.COLORLESS }; + public static final ImmutableList COLORS = ImmutableList.of(Color.WHITE, Color.BLUE, Color.BLACK, Color.RED, Color.GREEN, Color.COLORLESS); /** The only colors. */ - public static final String[] ONLY_COLORS = { Color.WHITE, Color.BLUE, Color.BLACK, Color.RED, Color.GREEN }; + public static final ImmutableList ONLY_COLORS = ImmutableList.of(Color.WHITE, Color.BLUE, Color.BLACK, Color.RED, Color.GREEN); /** The Snow. */ public static final String SNOW = "snow"; diff --git a/src/main/java/forge/card/ability/AbilityUtils.java b/src/main/java/forge/card/ability/AbilityUtils.java index 61507715edb..09e877e7fa4 100644 --- a/src/main/java/forge/card/ability/AbilityUtils.java +++ b/src/main/java/forge/card/ability/AbilityUtils.java @@ -980,7 +980,7 @@ public class AbilityUtils { // Replace AnyColor with the 5 colors if (choices.contains("AnyColor")) { - gains.addAll(Arrays.asList(Constant.Color.ONLY_COLORS)); + gains.addAll(Constant.Color.ONLY_COLORS); choices = choices.replaceAll("AnyColor,?", ""); } // Add any remaining choices diff --git a/src/main/java/forge/card/ability/ai/ProtectAi.java b/src/main/java/forge/card/ability/ai/ProtectAi.java index 507b60f36e8..4b798bed343 100644 --- a/src/main/java/forge/card/ability/ai/ProtectAi.java +++ b/src/main/java/forge/card/ability/ai/ProtectAi.java @@ -1,7 +1,6 @@ package forge.card.ability.ai; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import com.google.common.base.Predicate; @@ -25,7 +24,7 @@ import forge.game.zone.ZoneType; public class ProtectAi extends SpellAbilityAi { private static boolean hasProtectionFrom(final Card card, final String color) { - final ArrayList onlyColors = new ArrayList(Arrays.asList(Constant.Color.ONLY_COLORS)); + final ArrayList onlyColors = new ArrayList(Constant.Color.ONLY_COLORS); // make sure we have a valid color if (!onlyColors.contains(color)) { diff --git a/src/main/java/forge/card/ability/effects/ChooseColorEffect.java b/src/main/java/forge/card/ability/effects/ChooseColorEffect.java index 5b03e7ba09e..5a89059afd1 100644 --- a/src/main/java/forge/card/ability/effects/ChooseColorEffect.java +++ b/src/main/java/forge/card/ability/effects/ChooseColorEffect.java @@ -3,6 +3,8 @@ package forge.card.ability.effects; import java.util.ArrayList; import java.util.List; +import com.google.common.collect.ImmutableList; + import forge.Card; import forge.CardLists; import forge.CardPredicates; @@ -46,8 +48,8 @@ public class ChooseColorEffect extends SpellAbilityEffect { if ((tgt == null) || p.canBeTargetedBy(sa)) { if (sa.getActivatingPlayer().isHuman()) { if (sa.hasParam("OrColors")) { - String[] choices = Constant.Color.ONLY_COLORS; - final List o = GuiChoose.getChoices("Choose a color or colors", 1, choices.length, choices); + ImmutableList choices = Constant.Color.ONLY_COLORS; + final List o = GuiChoose.getChoices("Choose a color or colors", 1, choices.size(), choices); card.setChosenColor(new ArrayList(o)); } else if (sa.hasParam("TwoColors")) { final List o = GuiChoose.getChoices("Choose two colors", 2, 2, Constant.Color.ONLY_COLORS); diff --git a/src/main/java/forge/card/ability/effects/ManaEffect.java b/src/main/java/forge/card/ability/effects/ManaEffect.java index a9ed652436d..6af32728246 100644 --- a/src/main/java/forge/card/ability/effects/ManaEffect.java +++ b/src/main/java/forge/card/ability/effects/ManaEffect.java @@ -1,5 +1,6 @@ package forge.card.ability.effects; +import java.util.ArrayList; import java.util.List; import forge.Card; @@ -47,12 +48,12 @@ public class ManaEffect extends SpellAbilityEffect { //String colorsNeeded = abMana.getExpressChoice(); String[] colorsProduced = abMana.getComboColors().split(" "); final StringBuilder choiceString = new StringBuilder(); - String[] colorMenu = null; + List colorMenu = null; if (!abMana.isAnyMana()) { - colorMenu = new String[colorsProduced.length]; + colorMenu = new ArrayList(); //loop through colors to make menu for (int nColor = 0; nColor < colorsProduced.length; nColor++) { - colorMenu[nColor] = forge.card.MagicColor.toLongString(colorsProduced[nColor]); + colorMenu.add(forge.card.MagicColor.toLongString(colorsProduced[nColor])); } } else { @@ -113,12 +114,12 @@ public class ManaEffect extends SpellAbilityEffect { choice = colorsNeeded; } else { - String[] colorMenu = null; + List colorMenu = null; if (colorsNeeded.length() > 1 && colorsNeeded.length() < 5) { - colorMenu = new String[colorsNeeded.length()]; + colorMenu = new ArrayList(); //loop through colors to make menu for (int nChar = 0; nChar < colorsNeeded.length(); nChar++) { - colorMenu[nChar] = forge.card.MagicColor.toLongString(colorsNeeded.substring(nChar, nChar + 1)); + colorMenu.add(forge.card.MagicColor.toLongString(colorsNeeded.substring(nChar, nChar + 1))); } } else { diff --git a/src/main/java/forge/card/mana/ManaPool.java b/src/main/java/forge/card/mana/ManaPool.java index 67760f09d45..d5a48fd5f25 100644 --- a/src/main/java/forge/card/mana/ManaPool.java +++ b/src/main/java/forge/card/mana/ManaPool.java @@ -337,10 +337,10 @@ public class ManaPool { totalMana += normalMana[i]; totalMana += snowMana[i]; if (normalMana[i] > 0) { - alChoice.add(Constant.Color.COLORS[i] + "(" + normalMana[i] + ")"); + alChoice.add(Constant.Color.COLORS.get(i) + "(" + normalMana[i] + ")"); } if (snowMana[i] > 0) { - alChoice.add("{S}" + Constant.Color.COLORS[i] + "(" + snowMana[i] + ")"); + alChoice.add("{S}" + Constant.Color.COLORS.get(i) + "(" + snowMana[i] + ")"); } } diff --git a/src/main/java/forge/card/staticability/StaticAbilityContinuous.java b/src/main/java/forge/card/staticability/StaticAbilityContinuous.java index 71e8894d120..77971bc032f 100644 --- a/src/main/java/forge/card/staticability/StaticAbilityContinuous.java +++ b/src/main/java/forge/card/staticability/StaticAbilityContinuous.java @@ -145,7 +145,7 @@ public class StaticAbilityContinuous { if (params.containsKey("AddKeyword")) { addKeywords = params.get("AddKeyword").split(" & "); - final ArrayList chosencolors = hostCard.getChosenColor(); + final List chosencolors = hostCard.getChosenColor(); for (final String color : chosencolors) { for (int w = 0; w < addKeywords.length; w++) { addKeywords[w] = addKeywords[w].replaceAll("ChosenColor", color.substring(0, 1).toUpperCase().concat(color.substring(1, color.length()))); diff --git a/src/main/java/forge/game/GameActionUtil.java b/src/main/java/forge/game/GameActionUtil.java index a2c551e77c7..1385b27a16f 100644 --- a/src/main/java/forge/game/GameActionUtil.java +++ b/src/main/java/forge/game/GameActionUtil.java @@ -980,7 +980,7 @@ public final class GameActionUtil { for (final Card oldman : list) { if (!oldman.getGainControlTargets().isEmpty()) { if (oldman.getNetAttack() < oldman.getGainControlTargets().get(0).getNetAttack()) { - final ArrayList coms = oldman.getGainControlReleaseCommands(); + final List coms = oldman.getGainControlReleaseCommands(); for (int i = 0; i < coms.size(); i++) { coms.get(i).execute(); } diff --git a/src/main/java/forge/game/limited/SealedDeck.java b/src/main/java/forge/game/limited/SealedDeck.java index fe71c48252b..de5db9cb4d6 100644 --- a/src/main/java/forge/game/limited/SealedDeck.java +++ b/src/main/java/forge/game/limited/SealedDeck.java @@ -60,7 +60,6 @@ public class SealedDeck extends LimitedDeck { int green = Iterables.size(Iterables.filter(rules, CardRulesPredicates.Presets.IS_GREEN)); final int[] colorCounts = { white, blue, black, red, green }; - final String[] colors = Constant.Color.ONLY_COLORS; int[] countsCopy = Arrays.copyOf(colorCounts, 5); Arrays.sort(countsCopy); @@ -68,9 +67,9 @@ public class SealedDeck extends LimitedDeck { List secondColors = new ArrayList(); for (int i = 0; i < 5; i++) { if (countsCopy[4] == colorCounts[i]) { - maxColors.add(colors[i]); + maxColors.add(Constant.Color.ONLY_COLORS.get(i)); } else if (countsCopy[3] == colorCounts[i]) { - secondColors.add(colors[i]); + secondColors.add(Constant.Color.ONLY_COLORS.get(i)); } } diff --git a/src/main/java/forge/game/phase/Untap.java b/src/main/java/forge/game/phase/Untap.java index e207107b3b9..a8f3108eed3 100644 --- a/src/main/java/forge/game/phase/Untap.java +++ b/src/main/java/forge/game/phase/Untap.java @@ -150,7 +150,7 @@ public class Untap extends Phase { String prompt = "Untap " + c.getName() + "?"; boolean defaultChoice = true; if (c.getGainControlTargets().size() > 0) { - final ArrayList targets = c.getGainControlTargets(); + final List targets = c.getGainControlTargets(); prompt += "\r\n" + c + " is controlling: "; for (final Card target : targets) { prompt += target; @@ -167,7 +167,7 @@ public class Untap extends Phase { // leave it tapped // if not, untap it if (c.getGainControlTargets().size() > 0) { - final ArrayList targets = c.getGainControlTargets(); + final List targets = c.getGainControlTargets(); boolean untap = true; for (final Card target : targets) { if (target.isInPlay()) {