From b3f38edef3ff7d22021525ef644ca783e7ea6daf Mon Sep 17 00:00:00 2001 From: elcnesh Date: Sun, 17 May 2015 11:28:21 +0000 Subject: [PATCH] Huge cleanup: use collection interfaces (List, Set, Map) rather than implementations (ArrayList etc.) in references to objects --- .../src/main/java/forge/ai/AiCardMemory.java | 6 +- .../src/main/java/forge/ai/AiController.java | 16 ++-- .../src/main/java/forge/ai/AiProfileUtil.java | 10 +-- .../src/main/java/forge/ai/ComputerUtil.java | 8 +- .../java/forge/ai/ComputerUtilAbility.java | 12 +-- .../main/java/forge/ai/ComputerUtilCard.java | 32 +++++-- .../main/java/forge/ai/ComputerUtilMana.java | 32 +++---- .../src/main/java/forge/ai/GameState.java | 3 +- .../java/forge/ai/PlayerControllerAi.java | 6 +- .../main/java/forge/ai/ability/AnimateAi.java | 30 +++---- .../main/java/forge/ai/ability/AttachAi.java | 6 +- .../java/forge/ai/ability/ChangeZoneAi.java | 2 +- .../main/java/forge/ai/ability/ProtectAi.java | 17 ++-- .../forge/ai/simulation/GameSimulator.java | 10 +-- .../ai/simulation/SpellAbilityPicker.java | 4 +- .../java/forge/card/BoosterGenerator.java | 2 +- .../src/main/java/forge/deck/DeckFormat.java | 3 +- .../forge/deck/generation/DeckGenPool.java | 3 +- .../java/forge/util/CollectionSuppliers.java | 50 +++++------ .../src/main/java/forge/util/FileUtil.java | 2 +- .../src/main/java/forge/game/GameAction.java | 8 +- .../main/java/forge/game/GameActionUtil.java | 6 +- .../src/main/java/forge/game/GameEntity.java | 6 +- .../java/forge/game/GameLogFormatter.java | 28 ++++-- .../main/java/forge/game/GameObjectMap.java | 24 ++--- .../main/java/forge/game/StaticEffect.java | 18 ++-- .../ability/effects/AnimateAllEffect.java | 26 +++--- .../game/ability/effects/CloneEffect.java | 4 +- .../ability/effects/CopyPermanentEffect.java | 2 +- .../ability/effects/CountersMoveEffect.java | 2 +- .../ability/effects/DamagePreventEffect.java | 15 ++-- .../game/ability/effects/DebuffEffect.java | 2 +- .../game/ability/effects/DestroyEffect.java | 2 +- .../forge/game/ability/effects/DigEffect.java | 2 +- .../game/ability/effects/ProtectEffect.java | 5 +- .../game/ability/effects/PumpAllEffect.java | 8 +- .../game/ability/effects/PumpEffect.java | 2 +- .../game/ability/effects/VoteEffect.java | 18 ++-- .../java/forge/game/card/CardFactory.java | 2 +- .../java/forge/game/card/CardFactoryUtil.java | 4 +- .../main/java/forge/game/card/CardState.java | 4 +- .../java/forge/game/cost/CostAddMana.java | 10 ++- .../java/forge/game/cost/CostPayment.java | 2 +- .../forge/game/mana/ManaCostAdjustment.java | 6 +- .../forge/game/mana/ManaCostBeingPaid.java | 2 +- .../main/java/forge/game/mana/ManaPool.java | 8 +- .../src/main/java/forge/game/phase/Phase.java | 4 +- .../forge/game/player/AchievementTracker.java | 5 +- .../main/java/forge/game/player/Player.java | 4 +- .../forge/game/player/PlayerController.java | 7 +- .../game/spellability/AbilityManaPart.java | 21 ++--- .../forge/game/spellability/SpellAbility.java | 6 +- .../spellability/SpellAbilityRestriction.java | 9 +- .../SpellAbilityStackInstance.java | 4 +- .../spellability/SpellAbilityVariables.java | 6 +- .../game/spellability/TargetChoices.java | 2 +- .../StaticAbilityContinuous.java | 10 +-- .../java/forge/game/trigger/TriggerVote.java | 15 ++-- .../main/java/forge/game/zone/MagicStack.java | 3 +- .../src/main/java/forge/util/FCollection.java | 2 +- .../main/java/forge/gui/MultiLineLabelUI.java | 2 +- .../java/forge/itemmanager/ItemManager.java | 2 +- .../filters/ToggleButtonsFilter.java | 16 ++-- .../forge/itemmanager/views/ImageView.java | 6 +- .../controllers/DeckHtmlSerializer.java | 2 +- .../java/forge/screens/match/CMatchUI.java | 2 +- .../java/forge/toolbox/FComboBoxPanel.java | 3 +- .../java/forge/toolbox/FComboBoxWrapper.java | 3 +- .../java/forge/toolbox/FDigitalClock.java | 3 +- .../src/main/java/forge/toolbox/FSkin.java | 6 +- .../ai/simulation/GameSimulatorTest.java | 6 +- .../util/PlayerControllerForTests.java | 42 +++++---- forge-gui-mobile/src/forge/Forge.java | 3 +- .../src/forge/animation/ForgeTransition.java | 22 +++-- forge-gui-mobile/src/forge/assets/FSkin.java | 13 +-- .../filters/ToggleButtonsFilter.java | 10 ++- .../forge/itemmanager/views/ImageView.java | 6 +- .../src/forge/screens/FScreen.java | 6 +- .../src/forge/screens/home/HomeScreen.java | 5 +- .../forge/screens/match/MatchController.java | 2 +- .../src/forge/screens/match/MatchScreen.java | 3 +- .../screens/match/views/VZoneDisplay.java | 4 +- .../src/forge/toolbox/FContainer.java | 5 +- .../src/forge/toolbox/FDisplayObject.java | 5 +- .../src/forge/toolbox/FOverlay.java | 5 +- .../src/forge/toolbox/FScrollPane.java | 6 +- .../main/java/forge/achievement/Domain.java | 3 +- .../control/FControlGameEventHandler.java | 2 +- .../java/forge/deck/ColorDeckGenerator.java | 2 +- .../java/forge/deck/DeckGeneratorTheme.java | 6 +- .../src/main/java/forge/deck/DeckProxy.java | 3 +- .../forge/download/GuiDownloadPrices.java | 15 ++-- .../java/forge/itemmanager/SColumnUtil.java | 11 +-- .../main/java/forge/limited/BoosterDraft.java | 2 +- .../java/forge/limited/BoosterDraftAI.java | 2 +- .../limited/SealedCardPoolGenerator.java | 8 +- .../java/forge/limited/WinstonDraftAI.java | 7 +- .../java/forge/match/AbstractGuiGame.java | 24 +++-- .../java/forge/match/input/InputPayMana.java | 2 +- .../main/java/forge/model/UnOpenedMeta.java | 2 +- .../src/main/java/forge/player/HumanPlay.java | 4 +- .../forge/player/PlayerControllerHuman.java | 13 +-- .../main/java/forge/quest/BoosterUtils.java | 4 +- .../quest/bazaar/QuestBazaarManager.java | 89 +++++++++++-------- .../main/java/forge/quest/io/QuestDataIO.java | 2 +- 105 files changed, 521 insertions(+), 436 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/AiCardMemory.java b/forge-ai/src/main/java/forge/ai/AiCardMemory.java index 44bb9de13eb..002241f638f 100644 --- a/forge-ai/src/main/java/forge/ai/AiCardMemory.java +++ b/forge-ai/src/main/java/forge/ai/AiCardMemory.java @@ -40,9 +40,9 @@ import java.util.Set; */ public class AiCardMemory { - private HashSet memMandatoryAttackers = new HashSet(); - private HashSet memHeldManaSources = new HashSet(); - private HashSet memAttachedThisTurn = new HashSet(); + private Set memMandatoryAttackers = new HashSet(); + private Set memHeldManaSources = new HashSet(); + private Set memAttachedThisTurn = new HashSet(); //private HashSet memRevealedCards = new HashSet(); /** diff --git a/forge-ai/src/main/java/forge/ai/AiController.java b/forge-ai/src/main/java/forge/ai/AiController.java index 3385bca089c..c3a2b305a7b 100644 --- a/forge-ai/src/main/java/forge/ai/AiController.java +++ b/forge-ai/src/main/java/forge/ai/AiController.java @@ -137,7 +137,7 @@ public class AiController { simPicker = new SpellAbilityPicker(game, player); } - private ArrayList getPossibleETBCounters() { + private List getPossibleETBCounters() { final Player opp = player.getOpponent(); CardCollection all = new CardCollection(player.getCardsIn(ZoneType.Hand)); all.addAll(player.getCardsIn(ZoneType.Exile)); @@ -147,7 +147,7 @@ public class AiController { } all.addAll(opp.getCardsIn(ZoneType.Exile)); - final ArrayList spellAbilities = new ArrayList(); + final List spellAbilities = new ArrayList(); for (final Card c : all) { for (final SpellAbility sa : c.getNonManaAbilities()) { if (sa instanceof SpellPermanent) { @@ -323,8 +323,8 @@ public class AiController { return true; } - private static ArrayList getPlayableCounters(final CardCollection l) { - final ArrayList spellAbility = new ArrayList(); + private static List getPlayableCounters(final CardCollection l) { + final List spellAbility = new ArrayList(); for (final Card c : l) { for (final SpellAbility sa : c.getNonManaAbilities()) { // Check if this AF is a Counterpsell @@ -482,7 +482,7 @@ public class AiController { if (Iterables.any(landList, CardPredicates.Presets.BASIC_LANDS)) { final CardCollectionView combined = player.getCardsIn(ZoneType.Battlefield); - final ArrayList basics = new ArrayList(); + final List basics = new ArrayList(); // what types can I go get? for (final String name : CardType.Constant.BASIC_TYPES) { @@ -513,7 +513,7 @@ public class AiController { } // if return true, go to next phase - private SpellAbility chooseCounterSpell(final ArrayList possibleCounters) { + private SpellAbility chooseCounterSpell(final List possibleCounters) { if (possibleCounters == null || possibleCounters.isEmpty()) { return null; } @@ -562,7 +562,7 @@ public class AiController { final CardCollectionView cards = handOnly ? player.getCardsIn(ZoneType.Hand) : ComputerUtilAbility.getAvailableCards(game, player); - ArrayList all = ComputerUtilAbility.getSpellAbilities(cards, player); + List all = ComputerUtilAbility.getSpellAbilities(cards, player); Collections.sort(all, saComparator); // put best spells first for (final SpellAbility sa : ComputerUtilAbility.getOriginalAndAltCostAbilities(all, player)) { @@ -1169,7 +1169,7 @@ public class AiController { return result; } - private SpellAbility chooseSpellAbilityToPlay(final ArrayList all, boolean skipCounter) { + private SpellAbility chooseSpellAbilityToPlay(final List all, boolean skipCounter) { if (all == null || all.isEmpty()) return null; diff --git a/forge-ai/src/main/java/forge/ai/AiProfileUtil.java b/forge-ai/src/main/java/forge/ai/AiProfileUtil.java index 1e71052ed9d..6c575d39dc6 100644 --- a/forge-ai/src/main/java/forge/ai/AiProfileUtil.java +++ b/forge-ai/src/main/java/forge/ai/AiProfileUtil.java @@ -62,7 +62,7 @@ public class AiProfileUtil { AI_PROFILE_DIR = aiProfileDir; loadedProfiles.clear(); - ArrayList availableProfiles = getAvailableProfiles(); + List availableProfiles = getAvailableProfiles(); for (String profile : availableProfiles) { loadedProfiles.put(profile, loadProfile(profile)); } @@ -119,9 +119,9 @@ public class AiProfileUtil { * @return ArrayList - an array of strings containing all * available profiles. */ - public static ArrayList getAvailableProfiles() + public static List getAvailableProfiles() { - final ArrayList availableProfiles = new ArrayList(); + final List availableProfiles = new ArrayList(); final File dir = new File(AI_PROFILE_DIR); final String[] children = dir.list(); @@ -144,8 +144,8 @@ public class AiProfileUtil { * @return ArrayList - an array list of strings containing all * available profiles including special random profile tags. */ - public static ArrayList getProfilesDisplayList() { - final ArrayList availableProfiles = new ArrayList(); + public static List getProfilesDisplayList() { + final List availableProfiles = new ArrayList(); availableProfiles.add(AI_PROFILE_RANDOM_MATCH); availableProfiles.add(AI_PROFILE_RANDOM_DUEL); availableProfiles.addAll(getAvailableProfiles()); diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtil.java b/forge-ai/src/main/java/forge/ai/ComputerUtil.java index 12c671b1357..046d9e0d1c5 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtil.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtil.java @@ -27,9 +27,9 @@ import java.util.Random; import org.apache.commons.lang3.StringUtils; import com.google.common.base.Predicate; -import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; +import com.google.common.collect.Multimap; import forge.ai.ability.ProtectAi; import forge.card.CardType; @@ -1156,7 +1156,7 @@ public class ComputerUtil { } } else { objects = topStack.getTargets().getTargets(); - final ArrayList canBeTargeted = new ArrayList(); + final List canBeTargeted = new ArrayList(); for (Object o : objects) { if (o instanceof Card) { final Card c = (Card) o; @@ -1612,7 +1612,7 @@ public class ComputerUtil { if (logic != null) { if (logic.equals("MostNeededType")) { // Choose a type that is in the deck, but not in hand or on the battlefield - final ArrayList basics = new ArrayList(); + final List basics = new ArrayList(); basics.addAll(CardType.Constant.BASIC_TYPES); CardCollectionView presentCards = CardCollection.combine(ai.getCardsIn(ZoneType.Battlefield), ai.getCardsIn(ZoneType.Hand)); CardCollectionView possibleCards = ai.getAllCards(); @@ -1666,7 +1666,7 @@ public class ComputerUtil { return chosen; } - public static Object vote(Player ai, List options, SpellAbility sa, ArrayListMultimap votes) { + public static Object vote(Player ai, List options, SpellAbility sa, Multimap votes) { if (!sa.hasParam("AILogic")) { return Aggregates.random(options); } else { diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilAbility.java b/forge-ai/src/main/java/forge/ai/ComputerUtilAbility.java index 5ca363e2d77..6b9317018ae 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilAbility.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilAbility.java @@ -1,6 +1,7 @@ package forge.ai; import java.util.ArrayList; +import java.util.List; import forge.card.CardStateName; import forge.game.Game; @@ -12,7 +13,6 @@ import forge.game.player.Player; import forge.game.spellability.SpellAbility; import forge.game.zone.ZoneType; - public class ComputerUtilAbility { public static CardCollection getAvailableCards(final Game game, final Player player) { CardCollection all = new CardCollection(player.getCardsIn(ZoneType.Hand)); @@ -29,8 +29,8 @@ public class ComputerUtilAbility { return all; } - public static ArrayList getSpellAbilities(final CardCollectionView l, final Player player) { - final ArrayList spellAbilities = new ArrayList(); + public static List getSpellAbilities(final CardCollectionView l, final Player player) { + final List spellAbilities = new ArrayList(); for (final Card c : l) { for (final SpellAbility sa : c.getSpellAbilities()) { spellAbilities.add(sa); @@ -44,8 +44,8 @@ public class ComputerUtilAbility { return spellAbilities; } - public static ArrayList getOriginalAndAltCostAbilities(final ArrayList originList, final Player player) { - final ArrayList newAbilities = new ArrayList(); + public static List getOriginalAndAltCostAbilities(final List originList, final Player player) { + final List newAbilities = new ArrayList(); for (SpellAbility sa : originList) { sa.setActivatingPlayer(player); //add alternative costs as additional spell abilities @@ -53,7 +53,7 @@ public class ComputerUtilAbility { newAbilities.addAll(GameActionUtil.getAlternativeCosts(sa, player)); } - final ArrayList result = new ArrayList(); + final List result = new ArrayList(); for (SpellAbility sa : newAbilities) { sa.setActivatingPlayer(player); result.addAll(GameActionUtil.getOptionalCosts(sa)); diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilCard.java b/forge-ai/src/main/java/forge/ai/ComputerUtilCard.java index e00bb9b0c3a..9cb9a2f8ad5 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilCard.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilCard.java @@ -1,5 +1,18 @@ package forge.ai; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.MutablePair; +import org.apache.commons.lang3.tuple.Pair; + import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; @@ -15,7 +28,15 @@ import forge.game.Game; import forge.game.GameObject; import forge.game.ability.AbilityUtils; import forge.game.ability.ApiType; -import forge.game.card.*; +import forge.game.card.Card; +import forge.game.card.CardCollection; +import forge.game.card.CardCollectionView; +import forge.game.card.CardFactory; +import forge.game.card.CardFactoryUtil; +import forge.game.card.CardLists; +import forge.game.card.CardPredicates; +import forge.game.card.CardUtil; +import forge.game.card.CounterType; import forge.game.combat.Combat; import forge.game.combat.CombatUtil; import forge.game.phase.PhaseHandler; @@ -30,13 +51,6 @@ import forge.item.PaperCard; import forge.util.Aggregates; import forge.util.MyRandom; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.tuple.MutablePair; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.*; -import java.util.Map.Entry; - public class ComputerUtilCard { public static Card getMostExpensivePermanentAI(final CardCollectionView list, final SpellAbility spell, final boolean targeted) { @@ -1153,7 +1167,7 @@ public class ComputerUtilCard { Card pumped = CardFactory.copyCard(c, true); pumped.setSickness(c.hasSickness()); final long timestamp = c.getGame().getNextTimestamp(); - final ArrayList kws = new ArrayList(); + final List kws = new ArrayList(); for (String kw : keywords) { if (kw.startsWith("HIDDEN")) { pumped.addHiddenExtrinsicKeyword(kw); diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilMana.java b/forge-ai/src/main/java/forge/ai/ComputerUtilMana.java index d7be8ce56fe..2c010095372 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilMana.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilMana.java @@ -2,6 +2,8 @@ package forge.ai; import com.google.common.base.Predicate; import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.ListMultimap; +import com.google.common.collect.Multimap; import forge.card.ColorSet; import forge.card.MagicColor; @@ -133,7 +135,7 @@ public class ComputerUtilMana { } } - private static void sortManaAbilities(final ArrayListMultimap manaAbilityMap) { + private static void sortManaAbilities(final Multimap manaAbilityMap) { final Map manaCardMap = new HashMap<>(); final List orderedCards = new ArrayList<>(); @@ -162,7 +164,7 @@ public class ComputerUtilMana { } for (final ManaCostShard shard : manaAbilityMap.keySet()) { - final List abilities = manaAbilityMap.get(shard); + final Collection abilities = manaAbilityMap.get(shard); final List newAbilities = new ArrayList<>(abilities); if (DEBUG_MANA_PAYMENT) { @@ -254,7 +256,7 @@ public class ComputerUtilMana { } // arrange all mana abilities by color produced. - final ArrayListMultimap manaAbilityMap = ComputerUtilMana.groupSourcesByManaColor(ai, true); + final ListMultimap manaAbilityMap = ComputerUtilMana.groupSourcesByManaColor(ai, true); if (manaAbilityMap.isEmpty()) { refundMana(manaSpentToPay, ai, sa); @@ -263,7 +265,7 @@ public class ComputerUtilMana { } // select which abilities may be used for each shard - ArrayListMultimap sourcesForShards = ComputerUtilMana.groupAndOrderToPayShards(ai, manaAbilityMap, cost); + Multimap sourcesForShards = ComputerUtilMana.groupAndOrderToPayShards(ai, manaAbilityMap, cost); sortManaAbilities(sourcesForShards); @@ -321,7 +323,7 @@ public class ComputerUtilMana { } // arrange all mana abilities by color produced. - final ArrayListMultimap manaAbilityMap = ComputerUtilMana.groupSourcesByManaColor(ai, checkPlayable); + final ListMultimap manaAbilityMap = ComputerUtilMana.groupSourcesByManaColor(ai, checkPlayable); if (manaAbilityMap.isEmpty()) { refundMana(manaSpentToPay, ai, sa); @@ -334,7 +336,7 @@ public class ComputerUtilMana { } // select which abilities may be used for each shard - ArrayListMultimap sourcesForShards = ComputerUtilMana.groupAndOrderToPayShards(ai, manaAbilityMap, cost); + ListMultimap sourcesForShards = ComputerUtilMana.groupAndOrderToPayShards(ai, manaAbilityMap, cost); sortManaAbilities(sourcesForShards); @@ -826,10 +828,10 @@ public class ComputerUtilMana { * @param manaAbilityMap The map of SpellAbilities that produce mana. * @return Were all mana sources found? */ - private static ArrayListMultimap groupAndOrderToPayShards(final Player ai, final ArrayListMultimap manaAbilityMap, + private static ListMultimap groupAndOrderToPayShards(final Player ai, final ListMultimap manaAbilityMap, final ManaCostBeingPaid cost) { - ArrayListMultimap res = ArrayListMultimap.create(); - + ListMultimap res = ArrayListMultimap.create(); + if (cost.getColorlessManaAmount() > 0 && manaAbilityMap.containsKey(ManaAtom.COLORLESS)) { res.putAll(ManaCostShard.COLORLESS, manaAbilityMap.get(ManaAtom.COLORLESS)); } @@ -974,7 +976,7 @@ public class ComputerUtilMana { int usableManaAbilities = 0; boolean needsLimitedResources = false; boolean producesAnyColor = false; - final ArrayList manaAbilities = getAIPlayableMana(card); + final List manaAbilities = getAIPlayableMana(card); for (final SpellAbility m : manaAbilities) { if (m.getManaPart().isAnyMana()) { @@ -1044,8 +1046,8 @@ public class ComputerUtilMana { } // getAvailableMana() //This method is currently used by AI to estimate mana available - private static ArrayListMultimap groupSourcesByManaColor(final Player ai, boolean checkPlayable) { - final ArrayListMultimap manaMap = ArrayListMultimap.create(); + private static ListMultimap groupSourcesByManaColor(final Player ai, boolean checkPlayable) { + final ListMultimap manaMap = ArrayListMultimap.create(); final Game game = ai.getGame(); List replacementEffects = new ArrayList(); @@ -1167,10 +1169,10 @@ public class ComputerUtilMana { * getAIPlayableMana. *

* - * @return a {@link java.util.ArrayList} object. + * @return a {@link java.util.List} object. */ - public static ArrayList getAIPlayableMana(Card c) { - final ArrayList res = new ArrayList<>(); + public static List getAIPlayableMana(Card c) { + final List res = new ArrayList<>(); for (final SpellAbility a : c.getManaAbilities()) { // if a mana ability has a mana cost the AI will miscalculate // if there is a parent ability the AI can't use it diff --git a/forge-ai/src/main/java/forge/ai/GameState.java b/forge-ai/src/main/java/forge/ai/GameState.java index 959155391f7..3c8d1192f12 100644 --- a/forge-ai/src/main/java/forge/ai/GameState.java +++ b/forge-ai/src/main/java/forge/ai/GameState.java @@ -6,6 +6,7 @@ import java.io.InputStreamReader; import java.util.ArrayList; import java.util.EnumMap; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -214,7 +215,7 @@ public abstract class GameState { if (life > 0) p.setLife(life, null); for (Entry kv : playerCards.entrySet()) { if (kv.getKey() == ZoneType.Battlefield) { - ArrayList cards = new ArrayList(); + List cards = new ArrayList(); for (final Card c : kv.getValue()) { if (c.isToken()) { cards.add(c); diff --git a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java index 28911ad5166..06666787442 100644 --- a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java +++ b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java @@ -3,8 +3,8 @@ package forge.ai; import com.esotericsoftware.minlog.Log; import com.google.common.base.Predicate; import com.google.common.base.Predicates; -import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Iterables; +import com.google.common.collect.ListMultimap; import com.google.common.collect.Multimap; import forge.LobbyPlayer; @@ -356,7 +356,7 @@ public class PlayerControllerAi extends PlayerController { } @Override - public Object vote(SpellAbility sa, String prompt, List options, ArrayListMultimap votes) { + public Object vote(SpellAbility sa, String prompt, List options, ListMultimap votes) { return ComputerUtil.vote(player, options, sa, votes); } @@ -599,7 +599,7 @@ public class PlayerControllerAi extends PlayerController { } @Override - public ReplacementEffect chooseSingleReplacementEffect(String prompt, List possibleReplacers, HashMap runParams) { + public ReplacementEffect chooseSingleReplacementEffect(String prompt, List possibleReplacers, Map runParams) { // AI logic for choosing which replacement effect to apply // happens here. return possibleReplacers.get(0); diff --git a/forge-ai/src/main/java/forge/ai/ability/AnimateAi.java b/forge-ai/src/main/java/forge/ai/ability/AnimateAi.java index b7ba811febf..c5fb2a492ca 100644 --- a/forge-ai/src/main/java/forge/ai/ability/AnimateAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/AnimateAi.java @@ -290,17 +290,17 @@ public class AnimateAi extends SpellAbilityAi { types.add(source.getChosenType()); } - final ArrayList keywords = new ArrayList(); + final List keywords = new ArrayList(); if (sa.hasParam("Keywords")) { keywords.addAll(Arrays.asList(sa.getParam("Keywords").split(" & "))); } - final ArrayList removeKeywords = new ArrayList(); + final List removeKeywords = new ArrayList(); if (sa.hasParam("RemoveKeywords")) { removeKeywords.addAll(Arrays.asList(sa.getParam("RemoveKeywords").split(" & "))); } - final ArrayList hiddenKeywords = new ArrayList(); + final List hiddenKeywords = new ArrayList(); if (sa.hasParam("HiddenKeywords")) { hiddenKeywords.addAll(Arrays.asList(sa.getParam("HiddenKeywords").split(" & "))); } @@ -327,31 +327,31 @@ public class AnimateAi extends SpellAbilityAi { final String finalDesc = tmpDesc; // abilities to add to the animated being - final ArrayList abilities = new ArrayList(); + final List abilities = new ArrayList(); if (sa.hasParam("Abilities")) { abilities.addAll(Arrays.asList(sa.getParam("Abilities").split(","))); } // replacement effects to add to the animated being - final ArrayList replacements = new ArrayList(); + final List replacements = new ArrayList(); if (sa.hasParam("Replacements")) { replacements.addAll(Arrays.asList(sa.getParam("Replacements").split(","))); } // triggers to add to the animated being - final ArrayList triggers = new ArrayList(); + final List triggers = new ArrayList(); if (sa.hasParam("Triggers")) { triggers.addAll(Arrays.asList(sa.getParam("Triggers").split(","))); } // static abilities to add to the animated being - final ArrayList stAbs = new ArrayList(); + final List stAbs = new ArrayList(); if (sa.hasParam("staticAbilities")) { stAbs.addAll(Arrays.asList(sa.getParam("staticAbilities").split(","))); } // sVars to add to the animated being - final ArrayList sVars = new ArrayList(); + final List sVars = new ArrayList(); if (sa.hasParam("sVars")) { sVars.addAll(Arrays.asList(sa.getParam("sVars").split(","))); } @@ -413,7 +413,7 @@ public class AnimateAi extends SpellAbilityAi { //back to duplicating AnimateEffect.resolve //TODO will all these abilities/triggers/replacements/etc. lead to memory leaks or unintended effects? // remove abilities - final ArrayList removedAbilities = new ArrayList(); + final List removedAbilities = new ArrayList(); boolean clearAbilities = sa.hasParam("OverwriteAbilities"); boolean clearSpells = sa.hasParam("OverwriteSpells"); boolean removeAll = sa.hasParam("RemoveAllAbilities"); @@ -429,7 +429,7 @@ public class AnimateAi extends SpellAbilityAi { } // give abilities - final ArrayList addedAbilities = new ArrayList(); + final List addedAbilities = new ArrayList(); if (abilities.size() > 0) { for (final String s : abilities) { final String actualAbility = source.getSVar(s); @@ -440,7 +440,7 @@ public class AnimateAi extends SpellAbilityAi { } // Grant triggers - final ArrayList addedTriggers = new ArrayList(); + final List addedTriggers = new ArrayList(); if (triggers.size() > 0) { for (final String s : triggers) { final String actualTrigger = source.getSVar(s); @@ -450,7 +450,7 @@ public class AnimateAi extends SpellAbilityAi { } // give replacement effects - final ArrayList addedReplacements = new ArrayList(); + final List addedReplacements = new ArrayList(); if (replacements.size() > 0) { for (final String s : replacements) { final String actualReplacement = source.getSVar(s); @@ -460,7 +460,7 @@ public class AnimateAi extends SpellAbilityAi { } // suppress triggers from the animated card - final ArrayList removedTriggers = new ArrayList(); + final List removedTriggers = new ArrayList(); if (sa.hasParam("OverwriteTriggers") || removeAll) { final FCollectionView triggersToRemove = card.getTriggers(); for (final Trigger trigger : triggersToRemove) { @@ -498,7 +498,7 @@ public class AnimateAi extends SpellAbilityAi { } // suppress static abilities from the animated card - final ArrayList removedStatics = new ArrayList(); + final List removedStatics = new ArrayList(); if (sa.hasParam("OverwriteStatics") || removeAll) { final FCollectionView staticsToRemove = card.getStaticAbilities(); for (final StaticAbility stAb : staticsToRemove) { @@ -508,7 +508,7 @@ public class AnimateAi extends SpellAbilityAi { } // suppress static abilities from the animated card - final ArrayList removedReplacements = new ArrayList(); + final List removedReplacements = new ArrayList(); if (sa.hasParam("OverwriteReplacements") || removeAll) { for (final ReplacementEffect re : card.getReplacementEffects()) { re.setTemporarilySuppressed(true); diff --git a/forge-ai/src/main/java/forge/ai/ability/AttachAi.java b/forge-ai/src/main/java/forge/ai/ability/AttachAi.java index 78c22255023..255e2b67d7c 100644 --- a/forge-ai/src/main/java/forge/ai/ability/AttachAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/AttachAi.java @@ -564,7 +564,7 @@ public class AttachAi extends SpellAbilityAi { int totToughness = 0; int totPower = 0; - final ArrayList keywords = new ArrayList(); + final List keywords = new ArrayList(); for (final StaticAbility stAbility : attachSource.getStaticAbilities()) { final Map stabMap = stAbility.getMapParams(); @@ -860,7 +860,7 @@ public class AttachAi extends SpellAbilityAi { int totToughness = 0; int totPower = 0; - final ArrayList keywords = new ArrayList(); + final List keywords = new ArrayList(); boolean grantingAbilities = false; for (final StaticAbility stAbility : attachSource.getStaticAbilities()) { @@ -1169,7 +1169,7 @@ public class AttachAi extends SpellAbilityAi { * @param sa SpellAbility * @return true, if successful */ - private static boolean containsUsefulCurseKeyword(final ArrayList keywords, final Card card, final SpellAbility sa) { + private static boolean containsUsefulCurseKeyword(final List keywords, final Card card, final SpellAbility sa) { for (final String keyword : keywords) { if (isUsefulCurseKeyword(keyword, card, sa)) { return true; diff --git a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java index b53179b6170..24af7a35e74 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java @@ -465,7 +465,7 @@ public class ChangeZoneAi extends SpellAbilityAi { */ private static Card basicManaFixing(final Player ai, final List list) { // Search for a Basic Land final CardCollectionView combined = CardCollection.combine(ai.getCardsIn(ZoneType.Battlefield), ai.getCardsIn(ZoneType.Hand)); - final ArrayList basics = new ArrayList(); + final List basics = new ArrayList(); // what types can I go get? for (final String name : MagicColor.Constant.BASIC_LANDS) { diff --git a/forge-ai/src/main/java/forge/ai/ability/ProtectAi.java b/forge-ai/src/main/java/forge/ai/ability/ProtectAi.java index 9a9208ceb70..3fbd9027c95 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ProtectAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ProtectAi.java @@ -1,8 +1,17 @@ package forge.ai.ability; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + import com.google.common.base.Predicate; -import forge.ai.*; +import forge.ai.AiAttackController; +import forge.ai.ComputerUtil; +import forge.ai.ComputerUtilCard; +import forge.ai.ComputerUtilCombat; +import forge.ai.ComputerUtilCost; +import forge.ai.SpellAbilityAi; import forge.card.MagicColor; import forge.game.Game; import forge.game.ability.AbilityUtils; @@ -21,13 +30,9 @@ import forge.game.spellability.TargetRestrictions; import forge.game.zone.ZoneType; import forge.util.MyRandom; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - public class ProtectAi extends SpellAbilityAi { private static boolean hasProtectionFrom(final Card card, final String color) { - final ArrayList onlyColors = new ArrayList(MagicColor.Constant.ONLY_COLORS); + final List onlyColors = new ArrayList(MagicColor.Constant.ONLY_COLORS); // make sure we have a valid color if (!onlyColors.contains(color)) { diff --git a/forge-ai/src/main/java/forge/ai/simulation/GameSimulator.java b/forge-ai/src/main/java/forge/ai/simulation/GameSimulator.java index 7019f5e0368..fee16bd6c35 100644 --- a/forge-ai/src/main/java/forge/ai/simulation/GameSimulator.java +++ b/forge-ai/src/main/java/forge/ai/simulation/GameSimulator.java @@ -26,7 +26,7 @@ public class GameSimulator { private Game simGame; private Player aiPlayer; private GameStateEvaluator eval; - private ArrayList origLines; + private List origLines; private Score origScore; public GameSimulator(final SimulationController controller, final Game origGame, final Player origAiPlayer) { @@ -44,7 +44,7 @@ public class GameSimulator { origScore = eval.getScoreForGameState(origGame, origAiPlayer); eval.setDebugging(true); - ArrayList simLines = new ArrayList(); + List simLines = new ArrayList(); debugLines = simLines; Score simScore = eval.getScoreForGameState(simGame, aiPlayer); if (!simScore.equals(origScore)) { @@ -102,7 +102,7 @@ public class GameSimulator { } public static boolean debugPrint; - public static ArrayList debugLines; + public static List debugLines; public static void debugPrint(String str) { if (debugPrint) { System.out.println(str); @@ -172,7 +172,7 @@ public class GameSimulator { // TODO: If this is during combat, before blockers are declared, // we should simulate how combat will resolve and evaluate that // state instead! - ArrayList simLines = null; + List simLines = null; if (debugPrint) { debugPrint("SimGame:"); simLines = new ArrayList(); @@ -190,7 +190,7 @@ public class GameSimulator { controller.push(sa); SpellAbilityPicker sim = new SpellAbilityPicker(simGame, aiPlayer); CardCollection cards = ComputerUtilAbility.getAvailableCards(simGame, aiPlayer); - ArrayList all = ComputerUtilAbility.getSpellAbilities(cards, aiPlayer); + List all = ComputerUtilAbility.getSpellAbilities(cards, aiPlayer); SpellAbility nextSa = sim.chooseSpellAbilityToPlay(controller, all, true); if (nextSa != null) { score = sim.getScoreForChosenAbility(); diff --git a/forge-ai/src/main/java/forge/ai/simulation/SpellAbilityPicker.java b/forge-ai/src/main/java/forge/ai/simulation/SpellAbilityPicker.java index ddc0f169f79..812fcc237aa 100644 --- a/forge-ai/src/main/java/forge/ai/simulation/SpellAbilityPicker.java +++ b/forge-ai/src/main/java/forge/ai/simulation/SpellAbilityPicker.java @@ -32,7 +32,7 @@ public class SpellAbilityPicker { } } - public SpellAbility chooseSpellAbilityToPlay(SimulationController controller, final ArrayList all, boolean skipCounter) { + public SpellAbility chooseSpellAbilityToPlay(SimulationController controller, final List all, boolean skipCounter) { printOutput = false; if (controller == null) { controller = new SimulationController(); @@ -40,7 +40,7 @@ public class SpellAbilityPicker { } print("---- choose ability (phase = " + game.getPhaseHandler().getPhase() + ")"); - ArrayList candidateSAs = new ArrayList<>(); + List candidateSAs = new ArrayList<>(); for (final SpellAbility sa : ComputerUtilAbility.getOriginalAndAltCostAbilities(all, player)) { // Don't add Counterspells to the "normal" playcard lookups if (skipCounter && sa.getApi() == ApiType.Counter) { diff --git a/forge-core/src/main/java/forge/card/BoosterGenerator.java b/forge-core/src/main/java/forge/card/BoosterGenerator.java index 762530fb22e..773cd65c4db 100644 --- a/forge-core/src/main/java/forge/card/BoosterGenerator.java +++ b/forge-core/src/main/java/forge/card/BoosterGenerator.java @@ -223,7 +223,7 @@ public class BoosterGenerator { } else if (operator.startsWith("fromSheet(") && invert) { String sheetName = StringUtils.strip(operator.substring(9), "()\" "); Iterable src = StaticData.instance().getPrintSheets().get(sheetName).toFlatList(); - ArrayList cardNames = Lists.newArrayList(); + List cardNames = Lists.newArrayList(); for (PaperCard card : src) { cardNames.add(card.getName()); } diff --git a/forge-core/src/main/java/forge/deck/DeckFormat.java b/forge-core/src/main/java/forge/deck/DeckFormat.java index 63182d1da40..d93afae6c7a 100644 --- a/forge-core/src/main/java/forge/deck/DeckFormat.java +++ b/forge-core/src/main/java/forge/deck/DeckFormat.java @@ -22,6 +22,7 @@ import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Map.Entry; +import java.util.Set; import org.apache.commons.lang3.Range; import org.apache.commons.lang3.tuple.ImmutablePair; @@ -50,7 +51,7 @@ public enum DeckFormat { Limited ( Range.between(40, Integer.MAX_VALUE), null, Integer.MAX_VALUE), Commander ( Range.is(99), Range.between(0, 10), 1), TinyLeaders ( Range.is(49), Range.between(0, 10), 1, new Predicate() { - private final HashSet bannedCards = new HashSet(Arrays.asList( + private final Set bannedCards = new HashSet(Arrays.asList( "Ancestral Recall", "Balance", "Black Lotus", "Black Vise", "Channel", "Chaos Orb", "Contract From Below", "Counterbalance", "Darkpact", "Demonic Attorney", "Demonic Tutor", "Earthcraft", "Edric, Spymaster of Trest", "Falling Star", "Fastbond", "Flash", "Goblin Recruiter", "Hermit Druid", "Imperial Seal", "Jeweled Bird", "Karakas", "Library of Alexandria", "Mana Crypt", "Mana Drain", "Mana Vault", "Metalworker", "Mind Twist", "Mishra's Workshop", "Mox Emerald", "Mox Jet", "Mox Pearl", "Mox Ruby", "Mox Sapphire", "Necropotence", "Painter's Servant", "Shahrazad", "Skullclamp", "Sol Ring", "Strip Mine", "Survival of the Fittest", "Sword of Body and Mind", "Time Vault", "Time Walk", "Timetwister", diff --git a/forge-core/src/main/java/forge/deck/generation/DeckGenPool.java b/forge-core/src/main/java/forge/deck/generation/DeckGenPool.java index 1540c1003ad..b5a6de19322 100644 --- a/forge-core/src/main/java/forge/deck/generation/DeckGenPool.java +++ b/forge-core/src/main/java/forge/deck/generation/DeckGenPool.java @@ -1,6 +1,7 @@ package forge.deck.generation; import java.util.HashMap; +import java.util.Map; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; @@ -8,7 +9,7 @@ import com.google.common.collect.Iterables; import forge.item.PaperCard; public class DeckGenPool implements IDeckGenPool { - private final HashMap cards = new HashMap(); + private final Map cards = new HashMap(); public DeckGenPool() { } diff --git a/forge-core/src/main/java/forge/util/CollectionSuppliers.java b/forge-core/src/main/java/forge/util/CollectionSuppliers.java index 1c94ab0d6d7..c68cce77ee5 100644 --- a/forge-core/src/main/java/forge/util/CollectionSuppliers.java +++ b/forge-core/src/main/java/forge/util/CollectionSuppliers.java @@ -1,41 +1,41 @@ package forge.util; +import java.util.List; +import java.util.Set; +import java.util.SortedSet; + import com.google.common.base.Supplier; +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.TreeSet; +public final class CollectionSuppliers { -/** - * TODO: Write javadoc for this type. - * - */ -public abstract class CollectionSuppliers { + /** + * Private constructor to prevent instantiation. + */ + private CollectionSuppliers() { + } - - public static Supplier> arrayLists() { - return new Supplier>() { - @Override - public ArrayList get() { - return new ArrayList(); + public static Supplier> arrayLists() { + return new Supplier>() { + @Override public List get() { + return Lists.newArrayList(); } }; } - public static Supplier> hashSets() { - return new Supplier>() { - @Override - public HashSet get() { - return new HashSet(); + public static Supplier> hashSets() { + return new Supplier>() { + @Override public Set get() { + return Sets.newHashSet(); } }; } - - public static > Supplier> treeSets() { - return new Supplier>() { - @Override - public TreeSet get() { - return new TreeSet(); + + public static > Supplier> treeSets() { + return new Supplier>() { + @Override public SortedSet get() { + return Sets.newTreeSet(); } }; } diff --git a/forge-core/src/main/java/forge/util/FileUtil.java b/forge-core/src/main/java/forge/util/FileUtil.java index c77afd6bf94..aaf45c8a736 100644 --- a/forge-core/src/main/java/forge/util/FileUtil.java +++ b/forge-core/src/main/java/forge/util/FileUtil.java @@ -234,7 +234,7 @@ public final class FileUtil { * @return list of strings */ public static List readAllLines(final Reader reader, final boolean mayTrim) { - final ArrayList list = new ArrayList(); + final List list = new ArrayList(); try { final BufferedReader in = new BufferedReader(reader); String line; diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index 1c434dc8f51..f4df70dca54 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -1414,13 +1414,13 @@ public class GameAction { // Power Play - Each player with a Power Play in the CommandZone becomes the Starting Player Set powerPlayers = new HashSet<>(); for (Card c : game.getCardsIn(ZoneType.Command)) { - if (c.getName().equals("Power Play")) { - powerPlayers.add(c.getOwner()); - } + if (c.getName().equals("Power Play")) { + powerPlayers.add(c.getOwner()); + } } if (!powerPlayers.isEmpty()) { - ArrayList players = Lists.newArrayList(powerPlayers); + List players = Lists.newArrayList(powerPlayers); Collections.shuffle(players); return players.get(0); } diff --git a/forge-game/src/main/java/forge/game/GameActionUtil.java b/forge-game/src/main/java/forge/game/GameActionUtil.java index e3ce844748b..6621ceac50f 100644 --- a/forge-game/src/main/java/forge/game/GameActionUtil.java +++ b/forge-game/src/main/java/forge/game/GameActionUtil.java @@ -450,9 +450,9 @@ public final class GameActionUtil { * @return an ArrayList. * get abilities with all Splice options */ - private static final ArrayList getSpliceAbilities(SpellAbility sa) { - ArrayList newSAs = new ArrayList(); - ArrayList allSaCombinations = new ArrayList(); + private static final List getSpliceAbilities(SpellAbility sa) { + List newSAs = new ArrayList(); + List allSaCombinations = new ArrayList(); allSaCombinations.add(sa); Card source = sa.getHostCard(); diff --git a/forge-game/src/main/java/forge/game/GameEntity.java b/forge-game/src/main/java/forge/game/GameEntity.java index 350c9f01a97..c192b03bcb0 100644 --- a/forge-game/src/main/java/forge/game/GameEntity.java +++ b/forge-game/src/main/java/forge/game/GameEntity.java @@ -32,7 +32,7 @@ public abstract class GameEntity extends GameObject implements IIdentifiable { private String name = ""; private int preventNextDamage = 0; private CardCollection enchantedBy; - private TreeMap> preventionShieldsWithEffects = new TreeMap>(); + private Map> preventionShieldsWithEffects = new TreeMap>(); protected GameEntity(int id0) { id = id0; @@ -97,7 +97,7 @@ public abstract class GameEntity extends GameObject implements IIdentifiable { } // PreventNextDamageWithEffect - public TreeMap> getPreventNextDamageWithEffect() { + public Map> getPreventNextDamageWithEffect() { return preventionShieldsWithEffects; } public int getPreventNextDamageTotalShields() { @@ -112,7 +112,7 @@ public abstract class GameEntity extends GameObject implements IIdentifiable { * @param shieldSource - The source card which generated the shield * @param effectMap - A map of the effect occurring with the damage prevention */ - public void addPreventNextDamageWithEffect(final Card shieldSource, TreeMap effectMap) { + public void addPreventNextDamageWithEffect(final Card shieldSource, Map effectMap) { if (preventionShieldsWithEffects.containsKey(shieldSource)) { int currentShields = Integer.valueOf(preventionShieldsWithEffects.get(shieldSource).get("ShieldAmount")); currentShields += Integer.valueOf(effectMap.get("ShieldAmount")); diff --git a/forge-game/src/main/java/forge/game/GameLogFormatter.java b/forge-game/src/main/java/forge/game/GameLogFormatter.java index 9047e6b5d7d..ad41f28e0e7 100644 --- a/forge-game/src/main/java/forge/game/GameLogFormatter.java +++ b/forge-game/src/main/java/forge/game/GameLogFormatter.java @@ -1,22 +1,36 @@ package forge.game; +import java.util.Collection; +import java.util.List; +import java.util.Map.Entry; + import com.google.common.eventbus.Subscribe; import forge.LobbyPlayer; import forge.game.card.Card; -import forge.game.event.*; +import forge.game.event.GameEvent; +import forge.game.event.GameEventAttackersDeclared; +import forge.game.event.GameEventBlockersDeclared; +import forge.game.event.GameEventCardDamaged; import forge.game.event.GameEventCardDamaged.DamageType; +import forge.game.event.GameEventGameOutcome; +import forge.game.event.GameEventLandPlayed; +import forge.game.event.GameEventMulligan; +import forge.game.event.GameEventPlayerControl; +import forge.game.event.GameEventPlayerDamaged; +import forge.game.event.GameEventPlayerPoisoned; +import forge.game.event.GameEventScry; +import forge.game.event.GameEventSpellAbilityCast; +import forge.game.event.GameEventSpellResolved; +import forge.game.event.GameEventTurnBegan; +import forge.game.event.GameEventTurnPhase; +import forge.game.event.IGameEventVisitor; import forge.game.player.Player; import forge.game.spellability.TargetChoices; import forge.game.zone.ZoneType; import forge.util.Lang; import forge.util.maps.MapOfLists; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map.Entry; - public class GameLogFormatter extends IGameEventVisitor.Base { private final GameLog log; @@ -68,7 +82,7 @@ public class GameLogFormatter extends IGameEventVisitor.Base { if (event.sa.getTargetRestrictions() != null) { sb.append(" targeting "); - ArrayList targets = event.sa.getAllTargetChoices(); + List targets = event.sa.getAllTargetChoices(); // Include the TargetChoices from the stack instance, since the real target choices // are on that object at this point (see SpellAbilityStackInstance constructor). targets.add(event.si.getTargetChoices()); diff --git a/forge-game/src/main/java/forge/game/GameObjectMap.java b/forge-game/src/main/java/forge/game/GameObjectMap.java index dd15a869d29..cdf18d9f732 100644 --- a/forge-game/src/main/java/forge/game/GameObjectMap.java +++ b/forge-game/src/main/java/forge/game/GameObjectMap.java @@ -14,37 +14,37 @@ public abstract class GameObjectMap { public abstract GameObject map(GameObject o); - public Player map(Player p) { + public Player map(final Player p) { return (Player) map((GameObject) p); } - - public Card map(Card c) { + + public Card map(final Card c) { return (Card) map((GameObject) c); } - public GameEntity map(GameEntity e) { + public GameEntity map(final GameEntity e) { return (GameEntity) map((GameObject) e); } - public CardCollectionView mapCollection(CardCollectionView cards) { - CardCollection collection = new CardCollection(); - for (Card c : cards) { + public CardCollectionView mapCollection(final CardCollectionView cards) { + final CardCollection collection = new CardCollection(); + for (final Card c : cards) { collection.add(map(c)); } return collection; } @SuppressWarnings("unchecked") - public List mapList(List objects) { - ArrayList result = new ArrayList(); - for (T o : objects) { + public List mapList(final List objects) { + final List result = new ArrayList(); + for (final T o : objects) { result.add((T) map(o)); } return result; } - public void fillKeyedMap(Map dest, Map src) { - for (Map.Entry entry : src.entrySet()) { + public void fillKeyedMap(final Map dest, final Map src) { + for (final Map.Entry entry : src.entrySet()) { dest.put(entry.getKey(), entry.getValue()); } } diff --git a/forge-game/src/main/java/forge/game/StaticEffect.java b/forge-game/src/main/java/forge/game/StaticEffect.java index 7a178f33f9a..45bee41134c 100644 --- a/forge-game/src/main/java/forge/game/StaticEffect.java +++ b/forge-game/src/main/java/forge/game/StaticEffect.java @@ -181,7 +181,7 @@ public class StaticEffect { * @param c * a {@link forge.game.card.Card} object. * @param s - * a {@link java.util.ArrayList} object. + * a {@link java.util.List} object. */ public final void addOriginalAbilities(final Card c, final List s) { final List list = new ArrayList(s); @@ -200,10 +200,10 @@ public class StaticEffect { * * @param c * a {@link forge.game.card.Card} object. - * @return a {@link java.util.ArrayList} object. + * @return a {@link java.util.List} object. */ - public final ArrayList getOriginalAbilities(final Card c) { - final ArrayList returnList = new ArrayList(); + public final List getOriginalAbilities(final Card c) { + final List returnList = new ArrayList(); if (this.originalAbilities.containsKey(c)) { returnList.addAll(this.originalAbilities.get(c)); } @@ -566,7 +566,7 @@ public class StaticEffect { */ public final void addType(final Card c, final String s) { if (!this.types.containsKey(c)) { - final ArrayList list = new ArrayList(); + final List list = new ArrayList(); list.add(s); this.types.put(c, list); } else { @@ -581,10 +581,10 @@ public class StaticEffect { * * @param c * a {@link forge.game.card.Card} object. - * @return a {@link java.util.ArrayList} object. + * @return a {@link java.util.List} object. */ - public final ArrayList getTypes(final Card c) { - final ArrayList returnList = new ArrayList(); + public final List getTypes(final Card c) { + final List returnList = new ArrayList(); if (this.types.containsKey(c)) { returnList.addAll(this.types.get(c)); } @@ -749,7 +749,7 @@ public class StaticEffect { * @param list * the new affected players */ - public final void setAffectedPlayers(final ArrayList list) { + public final void setAffectedPlayers(final List list) { this.affectedPlayers = list; } diff --git a/forge-game/src/main/java/forge/game/ability/effects/AnimateAllEffect.java b/forge-game/src/main/java/forge/game/ability/effects/AnimateAllEffect.java index c45e2d86926..1fb307fc76a 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/AnimateAllEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/AnimateAllEffect.java @@ -69,17 +69,17 @@ public class AnimateAllEffect extends AnimateEffectBase { types.add(host.getChosenType()); } - final ArrayList keywords = new ArrayList(); + final List keywords = new ArrayList(); if (sa.hasParam("Keywords")) { keywords.addAll(Arrays.asList(sa.getParam("Keywords").split(" & "))); } - final ArrayList removeKeywords = new ArrayList(); + final List removeKeywords = new ArrayList(); if (sa.hasParam("RemoveKeywords")) { removeKeywords.addAll(Arrays.asList(sa.getParam("RemoveKeywords").split(" & "))); } - final ArrayList hiddenKeywords = new ArrayList(); + final List hiddenKeywords = new ArrayList(); if (sa.hasParam("HiddenKeywords")) { hiddenKeywords.addAll(Arrays.asList(sa.getParam("HiddenKeywords").split(" & "))); } @@ -105,23 +105,23 @@ public class AnimateAllEffect extends AnimateEffectBase { final String finalDesc = tmpDesc; // abilities to add to the animated being - final ArrayList abilities = new ArrayList(); + final List abilities = new ArrayList(); if (sa.hasParam("Abilities")) { abilities.addAll(Arrays.asList(sa.getParam("Abilities").split(","))); } // replacement effects to add to the animated being - final ArrayList replacements = new ArrayList(); + final List replacements = new ArrayList(); if (sa.hasParam("Replacements")) { replacements.addAll(Arrays.asList(sa.getParam("Replacements").split(","))); } // triggers to add to the animated being - final ArrayList triggers = new ArrayList(); + final List triggers = new ArrayList(); if (sa.hasParam("Triggers")) { triggers.addAll(Arrays.asList(sa.getParam("Triggers").split(","))); } // sVars to add to the animated being - final ArrayList sVars = new ArrayList(); + final List sVars = new ArrayList(); if (sa.hasParam("sVars")) { sVars.addAll(Arrays.asList(sa.getParam("sVars").split(","))); } @@ -149,7 +149,7 @@ public class AnimateAllEffect extends AnimateEffectBase { keywords, removeKeywords, hiddenKeywords, timestamp); // give abilities - final ArrayList addedAbilities = new ArrayList(); + final List addedAbilities = new ArrayList(); if (abilities.size() > 0) { for (final String s : abilities) { final String actualAbility = host.getSVar(s); @@ -160,7 +160,7 @@ public class AnimateAllEffect extends AnimateEffectBase { } // remove abilities - final ArrayList removedAbilities = new ArrayList(); + final List removedAbilities = new ArrayList(); if (sa.hasParam("OverwriteAbilities") || sa.hasParam("RemoveAllAbilities")) { for (final SpellAbility ab : c.getSpellAbilities()) { if (ab.isAbility()) { @@ -170,7 +170,7 @@ public class AnimateAllEffect extends AnimateEffectBase { } } // give replacement effects - final ArrayList addedReplacements = new ArrayList(); + final List addedReplacements = new ArrayList(); if (replacements.size() > 0) { for (final String s : replacements) { final String actualReplacement = host.getSVar(s); @@ -179,7 +179,7 @@ public class AnimateAllEffect extends AnimateEffectBase { } } // Grant triggers - final ArrayList addedTriggers = new ArrayList(); + final List addedTriggers = new ArrayList(); if (triggers.size() > 0) { for (final String s : triggers) { final String actualTrigger = host.getSVar(s); @@ -189,7 +189,7 @@ public class AnimateAllEffect extends AnimateEffectBase { } // suppress triggers from the animated card - final ArrayList removedTriggers = new ArrayList(); + final List removedTriggers = new ArrayList(); if (sa.hasParam("OverwriteTriggers") || sa.hasParam("RemoveAllAbilities")) { final FCollectionView triggersToRemove = c.getTriggers(); for (final Trigger trigger : triggersToRemove) { @@ -199,7 +199,7 @@ public class AnimateAllEffect extends AnimateEffectBase { } // suppress static abilities from the animated card - final ArrayList removedStatics = new ArrayList(); + final List removedStatics = new ArrayList(); if (sa.hasParam("OverwriteStatics") || sa.hasParam("RemoveAllAbilities")) { final FCollectionView staticsToRemove = c.getStaticAbilities(); for (final StaticAbility stAb : staticsToRemove) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java index cf6fe588dc1..d7be551a138 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java @@ -202,7 +202,7 @@ public class CloneEffect extends SpellAbilityEffect { } // triggers to add to clone - final ArrayList triggers = new ArrayList(); + final List triggers = new ArrayList(); if (sa.hasParam("AddTriggers")) { triggers.addAll(Arrays.asList(sa.getParam("AddTriggers").split(","))); for (final String s : triggers) { @@ -237,7 +237,7 @@ public class CloneEffect extends SpellAbilityEffect { } // keywords to add to clone - final ArrayList keywords = new ArrayList(); + final List keywords = new ArrayList(); if (sa.hasParam("AddKeywords")) { keywords.addAll(Arrays.asList(sa.getParam("AddKeywords").split(" & "))); // allow SVar substitution for keywords diff --git a/forge-game/src/main/java/forge/game/ability/effects/CopyPermanentEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CopyPermanentEffect.java index ee6f13ec031..70bdc443919 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CopyPermanentEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CopyPermanentEffect.java @@ -56,7 +56,7 @@ public class CopyPermanentEffect extends SpellAbilityEffect { public void resolve(final SpellAbility sa) { final Card hostCard = sa.getHostCard(); final Game game = hostCard.getGame(); - final ArrayList keywords = new ArrayList(); + final List keywords = new ArrayList(); final List types = new ArrayList(); final List svars = new ArrayList(); final List triggers = new ArrayList(); diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersMoveEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersMoveEffect.java index 9c02a2e5520..be75b58621d 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersMoveEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersMoveEffect.java @@ -101,7 +101,7 @@ public class CountersMoveEffect extends SpellAbilityEffect { while (cntToMove > 0 && source.hasCounters()) { final Map tgtCounters = source.getCounters(); - final ArrayList typeChoices = new ArrayList(); + final List typeChoices = new ArrayList(); // get types of counters for (CounterType ct : tgtCounters.keySet()) { if (ct != CounterType.M1M1 || canPlaceM1M1Counters) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/DamagePreventEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DamagePreventEffect.java index 686248dd8cf..9d1292e658a 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DamagePreventEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DamagePreventEffect.java @@ -1,5 +1,10 @@ package forge.game.ability.effects; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + import forge.game.GameObject; import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; @@ -8,10 +13,6 @@ import forge.game.card.CardUtil; import forge.game.player.Player; import forge.game.spellability.SpellAbility; -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; - public class DamagePreventEffect extends SpellAbilityEffect { @Override @@ -68,7 +69,7 @@ public class DamagePreventEffect extends SpellAbilityEffect { int numDam = AbilityUtils.calculateAmount(host, sa.getParam("Amount"), sa); final List tgts = getTargets(sa); - final ArrayList untargetedCards = new ArrayList(); + final List untargetedCards = new ArrayList(); if (sa.hasParam("Radiance") && (sa.usesTargeting())) { Card origin = null; @@ -95,7 +96,7 @@ public class DamagePreventEffect extends SpellAbilityEffect { final Card c = (Card) o; if (c.isInPlay() && (!targeted || c.canBeTargetedBy(sa))) { if (preventionWithEffect) { - TreeMap effectMap = new TreeMap(); + Map effectMap = new TreeMap(); effectMap.put("EffectString", sa.getSVar(sa.getParam("PreventionSubAbility"))); effectMap.put("ShieldAmount", String.valueOf(numDam)); if (sa.hasParam("ShieldEffectTarget")) { @@ -122,7 +123,7 @@ public class DamagePreventEffect extends SpellAbilityEffect { final Player p = (Player) o; if (!targeted || p.canBeTargetedBy(sa)) { if (preventionWithEffect) { - TreeMap effectMap = new TreeMap(); + Map effectMap = new TreeMap(); effectMap.put("EffectString", sa.getSVar(sa.getParam("PreventionSubAbility"))); effectMap.put("ShieldAmount", String.valueOf(numDam)); if (sa.hasParam("ShieldEffectTarget")) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/DebuffEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DebuffEffect.java index bb74fe79814..81257d7f47a 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DebuffEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DebuffEffect.java @@ -63,7 +63,7 @@ public class DebuffEffect extends SpellAbilityEffect { final long timestamp = game.getNextTimestamp(); for (final Card tgtC : getTargetCards(sa)) { - final ArrayList hadIntrinsic = new ArrayList(); + final List hadIntrinsic = new ArrayList(); if (tgtC.isInPlay() && tgtC.canBeTargetedBy(sa)) { if (sa.hasParam("AllSuffixKeywords")) { String suffix = sa.getParam("AllSuffixKeywords"); diff --git a/forge-game/src/main/java/forge/game/ability/effects/DestroyEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DestroyEffect.java index 6887b524054..7ada1a01382 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DestroyEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DestroyEffect.java @@ -73,7 +73,7 @@ public class DestroyEffect extends SpellAbilityEffect { final boolean sac = sa.hasParam("Sacrifice"); final List tgtCards = getTargetCards(sa); - final ArrayList untargetedCards = new ArrayList(); + final List untargetedCards = new ArrayList(); final TargetRestrictions tgt = sa.getTargetRestrictions(); diff --git a/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java index 38dbe88fde0..2e0302c6588 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java @@ -75,7 +75,7 @@ public class DigEffect extends SpellAbilityEffect { boolean changeAll = false; boolean allButOne = false; - final ArrayList keywords = new ArrayList(); + final List keywords = new ArrayList(); if (sa.hasParam("Keywords")) { keywords.addAll(Arrays.asList(sa.getParam("Keywords").split(" & "))); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ProtectEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ProtectEffect.java index 938b3e15bb7..6c330e129ed 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ProtectEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ProtectEffect.java @@ -16,7 +16,6 @@ import java.util.Arrays; import java.util.Iterator; import java.util.List; - public class ProtectEffect extends SpellAbilityEffect { /* (non-Javadoc) @@ -122,7 +121,7 @@ public class ProtectEffect extends SpellAbilityEffect { } } - final ArrayList untargetedCards = new ArrayList(); + final List untargetedCards = new ArrayList(); final TargetRestrictions tgt = sa.getTargetRestrictions(); if (sa.hasParam("Radiance") && (tgt != null)) { @@ -205,7 +204,7 @@ public class ProtectEffect extends SpellAbilityEffect { public static List getProtectionList(final SpellAbility sa) { - final ArrayList gains = new ArrayList(); + final List gains = new ArrayList(); final String gainStr = sa.getParam("Gains"); if (gainStr.equals("Choice")) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/PumpAllEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PumpAllEffect.java index 2bcb622fe24..3d2774f3615 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PumpAllEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PumpAllEffect.java @@ -19,12 +19,12 @@ import java.util.List; public class PumpAllEffect extends SpellAbilityEffect { private static void applyPumpAll(final SpellAbility sa, final List list, final int a, final int d, - final List keywords, final ArrayList affectedZones) { + final List keywords, final List affectedZones) { final Game game = sa.getActivatingPlayer().getGame(); final long timestamp = game.getNextTimestamp(); - final ArrayList kws = new ArrayList(); - final ArrayList hiddenkws = new ArrayList(); + final List kws = new ArrayList(); + final List hiddenkws = new ArrayList(); boolean suspend = false; for (String kw : keywords) { @@ -124,7 +124,7 @@ public class PumpAllEffect extends SpellAbilityEffect { @Override public void resolve(final SpellAbility sa) { final List tgtPlayers = getTargetPlayers(sa); - final ArrayList affectedZones = new ArrayList(); + final List affectedZones = new ArrayList(); final Game game = sa.getActivatingPlayer().getGame(); if (sa.hasParam("PumpZone")) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java index ed7aa34b29a..38c13431b4f 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java @@ -34,7 +34,7 @@ public class PumpEffect extends SpellAbilityEffect { return; } final Game game = sa.getActivatingPlayer().getGame(); - final ArrayList kws = new ArrayList(); + final List kws = new ArrayList(); for (String kw : keywords) { if (kw.startsWith("HIDDEN")) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/VoteEffect.java b/forge-game/src/main/java/forge/game/ability/effects/VoteEffect.java index ac207dd5c2a..1405bb2be13 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/VoteEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/VoteEffect.java @@ -1,7 +1,15 @@ package forge.game.ability.effects; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; + import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Iterables; +import com.google.common.collect.ListMultimap; import com.google.common.collect.Lists; import forge.game.Game; @@ -16,12 +24,6 @@ import forge.game.spellability.SpellAbility; import forge.game.trigger.TriggerType; import forge.game.zone.ZoneType; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import org.apache.commons.lang3.StringUtils; - public class VoteEffect extends SpellAbilityEffect { /* (non-Javadoc) @@ -66,7 +68,7 @@ public class VoteEffect extends SpellAbilityEffect { while (tgtPlayers.contains(activator) && !activator.equals(Iterables.getFirst(tgtPlayers, null))) { tgtPlayers.add(pSize - 1, tgtPlayers.remove(0)); } - ArrayListMultimap votes = ArrayListMultimap.create(); + ListMultimap votes = ArrayListMultimap.create(); for (final Player p : tgtPlayers) { int voteAmount = p.getKeywords().getAmount("You get an additional vote.") + 1; @@ -107,7 +109,7 @@ public class VoteEffect extends SpellAbilityEffect { } } - private static List getMostVotes(final ArrayListMultimap votes) { + private static List getMostVotes(final ListMultimap votes) { final List most = Lists.newArrayList(); int amount = 0; for (final Object voteType : votes.keySet()) { diff --git a/forge-game/src/main/java/forge/game/card/CardFactory.java b/forge-game/src/main/java/forge/game/card/CardFactory.java index 7675cbbff71..823fb721713 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactory.java +++ b/forge-game/src/main/java/forge/game/card/CardFactory.java @@ -642,7 +642,7 @@ public class CardFactory { } private static String[] getCardTypes(Card c) { - ArrayList relevantTypes = new ArrayList(); + List relevantTypes = new ArrayList(); for (CoreType t : c.getType().getCoreTypes()) { relevantTypes.add(t.name()); } diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 4a77a511420..89ccb4c170f 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -2007,8 +2007,8 @@ public class CardFactoryUtil { return types.size(); } - public static ArrayList getBushidoEffects(final Card c) { - final ArrayList list = new ArrayList(); + public static List getBushidoEffects(final Card c) { + final List list = new ArrayList(); for (final String kw : c.getKeywords()) { if (kw.contains("Bushido")) { final String[] parse = kw.split(" "); diff --git a/forge-game/src/main/java/forge/game/card/CardState.java b/forge-game/src/main/java/forge/game/card/CardState.java index 3c2c2baad42..65ffe90b5ee 100644 --- a/forge-game/src/main/java/forge/game/card/CardState.java +++ b/forge-game/src/main/java/forge/game/card/CardState.java @@ -153,7 +153,7 @@ public class CardState { public final boolean hasIntrinsicKeyword(String k) { return intrinsicKeywords.contains(k); } - public final void setIntrinsicKeywords(final ArrayList intrinsicKeyword0) { + public final void setIntrinsicKeywords(final List intrinsicKeyword0) { intrinsicKeywords = intrinsicKeyword0; } @@ -296,7 +296,7 @@ public class CardState { public final Iterable getStaticAbilityStrings() { return staticAbilityStrings; } - public final void setStaticAbilityStrings(final ArrayList staticAbilityStrings0) { + public final void setStaticAbilityStrings(final List staticAbilityStrings0) { staticAbilityStrings = staticAbilityStrings0; } public boolean addStaticAbilityString(String s) { diff --git a/forge-game/src/main/java/forge/game/cost/CostAddMana.java b/forge-game/src/main/java/forge/game/cost/CostAddMana.java index d4f8cd7c749..8f24f6331a8 100644 --- a/forge-game/src/main/java/forge/game/cost/CostAddMana.java +++ b/forge-game/src/main/java/forge/game/cost/CostAddMana.java @@ -17,15 +17,17 @@ */ package forge.game.cost; +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; + import forge.card.ColorSet; import forge.card.MagicColor; import forge.game.card.Card; import forge.game.mana.Mana; import forge.game.player.Player; import forge.game.spellability.SpellAbility; -import org.apache.commons.lang3.StringUtils; - -import java.util.ArrayList; /** * The Class CostAddMana. @@ -73,7 +75,7 @@ public class CostAddMana extends CostPart { if (ai.getGame().getRules().hasCommander()) { cid = ai.getCommander().getRules().getColorIdentity(); } - ArrayList manaProduced = new ArrayList(); + List manaProduced = new ArrayList(); final String type = this.getType(); for (int n = 0; n < decision.c; n++) { if (StringUtils.isNumeric(type)) { diff --git a/forge-game/src/main/java/forge/game/cost/CostPayment.java b/forge-game/src/main/java/forge/game/cost/CostPayment.java index bcaad6a7dce..9830454a69e 100644 --- a/forge-game/src/main/java/forge/game/cost/CostPayment.java +++ b/forge-game/src/main/java/forge/game/cost/CostPayment.java @@ -37,7 +37,7 @@ import java.util.Map; public class CostPayment { private final Cost cost; private final SpellAbility ability; - private final ArrayList paidCostParts = new ArrayList(); + private final List paidCostParts = new ArrayList(); /** *

diff --git a/forge-game/src/main/java/forge/game/mana/ManaCostAdjustment.java b/forge-game/src/main/java/forge/game/mana/ManaCostAdjustment.java index a99fbee39d4..ef2ed9bc33b 100644 --- a/forge-game/src/main/java/forge/game/mana/ManaCostAdjustment.java +++ b/forge-game/src/main/java/forge/game/mana/ManaCostAdjustment.java @@ -52,9 +52,9 @@ public class ManaCostAdjustment { if (!cardsOnBattlefield.contains(originalCard)) { cardsOnBattlefield.add(originalCard); } - final ArrayList raiseAbilities = new ArrayList(); - final ArrayList reduceAbilities = new ArrayList(); - final ArrayList setAbilities = new ArrayList(); + final List raiseAbilities = new ArrayList(); + final List reduceAbilities = new ArrayList(); + final List setAbilities = new ArrayList(); // Sort abilities to apply them in proper order for (Card c : cardsOnBattlefield) { diff --git a/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java b/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java index 299d2e512f0..96a81c7bd6b 100644 --- a/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java +++ b/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java @@ -494,7 +494,7 @@ public class ManaCostBeingPaid { } // Sort the keys to get a deterministic ordering. - ArrayList shards = new ArrayList(unpaidShards.keySet()); + List shards = new ArrayList(unpaidShards.keySet()); Collections.sort(shards); for (ManaCostShard shard : shards) { if (shard == ManaCostShard.COLORLESS) { diff --git a/forge-game/src/main/java/forge/game/mana/ManaPool.java b/forge-game/src/main/java/forge/game/mana/ManaPool.java index 812d4851a78..f3e822f75db 100644 --- a/forge-game/src/main/java/forge/game/mana/ManaPool.java +++ b/forge-game/src/main/java/forge/game/mana/ManaPool.java @@ -280,14 +280,14 @@ public class ManaPool implements Iterable { //Account for mana part of ability when undoing it public boolean accountFor(final AbilityManaPart ma) { - if (ma == null) { - return false; - } + if (ma == null) { + return false; + } if (floatingMana.isEmpty()) { return false; } - final ArrayList removeFloating = new ArrayList(); + final List removeFloating = new ArrayList(); boolean manaNotAccountedFor = false; // loop over mana produced by mana ability diff --git a/forge-game/src/main/java/forge/game/phase/Phase.java b/forge-game/src/main/java/forge/game/phase/Phase.java index d9a71eb010e..9b31c09900a 100644 --- a/forge-game/src/main/java/forge/game/phase/Phase.java +++ b/forge-game/src/main/java/forge/game/phase/Phase.java @@ -45,8 +45,8 @@ public class Phase implements java.io.Serializable { this.type = type; } - protected final ArrayList at = new ArrayList(); - private final ArrayList until = new ArrayList(); + protected final List at = new ArrayList(); + private final List until = new ArrayList(); private final HashMap> untilMap = new HashMap>(); private final HashMap> untilEndMap = new HashMap>(); private final HashMap> registerMap = new HashMap>(); diff --git a/forge-game/src/main/java/forge/game/player/AchievementTracker.java b/forge-game/src/main/java/forge/game/player/AchievementTracker.java index 280d2aff0aa..5ef703b5ae5 100644 --- a/forge-game/src/main/java/forge/game/player/AchievementTracker.java +++ b/forge-game/src/main/java/forge/game/player/AchievementTracker.java @@ -1,6 +1,7 @@ package forge.game.player; import java.util.HashSet; +import java.util.Set; import forge.card.ColorSet; import forge.game.card.Card; @@ -8,8 +9,8 @@ import forge.game.spellability.SpellAbility; //class for storing information during a game that is used at the end of the game to determine achievements public class AchievementTracker { - public final HashSet activatedUltimates = new HashSet(); - public final HashSet challengesCompleted = new HashSet(); + public final Set activatedUltimates = new HashSet(); + public final Set challengesCompleted = new HashSet(); public int mulliganTo = 7; public int spellsCast = 0; public int maxStormCount = 0; diff --git a/forge-game/src/main/java/forge/game/player/Player.java b/forge-game/src/main/java/forge/game/player/Player.java index 19459c8ccd4..26e2ca29417 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -121,7 +121,7 @@ public class Player extends GameEntity implements Comparable { private final Map zones = new EnumMap(ZoneType.class); private CardCollection currentPlanes = new CardCollection(); - private ArrayList prowl = new ArrayList(); + private List prowl = new ArrayList(); private PlayerStatistics stats = new PlayerStatistics(); private PlayerController controller; @@ -692,7 +692,7 @@ public class Player extends GameEntity implements Comparable { boolean DEBUGShieldsWithEffects = false; while (!getPreventNextDamageWithEffect().isEmpty() && restDamage != 0) { - TreeMap> shieldMap = getPreventNextDamageWithEffect(); + Map> shieldMap = getPreventNextDamageWithEffect(); CardCollection preventionEffectSources = new CardCollection(shieldMap.keySet()); Card shieldSource = preventionEffectSources.get(0); if (preventionEffectSources.size() > 1) { diff --git a/forge-game/src/main/java/forge/game/player/PlayerController.java b/forge-game/src/main/java/forge/game/player/PlayerController.java index 531ec44478c..8ffbe575f8f 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerController.java +++ b/forge-game/src/main/java/forge/game/player/PlayerController.java @@ -1,7 +1,6 @@ package forge.game.player; import java.util.Collection; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -9,7 +8,7 @@ import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import com.google.common.base.Predicate; -import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.ListMultimap; import com.google.common.collect.Multimap; import forge.LobbyPlayer; @@ -164,7 +163,7 @@ public abstract class PlayerController { return chooseSomeType(kindOfType, sa, validTypes, invalidTypes, false); } - public abstract Object vote(SpellAbility sa, String prompt, List options, ArrayListMultimap votes); + public abstract Object vote(SpellAbility sa, String prompt, List options, ListMultimap votes); public abstract Pair chooseAndRemoveOrPutCounter(Card cardWithCounter); public abstract boolean confirmReplacementEffect(ReplacementEffect replacementEffect, SpellAbility effectSA, String question); public abstract CardCollectionView getCardsToMulligan(boolean isCommander, Player firstPlayer); @@ -195,7 +194,7 @@ public abstract class PlayerController { public abstract CounterType chooseCounterType(List options, SpellAbility sa, String prompt); public abstract boolean confirmPayment(CostPart costPart, String string); - public abstract ReplacementEffect chooseSingleReplacementEffect(String prompt, List possibleReplacers, HashMap runParams); + public abstract ReplacementEffect chooseSingleReplacementEffect(String prompt, List possibleReplacers, Map runParams); public abstract String chooseProtectionType(String string, SpellAbility sa, List choices); public abstract CardShields chooseRegenerationShield(Card c); diff --git a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java index fef3efa54d5..7cb1b63aefc 100644 --- a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java +++ b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java @@ -17,6 +17,15 @@ */ package forge.game.spellability; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.apache.commons.lang3.StringUtils; + import forge.card.ColorSet; import forge.card.MagicColor; import forge.game.card.Card; @@ -29,14 +38,6 @@ import forge.game.replacement.ReplacementLayer; import forge.game.replacement.ReplacementResult; import forge.game.trigger.TriggerType; -import org.apache.commons.lang3.StringUtils; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - /** *

* Abstract AbilityMana class. @@ -60,7 +61,7 @@ public class AbilityManaPart implements java.io.Serializable { private final boolean persistentMana; private String manaReplaceType; - private transient ArrayList lastManaProduced = new ArrayList(); + private transient List lastManaProduced = new ArrayList(); private final transient Card sourceCard; @@ -405,7 +406,7 @@ public class AbilityManaPart implements java.io.Serializable { * * @return a {@link java.lang.String} object. */ - public ArrayList getLastManaProduced() { + public List getLastManaProduced() { return this.lastManaProduced; } diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java index 10dae78bfc3..c23a26244f2 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java @@ -110,7 +110,7 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit protected ApiType api = null; - private final ArrayList payingMana = new ArrayList(); + private final List payingMana = new ArrayList(); private final List paidAbilities = new ArrayList(); private HashMap paidLists = new HashMap(); @@ -946,8 +946,8 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit * @return a {@link java.util.ArrayList} object. * @since 1.0.15 */ - public final ArrayList getAllTargetChoices() { - final ArrayList res = new ArrayList(); + public final List getAllTargetChoices() { + final List res = new ArrayList(); SpellAbility sa = getRootAbility(); if (sa.getTargetRestrictions() != null) { diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbilityRestriction.java b/forge-game/src/main/java/forge/game/spellability/SpellAbilityRestriction.java index 6ea0f7604ee..6b7db230a94 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbilityRestriction.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbilityRestriction.java @@ -17,6 +17,10 @@ */ package forge.game.spellability; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + import forge.game.Game; import forge.game.ability.AbilityUtils; import forge.game.card.Card; @@ -29,9 +33,6 @@ import forge.game.zone.Zone; import forge.game.zone.ZoneType; import forge.util.Expressions; -import java.util.ArrayList; -import java.util.Map; - /** *

* SpellAbilityRestriction class. @@ -80,7 +81,7 @@ public class SpellAbilityRestriction extends SpellAbilityVariables { this.setHellbent(true); } if (value.startsWith("Prowl")) { - final ArrayList prowlTypes = new ArrayList(); + final List prowlTypes = new ArrayList(); prowlTypes.add("Rogue"); if (value.split("Prowl").length > 1) { prowlTypes.add(value.split("Prowl")[1]); diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbilityStackInstance.java b/forge-game/src/main/java/forge/game/spellability/SpellAbilityStackInstance.java index a7fb90ca565..d4024a1f0b7 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbilityStackInstance.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbilityStackInstance.java @@ -254,9 +254,9 @@ public class SpellAbilityStackInstance implements IIdentifiable, IHasCardView { view.updateText(this); // Run BecomesTargetTrigger - HashMap runParams = new HashMap(); + Map runParams = new HashMap(); runParams.put("SourceSA", ability); - HashSet distinctObjects = new HashSet(); + Set distinctObjects = new HashSet(); for (final Object tgt : target.getTargets()) { if (distinctObjects.contains(tgt)) { continue; diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbilityVariables.java b/forge-game/src/main/java/forge/game/spellability/SpellAbilityVariables.java index db77ce92a67..65d2e12ab7e 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbilityVariables.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbilityVariables.java @@ -156,7 +156,7 @@ public class SpellAbilityVariables { private boolean allTargetsLegal = false; /** The prowl. */ - private ArrayList prowlTypes = new ArrayList(); + private List prowlTypes = new ArrayList(); /** The s is present. */ private String isPresent = null; @@ -518,7 +518,7 @@ public class SpellAbilityVariables { * @param types * the new prowl */ - public final void setProwlTypes(final ArrayList types) { + public final void setProwlTypes(final List types) { this.prowlTypes = types; } @@ -750,7 +750,7 @@ public class SpellAbilityVariables { * * @return the prowl */ - public final ArrayList getProwlTypes() { + public final List getProwlTypes() { return this.prowlTypes; } diff --git a/forge-game/src/main/java/forge/game/spellability/TargetChoices.java b/forge-game/src/main/java/forge/game/spellability/TargetChoices.java index 94085988929..d47c06dc63e 100644 --- a/forge-game/src/main/java/forge/game/spellability/TargetChoices.java +++ b/forge-game/src/main/java/forge/game/spellability/TargetChoices.java @@ -109,7 +109,7 @@ public class TargetChoices implements Cloneable { } public final List getTargets() { - final ArrayList tgts = new ArrayList(); + final List tgts = new ArrayList(); tgts.addAll(targetPlayers); tgts.addAll(targetCards); tgts.addAll(targetSpells); diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java index 4df674a431f..1e466ed4316 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java @@ -100,7 +100,7 @@ public final class StaticAbilityContinuous { final Card hostCard = stAb.getHostCard(); final Player controller = hostCard.getController(); - final ArrayList affectedPlayers = StaticAbilityContinuous.getAffectedPlayers(stAb); + final List affectedPlayers = StaticAbilityContinuous.getAffectedPlayers(stAb); final Game game = hostCard.getGame(); final StaticEffect se = game.getStaticEffects().getStaticEffect(stAb); @@ -132,7 +132,7 @@ public final class StaticAbilityContinuous { String addColors = null; String[] addTriggers = null; String[] addStatics = null; - ArrayList addFullAbs = null; + List addFullAbs = null; boolean removeAllAbilities = false; boolean removeSuperTypes = false; boolean removeCardTypes = false; @@ -329,7 +329,7 @@ public final class StaticAbilityContinuous { if (layer == StaticAbilityLayer.ABILITIES1 && params.containsKey("GainsAbilitiesOf")) { final String[] valids = params.get("GainsAbilitiesOf").split(","); - ArrayList validZones = new ArrayList(); + List validZones = new ArrayList(); validZones.add(ZoneType.Battlefield); if (params.containsKey("GainsAbilitiesOfZones")) { validZones.clear(); @@ -656,12 +656,12 @@ public final class StaticAbilityContinuous { sourceCard.addLeavesPlayCommand(removeIgnore); } - private static ArrayList getAffectedPlayers(final StaticAbility stAb) { + private static List getAffectedPlayers(final StaticAbility stAb) { final Map params = stAb.getMapParams(); final Card hostCard = stAb.getHostCard(); final Player controller = hostCard.getController(); - final ArrayList players = new ArrayList(); + final List players = new ArrayList(); if (!params.containsKey("Affected")) { return players; diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerVote.java b/forge-game/src/main/java/forge/game/trigger/TriggerVote.java index c219dbe3479..e6c7defe84c 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerVote.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerVote.java @@ -17,15 +17,16 @@ */ package forge.game.trigger; -import forge.game.card.Card; -import forge.game.player.Player; -import forge.game.spellability.SpellAbility; -import forge.util.FCollection; - import java.util.List; import java.util.Map; import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.ListMultimap; + +import forge.game.card.Card; +import forge.game.player.Player; +import forge.game.spellability.SpellAbility; +import forge.util.FCollection; /** *

@@ -63,12 +64,12 @@ public class TriggerVote extends Trigger { @Override public final void setTriggeringObjects(final SpellAbility sa) { @SuppressWarnings("unchecked") - final ArrayListMultimap votes = (ArrayListMultimap) this.getRunParams().get("AllVotes"); + final ListMultimap votes = (ArrayListMultimap) this.getRunParams().get("AllVotes"); sa.setTriggeringObject("OtherVoters", getVoters(this.getHostCard().getController(), votes, true, true)); } private static FCollection getVoters(final Player player, - final ArrayListMultimap votes, + final ListMultimap votes, final boolean isOpponent, final boolean votedOtherchoice) { final FCollection voters = new FCollection(); for (final Object voteType : votes.keySet()) { diff --git a/forge-game/src/main/java/forge/game/zone/MagicStack.java b/forge-game/src/main/java/forge/game/zone/MagicStack.java index 026c12cc1ed..6a75cd647e2 100644 --- a/forge-game/src/main/java/forge/game/zone/MagicStack.java +++ b/forge-game/src/main/java/forge/game/zone/MagicStack.java @@ -23,6 +23,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Set; import java.util.Map.Entry; import java.util.Stack; import java.util.concurrent.LinkedBlockingDeque; @@ -377,7 +378,7 @@ public class MagicStack /* extends MyObservable */ implements Iterable distinctObjects = new HashSet(); + Set distinctObjects = new HashSet(); for (final TargetChoices tc : chosenTargets) { if (tc != null && tc.getTargetCards() != null) { for (final Object tgt : tc.getTargets()) { diff --git a/forge-game/src/main/java/forge/util/FCollection.java b/forge-game/src/main/java/forge/util/FCollection.java index bcc59ee09ca..10580705c4e 100644 --- a/forge-game/src/main/java/forge/util/FCollection.java +++ b/forge-game/src/main/java/forge/util/FCollection.java @@ -16,7 +16,7 @@ import java.util.Set; public class FCollection implements List, Set, FCollectionView, Cloneable, Serializable { private static final long serialVersionUID = -1664555336364294106L; - private final HashSet set = new HashSet(); + private final Set set = new HashSet(); private final LinkedList list = new LinkedList(); public FCollection() { diff --git a/forge-gui-desktop/src/main/java/forge/gui/MultiLineLabelUI.java b/forge-gui-desktop/src/main/java/forge/gui/MultiLineLabelUI.java index 64373687b4e..c151698bf88 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/MultiLineLabelUI.java +++ b/forge-gui-desktop/src/main/java/forge/gui/MultiLineLabelUI.java @@ -603,7 +603,7 @@ public class MultiLineLabelUI extends BasicLabelUI implements ComponentListener /** * Reused segments. */ - private final ArrayList segments = new ArrayList(2); + private final List segments = new ArrayList(2); /** * Singleton instance. diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/ItemManager.java b/forge-gui-desktop/src/main/java/forge/itemmanager/ItemManager.java index 838a3067196..c3bacd2ec7f 100644 --- a/forge-gui-desktop/src/main/java/forge/itemmanager/ItemManager.java +++ b/forge-gui-desktop/src/main/java/forge/itemmanager/ItemManager.java @@ -94,7 +94,7 @@ public abstract class ItemManager extends JPanel implem private final Class genericType; private final CDetailPicture cDetailPicture; private ItemManagerConfig config; - private final ArrayList selectionListeners = new ArrayList(); + private final List selectionListeners = new ArrayList(); private final SkinnedCheckBox chkEnableFilters = new SkinnedCheckBox(); diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/filters/ToggleButtonsFilter.java b/forge-gui-desktop/src/main/java/forge/itemmanager/filters/ToggleButtonsFilter.java index c723888a191..3d0bda93cd2 100644 --- a/forge-gui-desktop/src/main/java/forge/itemmanager/filters/ToggleButtonsFilter.java +++ b/forge-gui-desktop/src/main/java/forge/itemmanager/filters/ToggleButtonsFilter.java @@ -1,18 +1,20 @@ package forge.itemmanager.filters; +import java.awt.Graphics; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.Icon; +import javax.swing.JPanel; + import forge.UiCommand; import forge.item.InventoryItem; import forge.itemmanager.ItemManager; import forge.toolbox.FLabel; import forge.toolbox.FSkin; -import forge.toolbox.LayoutHelper; import forge.toolbox.FSkin.SkinFont; import forge.toolbox.FSkin.SkinImage; - -import javax.swing.*; - -import java.awt.*; -import java.util.ArrayList; +import forge.toolbox.LayoutHelper; /** * TODO: Write javadoc for this type. @@ -21,7 +23,7 @@ import java.util.ArrayList; @SuppressWarnings("serial") public abstract class ToggleButtonsFilter extends ItemFilter { protected boolean lockFiltering; - private final ArrayList buttons = new ArrayList(); + private final List buttons = new ArrayList(); protected ToggleButtonsFilter(ItemManager itemManager0) { super(itemManager0); diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/views/ImageView.java b/forge-gui-desktop/src/main/java/forge/itemmanager/views/ImageView.java index bb458d7c16a..f1af01ea4f3 100644 --- a/forge-gui-desktop/src/main/java/forge/itemmanager/views/ImageView.java +++ b/forge-gui-desktop/src/main/java/forge/itemmanager/views/ImageView.java @@ -79,8 +79,8 @@ public class ImageView extends ItemView { private Point hoverScrollPos; private ItemInfo hoveredItem; private ItemInfo focalItem; - private final ArrayList orderedItems = new ArrayList(); - private final ArrayList groups = new ArrayList(); + private final List orderedItems = new ArrayList(); + private final List groups = new ArrayList(); @SuppressWarnings("serial") private class ExpandCollapseButton extends FLabel { @@ -580,7 +580,7 @@ public class ImageView extends ItemView { if (forRefresh && pileBy != null) { //refresh piles if needed //use TreeMap to build pile set so iterating below sorts on key ColumnDef groupPileBy = groupBy == null ? pileBy : groupBy.getGroupPileBy(i, pileBy); - TreeMap, Pile> piles = new TreeMap, Pile>(); + Map, Pile> piles = new TreeMap, Pile>(); for (ItemInfo itemInfo : group.items) { Comparable key = groupPileBy.fnSort.apply(itemInfo); if (!piles.containsKey(key)) { diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/DeckHtmlSerializer.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/DeckHtmlSerializer.java index 1ad7489ab56..8f0a2d4be1b 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/DeckHtmlSerializer.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/DeckHtmlSerializer.java @@ -80,7 +80,7 @@ public class DeckHtmlSerializer { } } - final TreeMap map = new TreeMap(); + final Map map = new TreeMap(); for (final Entry entry : d.getMain()) { map.put(entry.getKey().getName(), entry.getValue()); // System.out.println(entry.getValue() + " " + diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java b/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java index dd1f9233729..f964c4084c6 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java @@ -242,7 +242,7 @@ public final class CMatchUI return FSkin.getAvatars().get(avatarIdx >= 0 ? avatarIdx : defaultIndex); } - private void initMatch(final FCollectionView sortedPlayers, final Iterable myPlayers) { + private void initMatch(final FCollectionView sortedPlayers, final Collection myPlayers) { this.sortedPlayers = sortedPlayers; this.setLocalPlayers(myPlayers); allHands = sortedPlayers.size() == getLocalPlayerCount(); diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FComboBoxPanel.java b/forge-gui-desktop/src/main/java/forge/toolbox/FComboBoxPanel.java index 8ad8c2ec252..3fddeeb4bc1 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/FComboBoxPanel.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/FComboBoxPanel.java @@ -2,6 +2,7 @@ package forge.toolbox; import java.awt.FlowLayout; import java.util.ArrayList; +import java.util.List; import javax.swing.JPanel; @@ -14,7 +15,7 @@ import forge.toolbox.FSkin.SkinnedLabel; @SuppressWarnings("serial") public class FComboBoxPanel extends JPanel { - private static final ArrayList> allPanels = new ArrayList>(); + private static final List> allPanels = new ArrayList>(); public static void refreshAllSkins() { for (final FComboBoxPanel panel : allPanels) { diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FComboBoxWrapper.java b/forge-gui-desktop/src/main/java/forge/toolbox/FComboBoxWrapper.java index b07f1f40cfe..1230125145f 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/FComboBoxWrapper.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/FComboBoxWrapper.java @@ -5,6 +5,7 @@ import java.awt.event.ActionListener; import java.awt.event.ItemListener; import java.awt.event.KeyListener; import java.util.ArrayList; +import java.util.List; import javax.swing.ComboBoxModel; import javax.swing.JComponent; @@ -22,7 +23,7 @@ import forge.toolbox.FSkin.SkinFont; */ public class FComboBoxWrapper implements IComboBox { - private static final ArrayList> allWrappers = new ArrayList>(); + private static final List> allWrappers = new ArrayList>(); public static void refreshAllSkins() { for (final FComboBoxWrapper wrapper : allWrappers) { diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FDigitalClock.java b/forge-gui-desktop/src/main/java/forge/toolbox/FDigitalClock.java index f7ea6544369..13b850f35c0 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/FDigitalClock.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/FDigitalClock.java @@ -5,6 +5,7 @@ import java.awt.event.ActionListener; import java.text.DateFormat; import java.util.ArrayList; import java.util.Calendar; +import java.util.List; import javax.swing.Timer; @@ -18,7 +19,7 @@ import forge.toolbox.FSkin.SkinnedLabel; public class FDigitalClock extends SkinnedLabel { private static final Calendar now = Calendar.getInstance(); private static final DateFormat timeFormatter = DateFormat.getTimeInstance(DateFormat.SHORT); - private static final ArrayList clocks = new ArrayList(); + private static final List clocks = new ArrayList(); private static Timer timer; private static String currentTimeDisplay; diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java b/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java index 7631798be3a..07edfe9b59c 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java @@ -1100,7 +1100,7 @@ public class FSkin { if (allSkins == null) { //initialize allSkins = new ArrayList(); - final ArrayList skinDirectoryNames = getSkinDirectoryNames(); + final List skinDirectoryNames = getSkinDirectoryNames(); for (int i = 0; i < skinDirectoryNames.size(); i++) { allSkins.add(WordUtils.capitalize(skinDirectoryNames.get(i).replace('_', ' '))); } @@ -1337,8 +1337,8 @@ public class FSkin { * * @return the skins */ - public static ArrayList getSkinDirectoryNames() { - final ArrayList mySkins = new ArrayList(); + public static List getSkinDirectoryNames() { + final List mySkins = new ArrayList(); final File dir = new File(ForgeConstants.SKINS_DIR); final String[] children = dir.list(); diff --git a/forge-gui-desktop/src/test/java/forge/ai/simulation/GameSimulatorTest.java b/forge-gui-desktop/src/test/java/forge/ai/simulation/GameSimulatorTest.java index 13f9a8746a7..93198b3b547 100644 --- a/forge-gui-desktop/src/test/java/forge/ai/simulation/GameSimulatorTest.java +++ b/forge-gui-desktop/src/test/java/forge/ai/simulation/GameSimulatorTest.java @@ -1,8 +1,9 @@ package forge.ai.simulation; -import java.util.ArrayList; import java.util.List; +import junit.framework.TestCase; + import com.google.common.collect.Lists; import forge.GuiBase; @@ -26,7 +27,6 @@ import forge.game.spellability.SpellAbility; import forge.game.zone.ZoneType; import forge.item.IPaperCard; import forge.model.FModel; -import junit.framework.TestCase; public class GameSimulatorTest extends TestCase { private static boolean initialized = false; @@ -319,7 +319,7 @@ public class GameSimulatorTest extends TestCase { game.getAction().checkStateEffects(true); CardCollection cards = ComputerUtilAbility.getAvailableCards(game, p); - ArrayList abilities = ComputerUtilAbility.getSpellAbilities(cards, p); + List abilities = ComputerUtilAbility.getSpellAbilities(cards, p); SpellAbility minusTwo = findSAWithPrefix(abilities, "-2: Put a 2/2 black Vampire"); assertNotNull(minusTwo); minusTwo.setActivatingPlayer(p); diff --git a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java index 3d4319a34c2..22805579479 100644 --- a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java +++ b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java @@ -9,8 +9,8 @@ import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import com.google.common.base.Predicate; -import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Iterables; +import com.google.common.collect.ListMultimap; import com.google.common.collect.Multimap; import forge.LobbyPlayer; @@ -465,26 +465,26 @@ public class PlayerControllerForTests extends PlayerController { return (CardCollection)items.subList(0, Math.max(amount, items.size())); } - private T chooseItem(Iterable items) { - if (items == null) { - return null; - } - return Iterables.getFirst(items, null); - } - - @Override - public SpellAbility getAbilityToPlay(Card hostCard, List abilities, ITriggerEvent triggerEvent) { - // Isn't this a method invocation loop? --elcnesh - return getAbilityToPlay(hostCard, abilities); - } - - @Override - public String chooseSomeType(String kindOfType, SpellAbility sa, List validTypes, List invalidTypes, boolean isOptional) { - return chooseItem(validTypes); - } + private T chooseItem(Iterable items) { + if (items == null) { + return null; + } + return Iterables.getFirst(items, null); + } @Override - public Object vote(SpellAbility sa, String prompt, List options, ArrayListMultimap votes) { + public SpellAbility getAbilityToPlay(Card hostCard, List abilities, ITriggerEvent triggerEvent) { + // Isn't this a method invocation loop? --elcnesh + return getAbilityToPlay(hostCard, abilities); + } + + @Override + public String chooseSomeType(String kindOfType, SpellAbility sa, List validTypes, List invalidTypes, boolean isOptional) { + return chooseItem(validTypes); + } + + @Override + public Object vote(SpellAbility sa, String prompt, List options, ListMultimap votes) { return chooseItem(options); } @@ -509,9 +509,7 @@ public class PlayerControllerForTests extends PlayerController { } @Override - public ReplacementEffect chooseSingleReplacementEffect(String prompt, - List possibleReplacers, - HashMap runParams) { + public ReplacementEffect chooseSingleReplacementEffect(String prompt, List possibleReplacers, Map runParams) { // TODO Auto-generated method stub return Iterables.getFirst(possibleReplacers, null); } diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index df6459b667f..21a566505e9 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -1,6 +1,7 @@ package forge; import java.util.ArrayList; +import java.util.List; import java.util.Stack; import com.badlogic.gdx.ApplicationListener; @@ -405,7 +406,7 @@ public class Forge implements ApplicationListener { } private static class MainInputProcessor extends FGestureAdapter { - private static final ArrayList potentialListeners = new ArrayList(); + private static final List potentialListeners = new ArrayList(); private static char lastKeyTyped; private static boolean keyTyped, shiftKeyDown; diff --git a/forge-gui-mobile/src/forge/animation/ForgeTransition.java b/forge-gui-mobile/src/forge/animation/ForgeTransition.java index 377311d0eb8..869014e66b6 100644 --- a/forge-gui-mobile/src/forge/animation/ForgeTransition.java +++ b/forge-gui-mobile/src/forge/animation/ForgeTransition.java @@ -10,19 +10,17 @@ import forge.Graphics; import forge.toolbox.FDisplayObject; import forge.toolbox.FOverlay; - public class ForgeTransition extends ForgeAnimation { private static final FOverlay overlay = new FOverlay(null) { - @Override - protected void doLayout(float width, float height) { + @Override protected void doLayout(final float width, final float height) { } }; private static final Map transitionLookup = new LinkedHashMap(); - public static void queue(FDisplayObject obj, Rectangle destBounds, float duration, Runnable onFinished) { + public static void queue(final FDisplayObject obj, final Rectangle destBounds, final float duration, final Runnable onFinished) { queue(obj, destBounds, duration, 0, false, onFinished); } - public static void queue(FDisplayObject obj, Rectangle destBounds, float duration, float arcAmount, boolean arcOriginBelow, Runnable onFinished) { + public static void queue(final FDisplayObject obj, final Rectangle destBounds, final float duration, final float arcAmount, final boolean arcOriginBelow, final Runnable onFinished) { TransitionObject transitionObj = transitionLookup.get(obj); if (transitionObj == null) { transitionObj = new TransitionObject(obj); @@ -30,7 +28,7 @@ public class ForgeTransition extends ForgeAnimation { overlay.add(transitionObj); obj.setVisible(false); //hide original object while transition in progress } - ForgeTransition transition = new ForgeTransition(transitionObj, destBounds, duration, arcAmount, arcOriginBelow, onFinished); + final ForgeTransition transition = new ForgeTransition(transitionObj, destBounds, duration, arcAmount, arcOriginBelow, onFinished); transitionObj.transitions.add(transition); if (transitionObj.transitions.size() == 1) { transition.start(); //start transition right away if first transition added @@ -45,7 +43,7 @@ public class ForgeTransition extends ForgeAnimation { private final boolean arcOriginBelow;*/ private final Runnable onFinished; - private ForgeTransition(TransitionObject obj0, Rectangle destBounds0, float duration0, float arcAmount0, boolean arcOriginBelow0, Runnable onFinished0) { + private ForgeTransition(final TransitionObject obj0, final Rectangle destBounds0, final float duration0, final float arcAmount0, final boolean arcOriginBelow0, final Runnable onFinished0) { obj = obj0; /*destBounds = destBounds0; duration = duration0; @@ -55,12 +53,12 @@ public class ForgeTransition extends ForgeAnimation { } @Override - protected boolean advance(float dt) { + protected boolean advance(final float dt) { return false; } @Override - protected void onEnd(boolean endingAll) { + protected void onEnd(final boolean endingAll) { if (onFinished != null) { onFinished.run(); } @@ -70,7 +68,7 @@ public class ForgeTransition extends ForgeAnimation { return; } - int index = obj.transitions.indexOf(this); + final int index = obj.transitions.indexOf(this); obj.transitions.remove(index); if (index == 0) { if (obj.transitions.isEmpty()) { @@ -91,13 +89,13 @@ public class ForgeTransition extends ForgeAnimation { private final FDisplayObject originalObj; private final LinkedList transitions = new LinkedList(); - private TransitionObject(FDisplayObject originalObj0) { + private TransitionObject(final FDisplayObject originalObj0) { originalObj = originalObj0; setBounds(originalObj.screenPos.x, originalObj.screenPos.y, originalObj.getWidth(), originalObj.getHeight()); } @Override - public void draw(Graphics g) { + public void draw(final Graphics g) { originalObj.draw(g); } } diff --git a/forge-gui-mobile/src/forge/assets/FSkin.java b/forge-gui-mobile/src/forge/assets/FSkin.java index ad9bc9a5de1..19566562ec5 100644 --- a/forge-gui-mobile/src/forge/assets/FSkin.java +++ b/forge-gui-mobile/src/forge/assets/FSkin.java @@ -3,6 +3,7 @@ package forge.assets; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.apache.commons.lang3.text.WordUtils; @@ -30,7 +31,7 @@ public class FSkin { private static final Map images = new HashMap(); private static final Map avatars = new HashMap(); - private static ArrayList allSkins; + private static List allSkins; private static FileHandle preferredDir; private static String preferredName; private static boolean loaded = false; @@ -98,9 +99,9 @@ public class FSkin { if (splashScreen != null) { if (allSkins == null) { //initialize allSkins = new ArrayList(); - ArrayList skinDirectoryNames = getSkinDirectoryNames(); - for (int i = 0; i < skinDirectoryNames.size(); i++) { - allSkins.add(WordUtils.capitalize(skinDirectoryNames.get(i).replace('_', ' '))); + final List skinDirectoryNames = getSkinDirectoryNames(); + for (final String skinDirectoryName : skinDirectoryNames) { + allSkins.add(WordUtils.capitalize(skinDirectoryName.replace('_', ' '))); } Collections.sort(allSkins); } @@ -300,8 +301,8 @@ public class FSkin { * * @return the skins */ - public static ArrayList getSkinDirectoryNames() { - final ArrayList mySkins = new ArrayList(); + public static List getSkinDirectoryNames() { + final List mySkins = new ArrayList(); final FileHandle dir = Gdx.files.absolute(ForgeConstants.SKINS_DIR); for (FileHandle skinFile : dir.list()) { diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/ToggleButtonsFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/ToggleButtonsFilter.java index 93a43080153..f0893951c4c 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/ToggleButtonsFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/ToggleButtonsFilter.java @@ -1,5 +1,10 @@ package forge.itemmanager.filters; +import java.util.ArrayList; +import java.util.List; + +import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; + import forge.assets.FImage; import forge.item.InventoryItem; import forge.itemmanager.ItemManager; @@ -7,14 +12,11 @@ import forge.toolbox.FEvent; import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventType; import forge.toolbox.FLabel; -import java.util.ArrayList; - -import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; public abstract class ToggleButtonsFilter extends ItemFilter { protected boolean lockFiltering; - private final ArrayList buttons = new ArrayList(); + private final List buttons = new ArrayList(); protected ToggleButtonsFilter(ItemManager itemManager0) { super(itemManager0); diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java index 39ddd6184f7..03004354ef6 100644 --- a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java +++ b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java @@ -63,8 +63,8 @@ public class ImageView extends ItemView { private ItemInfo focalItem; private boolean updatingLayout; private float totalZoomAmount; - private final ArrayList orderedItems = new ArrayList(); - private final ArrayList groups = new ArrayList(); + private final List orderedItems = new ArrayList(); + private final List groups = new ArrayList(); private class ExpandCollapseButton extends FLabel { private boolean isAllCollapsed; @@ -435,7 +435,7 @@ public class ImageView extends ItemView { if (forRefresh && pileBy != null) { //refresh piles if needed //use TreeMap to build pile set so iterating below sorts on key ColumnDef groupPileBy = groupBy == null ? pileBy : groupBy.getGroupPileBy(i, pileBy); - TreeMap, Pile> piles = new TreeMap, Pile>(); + Map, Pile> piles = new TreeMap, Pile>(); for (ItemInfo itemInfo : group.items) { Comparable key = groupPileBy.fnSort.apply(itemInfo); if (!piles.containsKey(key)) { diff --git a/forge-gui-mobile/src/forge/screens/FScreen.java b/forge-gui-mobile/src/forge/screens/FScreen.java index bb940fe0cb2..7525bbd901c 100644 --- a/forge-gui-mobile/src/forge/screens/FScreen.java +++ b/forge-gui-mobile/src/forge/screens/FScreen.java @@ -1,6 +1,6 @@ package forge.screens; -import java.util.ArrayList; +import java.util.List; import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; @@ -10,8 +10,8 @@ import forge.Forge; import forge.Graphics; import forge.assets.FImage; import forge.assets.FSkinColor; -import forge.assets.FSkinFont; import forge.assets.FSkinColor.Colors; +import forge.assets.FSkinFont; import forge.assets.FSkinTexture; import forge.menu.FPopupMenu; import forge.screens.home.HomeScreen; @@ -130,7 +130,7 @@ public abstract class FScreen extends FContainer { } @Override - public void buildTouchListeners(float screenX, float screenY, ArrayList listeners) { + public void buildTouchListeners(float screenX, float screenY, List listeners) { if (Forge.isLandscapeMode()) { //allow touch events on backdrop screen if any FScreen backdrop = getLandscapeBackdropScreen(); diff --git a/forge-gui-mobile/src/forge/screens/home/HomeScreen.java b/forge-gui-mobile/src/forge/screens/home/HomeScreen.java index cfd3502f69a..97b56b76d36 100644 --- a/forge-gui-mobile/src/forge/screens/home/HomeScreen.java +++ b/forge-gui-mobile/src/forge/screens/home/HomeScreen.java @@ -1,17 +1,18 @@ package forge.screens.home; import java.util.ArrayList; +import java.util.List; import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import forge.Forge; import forge.Graphics; -import forge.screens.FScreen; import forge.assets.FSkinColor; import forge.assets.FSkinColor.Colors; import forge.assets.FSkinImage; import forge.deck.FDeckChooser; import forge.game.GameType; +import forge.screens.FScreen; import forge.screens.achievements.AchievementsScreen; import forge.screens.online.OnlineMenu; import forge.screens.settings.SettingsScreen; @@ -31,7 +32,7 @@ public class HomeScreen extends FScreen { public static final HomeScreen instance = new HomeScreen(); private final FLabel lblLogo = add(new FLabel.Builder().icon(FSkinImage.LOGO).iconInBackground().iconScaleFactor(1).build()); - private final ArrayList buttons = new ArrayList(); + private final List buttons = new ArrayList(); private int activeButtonIndex; private FDeckChooser deckManager; diff --git a/forge-gui-mobile/src/forge/screens/match/MatchController.java b/forge-gui-mobile/src/forge/screens/match/MatchController.java index bdfa55ed732..5e7bc2bde52 100644 --- a/forge-gui-mobile/src/forge/screens/match/MatchController.java +++ b/forge-gui-mobile/src/forge/screens/match/MatchController.java @@ -129,7 +129,7 @@ public class MatchController extends AbstractGuiGame { } @Override - public void buildTouchListeners(final float screenX, final float screenY, final ArrayList listeners) { + public void buildTouchListeners(final float screenX, final float screenY, final List listeners) { if (screenY < view.getHeight() - VPrompt.HEIGHT) { hostedMatch.pause(); } diff --git a/forge-gui-mobile/src/forge/screens/match/MatchScreen.java b/forge-gui-mobile/src/forge/screens/match/MatchScreen.java index 8fd08dd5b02..b842e256036 100644 --- a/forge-gui-mobile/src/forge/screens/match/MatchScreen.java +++ b/forge-gui-mobile/src/forge/screens/match/MatchScreen.java @@ -4,6 +4,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.Map.Entry; import org.apache.commons.lang3.tuple.Pair; @@ -313,7 +314,7 @@ public class MatchScreen extends FScreen { if (game == null) { return; } //draw arrows for paired cards - HashSet pairedCards = new HashSet(); + Set pairedCards = new HashSet(); for (VPlayerPanel playerPanel : playerPanels.values()) { for (CardView card : playerPanel.getField().getRow1().getOrderedCards()) { if (pairedCards.contains(card)) { continue; } //prevent arrows going both ways diff --git a/forge-gui-mobile/src/forge/screens/match/views/VZoneDisplay.java b/forge-gui-mobile/src/forge/screens/match/views/VZoneDisplay.java index 2f2548e19f7..ba6ca5f9d8e 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VZoneDisplay.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VZoneDisplay.java @@ -1,6 +1,6 @@ package forge.screens.match.views; -import java.util.ArrayList; +import java.util.List; import forge.game.player.PlayerView; import forge.game.zone.ZoneType; @@ -27,7 +27,7 @@ public class VZoneDisplay extends VCardDisplayArea { } @Override - public void buildTouchListeners(float screenX, float screenY, ArrayList listeners) { + public void buildTouchListeners(float screenX, float screenY, List listeners) { super.buildTouchListeners(screenX, screenY, listeners); if (revealedPanel != null) { diff --git a/forge-gui-mobile/src/forge/toolbox/FContainer.java b/forge-gui-mobile/src/forge/toolbox/FContainer.java index 0e3b78c24cf..5041d61fd85 100644 --- a/forge-gui-mobile/src/forge/toolbox/FContainer.java +++ b/forge-gui-mobile/src/forge/toolbox/FContainer.java @@ -2,6 +2,7 @@ package forge.toolbox; import java.util.ArrayList; import java.util.ConcurrentModificationException; +import java.util.List; import com.badlogic.gdx.math.Vector2; @@ -9,7 +10,7 @@ import forge.Graphics; import forge.error.BugReporter; public abstract class FContainer extends FDisplayObject { - private final ArrayList children = new ArrayList(); + private final List children = new ArrayList(); public T add(T child) { children.add(child); @@ -103,7 +104,7 @@ public abstract class FContainer extends FDisplayObject { protected abstract void doLayout(float width, float height); @Override - public void buildTouchListeners(float screenX, float screenY, ArrayList listeners) { + public void buildTouchListeners(float screenX, float screenY, List listeners) { if (isEnabled() && isVisible() && screenPos.contains(screenX, screenY)) { for (int i = children.size() - 1; i >= 0; i--) { children.get(i).buildTouchListeners(screenX, screenY, listeners); diff --git a/forge-gui-mobile/src/forge/toolbox/FDisplayObject.java b/forge-gui-mobile/src/forge/toolbox/FDisplayObject.java index 8dc9f623f04..c08cee59c37 100644 --- a/forge-gui-mobile/src/forge/toolbox/FDisplayObject.java +++ b/forge-gui-mobile/src/forge/toolbox/FDisplayObject.java @@ -1,8 +1,9 @@ package forge.toolbox; -import java.util.ArrayList; +import java.util.List; import com.badlogic.gdx.math.Rectangle; + import forge.Graphics; public abstract class FDisplayObject { @@ -109,7 +110,7 @@ public abstract class FDisplayObject { } public abstract void draw(Graphics g); - public void buildTouchListeners(float screenX, float screenY, ArrayList listeners) { + public void buildTouchListeners(float screenX, float screenY, List listeners) { if (enabled && visible && screenPos.contains(screenX, screenY)) { listeners.add(this); } diff --git a/forge-gui-mobile/src/forge/toolbox/FOverlay.java b/forge-gui-mobile/src/forge/toolbox/FOverlay.java index 08e2d948715..2315a8bf96a 100644 --- a/forge-gui-mobile/src/forge/toolbox/FOverlay.java +++ b/forge-gui-mobile/src/forge/toolbox/FOverlay.java @@ -1,6 +1,7 @@ package forge.toolbox; import java.util.ArrayList; +import java.util.List; import java.util.Stack; import com.badlogic.gdx.Input.Keys; @@ -47,7 +48,7 @@ public abstract class FOverlay extends FContainer { if (overlays.size() < 2) { return overlays; //don't need to create new list if one or fewer overlay } - ArrayList reversedList = new ArrayList(); + List reversedList = new ArrayList(); for (int i = overlays.size() - 1; i >= 0; i--) { reversedList.add(overlays.get(i)); } @@ -183,7 +184,7 @@ public abstract class FOverlay extends FContainer { } @Override - public void buildTouchListeners(float screenX, float screenY, ArrayList listeners) { + public void buildTouchListeners(float screenX, float screenY, List listeners) { if (tempOverlay == this) { return; } //suppress touch events if waiting to be hidden super.buildTouchListeners(screenX, screenY, listeners); diff --git a/forge-gui-mobile/src/forge/toolbox/FScrollPane.java b/forge-gui-mobile/src/forge/toolbox/FScrollPane.java index da04520a534..ffbcd7dc6f3 100644 --- a/forge-gui-mobile/src/forge/toolbox/FScrollPane.java +++ b/forge-gui-mobile/src/forge/toolbox/FScrollPane.java @@ -1,11 +1,11 @@ package forge.toolbox; -import java.util.ArrayList; +import java.util.List; import com.badlogic.gdx.math.Vector2; -import forge.animation.ForgeAnimation; import forge.Graphics; +import forge.animation.ForgeAnimation; import forge.util.PhysicsObject; import forge.util.Utils; @@ -273,7 +273,7 @@ public abstract class FScrollPane extends FContainer { } @Override - public void buildTouchListeners(float screenX, float screenY, ArrayList listeners) { + public void buildTouchListeners(float screenX, float screenY, List listeners) { //if fling animation active, stop it and prevent child controls handling touch events before next touch down unless already moving really slow if (activeFlingAnimation != null) { boolean suppressEvent = activeFlingAnimation.physicsObj.getVelocity().len() > Utils.AVG_FINGER_HEIGHT; diff --git a/forge-gui/src/main/java/forge/achievement/Domain.java b/forge-gui/src/main/java/forge/achievement/Domain.java index e5c3a6a3930..12261396d77 100644 --- a/forge-gui/src/main/java/forge/achievement/Domain.java +++ b/forge-gui/src/main/java/forge/achievement/Domain.java @@ -1,6 +1,7 @@ package forge.achievement; import java.util.HashSet; +import java.util.Set; import forge.game.Game; import forge.game.card.Card; @@ -15,7 +16,7 @@ public class Domain extends ProgressiveAchievement { @Override protected boolean eval(Player player, Game game) { if (player.getOutcome().hasWon()) { - HashSet basicLands = new HashSet(); + Set basicLands = new HashSet(); for (Card c : player.getCardsIn(ZoneType.Battlefield)) { if (c.isBasicLand()) { basicLands.add(c.getName()); diff --git a/forge-gui/src/main/java/forge/control/FControlGameEventHandler.java b/forge-gui/src/main/java/forge/control/FControlGameEventHandler.java index 0fc89a8bd1f..7ed97b7835e 100644 --- a/forge-gui/src/main/java/forge/control/FControlGameEventHandler.java +++ b/forge-gui/src/main/java/forge/control/FControlGameEventHandler.java @@ -322,7 +322,7 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { @Override public Void visit(final GameEventBlockersDeclared event) { - final HashSet cards = new HashSet(); + final Set cards = new HashSet(); for (final MapOfLists kv : event.blockers.values()) { for (final Collection blockers : kv.values()) { cards.addAll(blockers); diff --git a/forge-gui/src/main/java/forge/deck/ColorDeckGenerator.java b/forge-gui/src/main/java/forge/deck/ColorDeckGenerator.java index cb7600b6a71..61c694083a6 100644 --- a/forge-gui/src/main/java/forge/deck/ColorDeckGenerator.java +++ b/forge-gui/src/main/java/forge/deck/ColorDeckGenerator.java @@ -9,7 +9,7 @@ public class ColorDeckGenerator extends DeckProxy implements Comparable getColorDecks(final IItemManager lstDecks0, final boolean isAi0) { final String[] colors = new String[] { "Random 1", "Random 2", "Random 3", "White", "Blue", "Black", "Red", "Green" }; - final ArrayList decks = new ArrayList(); + final List decks = new ArrayList(); for (int i = 0; i < colors.length; i++) { decks.add(new ColorDeckGenerator(colors[i], i, lstDecks0, isAi0)); } diff --git a/forge-gui/src/main/java/forge/deck/DeckGeneratorTheme.java b/forge-gui/src/main/java/forge/deck/DeckGeneratorTheme.java index 07b3578e724..bc2c03b9f26 100644 --- a/forge-gui/src/main/java/forge/deck/DeckGeneratorTheme.java +++ b/forge-gui/src/main/java/forge/deck/DeckGeneratorTheme.java @@ -59,8 +59,8 @@ public class DeckGeneratorTheme extends DeckGeneratorBase { * * @return a {@link java.util.ArrayList} object. */ - public static final ArrayList getThemeNames() { - final ArrayList ltNames = new ArrayList(); + public static final List getThemeNames() { + final List ltNames = new ArrayList(); final File file = new File(ForgeConstants.THEMES_DIR); @@ -170,7 +170,7 @@ public class DeckGeneratorTheme extends DeckGeneratorBase { private class Grp { /** The Cardnames. */ - private final ArrayList cardnames = new ArrayList(); + private final List cardnames = new ArrayList(); /** The Max cnt. */ private int maxCnt; diff --git a/forge-gui/src/main/java/forge/deck/DeckProxy.java b/forge-gui/src/main/java/forge/deck/DeckProxy.java index c07165338e0..b2c6d6e278f 100644 --- a/forge-gui/src/main/java/forge/deck/DeckProxy.java +++ b/forge-gui/src/main/java/forge/deck/DeckProxy.java @@ -3,6 +3,7 @@ package forge.deck; import java.util.ArrayList; import java.util.HashSet; import java.util.List; +import java.util.Set; import java.util.Map.Entry; import org.apache.commons.lang3.StringUtils; @@ -140,7 +141,7 @@ public class DeckProxy implements InventoryItem { if (color == null && !isGeneratedDeck()) { byte colorProfile = MagicColor.COLORLESS; byte landProfile = MagicColor.COLORLESS; - HashSet nonReqColors = null; + Set nonReqColors = null; for (final Entry deckEntry : getDeck()) { switch (deckEntry.getKey()) { diff --git a/forge-gui/src/main/java/forge/download/GuiDownloadPrices.java b/forge-gui/src/main/java/forge/download/GuiDownloadPrices.java index 0daabdfae0c..eca6cfb2e77 100644 --- a/forge-gui/src/main/java/forge/download/GuiDownloadPrices.java +++ b/forge-gui/src/main/java/forge/download/GuiDownloadPrices.java @@ -6,22 +6,23 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package forge.download; -import forge.properties.ForgeConstants; - -import java.util.HashMap; import java.util.Map; +import com.google.common.collect.ImmutableMap; + +import forge.properties.ForgeConstants; + public class GuiDownloadPrices extends GuiDownloadService { @Override public String getTitle() { @@ -30,8 +31,6 @@ public class GuiDownloadPrices extends GuiDownloadService { @Override protected Map getNeededFiles() { - Map result = new HashMap(); - result.put(ForgeConstants.QUEST_CARD_PRICE_FILE, ForgeConstants.URL_PRICE_DOWNLOAD); - return result; + return ImmutableMap.of(ForgeConstants.QUEST_CARD_PRICE_FILE, ForgeConstants.URL_PRICE_DOWNLOAD); } } diff --git a/forge-gui/src/main/java/forge/itemmanager/SColumnUtil.java b/forge-gui/src/main/java/forge/itemmanager/SColumnUtil.java index dd04059c9ff..2f7e97fd4ba 100644 --- a/forge-gui/src/main/java/forge/itemmanager/SColumnUtil.java +++ b/forge-gui/src/main/java/forge/itemmanager/SColumnUtil.java @@ -17,12 +17,13 @@ */ package forge.itemmanager; -import forge.itemmanager.ItemColumnConfig.SortState; - import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; +import forge.itemmanager.ItemColumnConfig.SortState; + /** * A collection of methods pertaining to columns in card catalog and * current deck tables, for use in the deck editor. @@ -55,7 +56,7 @@ public final class SColumnUtil { } private static Map getCardColumns(ColumnDef quantityColDef, boolean includeFavorite, boolean includeOwned, boolean includePrice, boolean includeNew, boolean includeDecks) { - ArrayList colDefs = new ArrayList(); + List colDefs = new ArrayList(); if (includeFavorite) { colDefs.add(ColumnDef.FAVORITE); } @@ -126,7 +127,7 @@ public final class SColumnUtil { } public static Map getSpecialCardPoolDefaultColumns() { - ArrayList colDefs = new ArrayList(); + List colDefs = new ArrayList(); colDefs.add(ColumnDef.FAVORITE); colDefs.add(ColumnDef.NAME); colDefs.add(ColumnDef.TYPE); @@ -186,7 +187,7 @@ public final class SColumnUtil { } public static Map getDecksDefaultColumns(boolean allowEdit, boolean includeFolder) { - ArrayList colDefs = new ArrayList(); + List colDefs = new ArrayList(); colDefs.add(ColumnDef.DECK_FAVORITE); if (allowEdit) { colDefs.add(ColumnDef.DECK_ACTIONS); diff --git a/forge-gui/src/main/java/forge/limited/BoosterDraft.java b/forge-gui/src/main/java/forge/limited/BoosterDraft.java index 30988f6efd6..ca0d251bed1 100644 --- a/forge-gui/src/main/java/forge/limited/BoosterDraft.java +++ b/forge-gui/src/main/java/forge/limited/BoosterDraft.java @@ -215,7 +215,7 @@ public class BoosterDraft implements IBoosterDraft { /** Looks for draft files, reads them, returns a list. */ private static List loadCustomDrafts() { String[] dList; - final ArrayList customs = new ArrayList(); + final List customs = new ArrayList(); // get list of custom draft files final File dFolder = new File(ForgeConstants.DRAFT_DIR); diff --git a/forge-gui/src/main/java/forge/limited/BoosterDraftAI.java b/forge-gui/src/main/java/forge/limited/BoosterDraftAI.java index 23e1751b3b9..d3309bff9f4 100644 --- a/forge-gui/src/main/java/forge/limited/BoosterDraftAI.java +++ b/forge-gui/src/main/java/forge/limited/BoosterDraftAI.java @@ -50,7 +50,7 @@ public class BoosterDraftAI { // holds all the cards for each of the computer's decks protected final List> deck = new ArrayList>(); - protected final ArrayList playerColors = new ArrayList(); + protected final List playerColors = new ArrayList(); // roughly equivalent to 25 ranks in a core set, or 15 ranks in a small set private static final double TAKE_BEST_THRESHOLD = 0.1; diff --git a/forge-gui/src/main/java/forge/limited/SealedCardPoolGenerator.java b/forge-gui/src/main/java/forge/limited/SealedCardPoolGenerator.java index 33d038ea674..03a141a8a57 100644 --- a/forge-gui/src/main/java/forge/limited/SealedCardPoolGenerator.java +++ b/forge-gui/src/main/java/forge/limited/SealedCardPoolGenerator.java @@ -61,7 +61,7 @@ import java.util.Map.Entry; public class SealedCardPoolGenerator { public static final String FILE_EXT = ".sealed"; - private final ArrayList product = new ArrayList(); + private final List product = new ArrayList(); /** The Land set code. */ private String landSetCode = null; @@ -216,7 +216,7 @@ public class SealedCardPoolGenerator { case Custom: String[] dList; - final ArrayList customs = new ArrayList(); + final List customs = new ArrayList(); // get list of custom draft files final File dFolder = new File(ForgeConstants.SEALED_DIR); @@ -278,9 +278,9 @@ public class SealedCardPoolGenerator { * * @return an ArrayList of the set choices. */ - private static ArrayList getSetCombos(final List setz, final int nPacks) { + private static List getSetCombos(final List setz, final int nPacks) { String[] sets = setz.toArray(ArrayUtils.EMPTY_STRING_ARRAY); - ArrayList setCombos = new ArrayList(); + List setCombos = new ArrayList(); if (nPacks == 3) { if (sets.length >= 2) { diff --git a/forge-gui/src/main/java/forge/limited/WinstonDraftAI.java b/forge-gui/src/main/java/forge/limited/WinstonDraftAI.java index 341e97b1c7c..a6e9612b211 100644 --- a/forge-gui/src/main/java/forge/limited/WinstonDraftAI.java +++ b/forge-gui/src/main/java/forge/limited/WinstonDraftAI.java @@ -1,16 +1,17 @@ package forge.limited; +import java.util.ArrayList; +import java.util.List; + import forge.deck.CardPool; import forge.item.PaperCard; import forge.util.MyRandom; -import java.util.ArrayList; - public class WinstonDraftAI extends BoosterDraftAI{ private WinstonDraft draft = null; private static final int N_DECKS = 1; - private ArrayList colorPreference = new ArrayList<>(); + private List colorPreference = new ArrayList<>(); public WinstonDraft getDraft() { return draft; diff --git a/forge-gui/src/main/java/forge/match/AbstractGuiGame.java b/forge-gui/src/main/java/forge/match/AbstractGuiGame.java index b01a4d4a686..45add1adabc 100644 --- a/forge-gui/src/main/java/forge/match/AbstractGuiGame.java +++ b/forge-gui/src/main/java/forge/match/AbstractGuiGame.java @@ -31,24 +31,33 @@ import forge.util.FCollection; import forge.util.FCollectionView; public abstract class AbstractGuiGame implements IGuiGame, IMayViewCards { - private FCollectionView localPlayers = new FCollection(); + private FCollection localPlayers = new FCollection(); private PlayerView currentPlayer = null; - protected final void setLocalPlayers(final Iterable myPlayers) { + protected final void setLocalPlayers(final Collection myPlayers) { this.localPlayers = myPlayers == null ? new FCollection() : new FCollection(myPlayers); this.currentPlayer = Iterables.getFirst(this.localPlayers, null); + this.autoPassUntilEndOfTurn.retainAll(myPlayers); } + private void addLocalPlayer(final PlayerView player) { + this.localPlayers.add(player); + } + private void removeLocalPlayer(final PlayerView player) { + this.localPlayers.remove(player); + this.autoPassUntilEndOfTurn.remove(player); + } + public final boolean hasLocalPlayers() { - return localPlayers != null && !localPlayers.isEmpty(); + return !localPlayers.isEmpty(); } public final FCollectionView getLocalPlayers() { return localPlayers; } public final int getLocalPlayerCount() { - return localPlayers == null ? 0 : localPlayers.size(); + return localPlayers.size(); } public final boolean isLocalPlayer(final PlayerView player) { - return hasLocalPlayers() && localPlayers.contains(player); + return localPlayers.contains(player); } public final PlayerView getCurrentPlayer() { @@ -83,6 +92,11 @@ public abstract class AbstractGuiGame implements IGuiGame, IMayViewCards { @Override public void setGameController(final PlayerView player, final IGameController gameController) { this.gameControllers.put(player, gameController); + if (gameController == null) { + addLocalPlayer(player); + } else { + removeLocalPlayer(player); + } } @Override diff --git a/forge-gui/src/main/java/forge/match/input/InputPayMana.java b/forge-gui/src/main/java/forge/match/input/InputPayMana.java index 4282f25d4cd..d1ec7eaab60 100644 --- a/forge-gui/src/main/java/forge/match/input/InputPayMana.java +++ b/forge-gui/src/main/java/forge/match/input/InputPayMana.java @@ -247,7 +247,7 @@ public abstract class InputPayMana extends InputSyncronizedBase { colorNeeded = MagicColor.WHITE; } else { - final ArrayList colorMatches = new ArrayList(); + final List colorMatches = new ArrayList(); for (SpellAbility sa : abilities) { if (abilityProducesManaColor(sa, sa.getManaPartRecursive(), colorNeeded)) { colorMatches.add(sa); diff --git a/forge-gui/src/main/java/forge/model/UnOpenedMeta.java b/forge-gui/src/main/java/forge/model/UnOpenedMeta.java index 61a5b2ace0b..dd094f4abd2 100644 --- a/forge-gui/src/main/java/forge/model/UnOpenedMeta.java +++ b/forge-gui/src/main/java/forge/model/UnOpenedMeta.java @@ -41,7 +41,7 @@ public class UnOpenedMeta implements IUnOpenedProduct { SelectAll, } - private final ArrayList metaSets; + private final List metaSets; private final JoinOperation operation; private final Random generator = MyRandom.getRandom(); diff --git a/forge-gui/src/main/java/forge/player/HumanPlay.java b/forge-gui/src/main/java/forge/player/HumanPlay.java index d8385717d4a..102b0784667 100644 --- a/forge-gui/src/main/java/forge/player/HumanPlay.java +++ b/forge-gui/src/main/java/forge/player/HumanPlay.java @@ -270,7 +270,7 @@ public class HumanPlay { } final List parts = cost.getCostParts(); - ArrayList remainingParts = new ArrayList(parts); + final List remainingParts = new ArrayList(parts); CostPart costPart = null; if (!parts.isEmpty()) { costPart = parts.get(0); @@ -470,7 +470,7 @@ public class HumanPlay { } Card selected = inp.getFirstSelected(); final Map tgtCounters = selected.getCounters(); - final ArrayList typeChoices = new ArrayList(); + final List typeChoices = new ArrayList(); for (CounterType key : tgtCounters.keySet()) { if (tgtCounters.get(key) > 0) { typeChoices.add(key); diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index f378eef2801..12213ce6aab 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -13,6 +13,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.Map.Entry; import org.apache.commons.lang3.Range; @@ -23,9 +24,9 @@ import org.apache.commons.lang3.tuple.Pair; import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.base.Predicates; -import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; +import com.google.common.collect.ListMultimap; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; @@ -120,8 +121,8 @@ import forge.util.gui.SOptionPane; * Handles phase skips for now. */ public class PlayerControllerHuman -extends PlayerController -implements IGameController { + extends PlayerController + implements IGameController { /** * Cards this player may look at right now, for example when searching a * library. @@ -176,7 +177,7 @@ implements IGameController { return mayLookAtAllCards; } - private final HashSet tempShownCards = new HashSet(); + private final Set tempShownCards = new HashSet(); public void tempShow(final Iterable objects) { for (final T t : objects) { if (t instanceof Card) { @@ -796,7 +797,7 @@ implements IGameController { } @Override - public Object vote(final SpellAbility sa, final String prompt, final List options, final ArrayListMultimap votes) { + public Object vote(final SpellAbility sa, final String prompt, final List options, final ListMultimap votes) { return getGui().one(prompt, options); } @@ -1120,7 +1121,7 @@ implements IGameController { } @Override - public ReplacementEffect chooseSingleReplacementEffect(final String prompt, final List possibleReplacers, final HashMap runParams) { + public ReplacementEffect chooseSingleReplacementEffect(final String prompt, final List possibleReplacers, final Map runParams) { final ReplacementEffect first = possibleReplacers.get(0); if (possibleReplacers.size() == 1) { return first; diff --git a/forge-gui/src/main/java/forge/quest/BoosterUtils.java b/forge-gui/src/main/java/forge/quest/BoosterUtils.java index 695ea5d50ee..f9f42e7cea9 100644 --- a/forge-gui/src/main/java/forge/quest/BoosterUtils.java +++ b/forge-gui/src/main/java/forge/quest/BoosterUtils.java @@ -276,12 +276,12 @@ public final class BoosterUtils { * If true, multiple copies of the same card will be allowed to be generated. * @return a list of card names */ - private static ArrayList generateCards( + private static List generateCards( final Iterable source, final Predicate filter, final int cntNeeded, final List> allowedColors, final boolean allowDuplicates) { //If color is null, use colorOrder progression to grab cards - final ArrayList result = new ArrayList<>(); + final List result = new ArrayList<>(); final int size = allowedColors == null ? 0 : allowedColors.size(); if (allowedColors != null) { diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestBazaarManager.java b/forge-gui/src/main/java/forge/quest/bazaar/QuestBazaarManager.java index b3c6128e188..a857d5a891f 100644 --- a/forge-gui/src/main/java/forge/quest/bazaar/QuestBazaarManager.java +++ b/forge-gui/src/main/java/forge/quest/bazaar/QuestBazaarManager.java @@ -6,17 +6,39 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package forge.quest.bazaar; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeMap; +import java.util.TreeSet; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + import com.thoughtworks.xstream.XStream; import forge.model.FModel; @@ -25,29 +47,18 @@ import forge.quest.data.QuestAssets; import forge.util.IgnoringXStream; import forge.util.XmlUtil; -import org.w3c.dom.*; -import org.xml.sax.SAXException; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; - -import java.io.File; -import java.io.IOException; -import java.util.*; - /** *

* QuestStallManager class. *

- * + * * @author Forge * @version $Id$ */ public class QuestBazaarManager { private final File xmlFile; - public QuestBazaarManager(File xmlFile0) { + public QuestBazaarManager(final File xmlFile0) { xmlFile = xmlFile0; } @@ -57,42 +68,42 @@ public class QuestBazaarManager { builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); final Document document = builder.parse(xmlFile); - XStream xs = new IgnoringXStream(); + final XStream xs = new IgnoringXStream(); xs.autodetectAnnotations(true); - NodeList xmlStalls = document.getElementsByTagName("stalls").item(0).getChildNodes(); + final NodeList xmlStalls = document.getElementsByTagName("stalls").item(0).getChildNodes(); for (int iN = 0; iN < xmlStalls.getLength(); iN++) { - Node n = xmlStalls.item(iN); + final Node n = xmlStalls.item(iN); if (n.getNodeType() != Node.ELEMENT_NODE) { continue; } - Attr att = document.createAttribute("resolves-to"); + final Attr att = document.createAttribute("resolves-to"); att.setValue(QuestStallDefinition.class.getCanonicalName()); n.getAttributes().setNamedItem(att); - QuestStallDefinition stall = (QuestStallDefinition) xs.fromXML(XmlUtil.nodeToString(n)); + final QuestStallDefinition stall = (QuestStallDefinition) xs.fromXML(XmlUtil.nodeToString(n)); stalls.put(stall.getName(), stall); } - NodeList xmlQuestItems = document.getElementsByTagName("questItems").item(0).getChildNodes(); + final NodeList xmlQuestItems = document.getElementsByTagName("questItems").item(0).getChildNodes(); for (int iN = 0; iN < xmlQuestItems.getLength(); iN++) { - Node n = xmlQuestItems.item(iN); + final Node n = xmlQuestItems.item(iN); if (n.getNodeType() != Node.ELEMENT_NODE) { continue; } - NamedNodeMap attrs = n.getAttributes(); - String sType = attrs.getNamedItem("itemType").getTextContent(); - String name = attrs.getNamedItem("name").getTextContent(); - QuestItemType qType = QuestItemType.smartValueOf(sType); - Attr att = document.createAttribute("resolves-to"); + final NamedNodeMap attrs = n.getAttributes(); + final String sType = attrs.getNamedItem("itemType").getTextContent(); + final String name = attrs.getNamedItem("name").getTextContent(); + final QuestItemType qType = QuestItemType.smartValueOf(sType); + final Attr att = document.createAttribute("resolves-to"); att.setValue(qType.getBazaarControllerClass().getCanonicalName()); attrs.setNamedItem(att); - QuestItemBasic ctrl = (QuestItemBasic) xs.fromXML(XmlUtil.nodeToString(n)); + final QuestItemBasic ctrl = (QuestItemBasic) xs.fromXML(XmlUtil.nodeToString(n)); items.put(name, ctrl); } - } catch (SAXException e) { + } catch (final SAXException e) { e.printStackTrace(); - } catch (IOException e) { + } catch (final IOException e) { e.printStackTrace(); - } catch (ParserConfigurationException e) { + } catch (final ParserConfigurationException e) { e.printStackTrace(); } } @@ -107,7 +118,7 @@ public class QuestBazaarManager { *

* getStall. *

- * + * * @param stallName * a {@link java.lang.String} object. * @return a {@link forge.quest.bazaar.QuestStallDefinition} object. @@ -129,7 +140,7 @@ public class QuestBazaarManager { for (int iSlot = 0; iSlot < QuestController.MAX_PET_SLOTS; iSlot++) { - for (QuestPetController pet : qCtrl.getPetsStorage().getAllPets(iSlot)) { + for (final QuestPetController pet : qCtrl.getPetsStorage().getAllPets(iSlot)) { //System.out.println("Pet: " + pet.getName()); itemSet.put(pet.getName(), pet); } @@ -139,11 +150,11 @@ public class QuestBazaarManager { itemsOnStalls.clear(); - for (QuestStallDefinition thisStall : stalls.values()) { - TreeSet set = new TreeSet(); + for (final QuestStallDefinition thisStall : stalls.values()) { + final SortedSet set = new TreeSet(); - for (String itemName : thisStall.getItems()) { - IQuestBazaarItem item = itemSet.get(itemName); + for (final String itemName : thisStall.getItems()) { + final IQuestBazaarItem item = itemSet.get(itemName); //System.out.println(itemName); set.add(item); } @@ -153,7 +164,7 @@ public class QuestBazaarManager { /** * Returns purchasable items available for a particular stall. - * + * * @param stallName   {@link java.lang.String} * @return {@link java.util.List}. */ @@ -162,7 +173,7 @@ public class QuestBazaarManager { final List ret = new ArrayList(); - QuestAssets qA = FModel.getQuest().getAssets(); + final QuestAssets qA = FModel.getQuest().getAssets(); for (final IQuestBazaarItem purchasable : itemsOnStalls.get(stallName)) { if (purchasable.isAvailableForPurchase(qA, qCtrl)) { ret.add(purchasable); diff --git a/forge-gui/src/main/java/forge/quest/io/QuestDataIO.java b/forge-gui/src/main/java/forge/quest/io/QuestDataIO.java index e965d8c3e92..e59c05ff909 100644 --- a/forge-gui/src/main/java/forge/quest/io/QuestDataIO.java +++ b/forge-gui/src/main/java/forge/quest/io/QuestDataIO.java @@ -238,7 +238,7 @@ public class QuestDataIO { QuestDataIO.setFinalField(QuestAchievements.class, "challengesPlayed", qA, Integer.parseInt(document.getElementsByTagName("challengesPlayed").item(0).getTextContent())); - final ArrayList completedChallenges = new ArrayList<>(); + final List completedChallenges = new ArrayList<>(); QuestDataIO.setFinalField(QuestAchievements.class, "completedChallenges", qA, completedChallenges); if ((nw = document.getElementsByTagName("completedChallenges").item(0)) != null) {