Replacement handlers used hashmap in ctor and method parameters instead of plain map (that is quite sufficient for their needs)

This commit is contained in:
Maxmtg
2013-03-16 11:55:30 +00:00
parent 4efcbc3311
commit b59c47c766
13 changed files with 46 additions and 84 deletions

View File

@@ -8115,7 +8115,7 @@ public class Card extends GameEntity implements Comparable<Card> {
for (final Card ca : Singletons.getModel().getGame().getCardsIn(ZoneType.Battlefield)) {
for (final ReplacementEffect re : ca.getReplacementEffects()) {
HashMap<String, String> params = re.getMapParams();
Map<String, String> params = re.getMapParams();
if (!"DamageDone".equals(params.get("Event")) || !params.containsKey("PreventionEffect")) {
continue;
}
@@ -9173,7 +9173,7 @@ public class Card extends GameEntity implements Comparable<Card> {
*/
public boolean hasETBReplacement() {
for (final ReplacementEffect re : getReplacementEffects()) {
final HashMap<String, String> params = re.getMapParams();
final Map<String, String> params = re.getMapParams();
if (!(re instanceof ReplaceMoved)) {
continue;
}

View File

@@ -17,7 +17,7 @@
*/
package forge.card.replacement;
import java.util.HashMap;
import java.util.Map;
import forge.Card;
import forge.card.cardfactory.CardFactoryUtil;
@@ -36,7 +36,7 @@ public class ReplaceDamage extends ReplacementEffect {
* @param map the map
* @param host the host
*/
public ReplaceDamage(HashMap<String, String> map, Card host) {
public ReplaceDamage(Map<String, String> map, Card host) {
super(map, host);
}
@@ -44,7 +44,7 @@ public class ReplaceDamage extends ReplacementEffect {
* @see forge.card.replacement.ReplacementEffect#canReplace(java.util.HashMap)
*/
@Override
public boolean canReplace(HashMap<String, Object> runParams) {
public boolean canReplace(Map<String, Object> runParams) {
if (!runParams.get("Event").equals("DamageDone")) {
return false;
}
@@ -110,7 +110,7 @@ public class ReplaceDamage extends ReplacementEffect {
* @see forge.card.replacement.ReplacementEffect#setReplacingObjects(java.util.HashMap, forge.card.spellability.SpellAbility)
*/
@Override
public void setReplacingObjects(HashMap<String, Object> runParams, SpellAbility sa) {
public void setReplacingObjects(Map<String, Object> runParams, SpellAbility sa) {
sa.setReplacingObject("DamageAmount", runParams.get("DamageAmount"));
sa.setReplacingObject("Target", runParams.get("Affected"));
sa.setReplacingObject("Source", runParams.get("DamageSource"));

View File

@@ -17,7 +17,7 @@
*/
package forge.card.replacement;
import java.util.HashMap;
import java.util.Map;
import forge.Card;
import forge.card.spellability.SpellAbility;
@@ -34,7 +34,7 @@ public class ReplaceDiscard extends ReplacementEffect {
* @param params the params
* @param host the host
*/
public ReplaceDiscard(final HashMap<String, String> params, final Card host) {
public ReplaceDiscard(final Map<String, String> params, final Card host) {
super(params, host);
}
@@ -42,7 +42,7 @@ public class ReplaceDiscard extends ReplacementEffect {
* @see forge.card.replacement.ReplacementEffect#canReplace(java.util.HashMap)
*/
@Override
public boolean canReplace(HashMap<String, Object> runParams) {
public boolean canReplace(Map<String, Object> runParams) {
if (!runParams.get("Event").equals("Discard")) {
return false;
}
@@ -86,7 +86,7 @@ public class ReplaceDiscard extends ReplacementEffect {
* @see forge.card.replacement.ReplacementEffect#setReplacingObjects(java.util.HashMap, forge.card.spellability.SpellAbility)
*/
@Override
public void setReplacingObjects(HashMap<String, Object> runParams, SpellAbility sa) {
public void setReplacingObjects(Map<String, Object> runParams, SpellAbility sa) {
sa.setReplacingObject("Card", runParams.get("Card"));
sa.setReplacingObject("Player", runParams.get("Affected"));
}

View File

@@ -17,7 +17,7 @@
*/
package forge.card.replacement;
import java.util.HashMap;
import java.util.Map;
import forge.Card;
@@ -33,7 +33,7 @@ public class ReplaceDraw extends ReplacementEffect {
* @param params the params
* @param host the host
*/
public ReplaceDraw(final HashMap<String, String> params, final Card host) {
public ReplaceDraw(final Map<String, String> params, final Card host) {
super(params, host);
}
@@ -41,7 +41,7 @@ public class ReplaceDraw extends ReplacementEffect {
* @see forge.card.replacement.ReplacementEffect#canReplace(java.util.HashMap)
*/
@Override
public boolean canReplace(HashMap<String, Object> runParams) {
public boolean canReplace(Map<String, Object> runParams) {
if (!runParams.get("Event").equals("Draw")) {
return false;
}

View File

@@ -17,7 +17,7 @@
*/
package forge.card.replacement;
import java.util.HashMap;
import java.util.Map;
import forge.Card;
import forge.card.spellability.SpellAbility;
@@ -34,7 +34,7 @@ public class ReplaceGainLife extends ReplacementEffect {
* @param map the map
* @param host the host
*/
public ReplaceGainLife(HashMap<String, String> map, Card host) {
public ReplaceGainLife(Map<String, String> map, Card host) {
super(map, host);
}
@@ -42,7 +42,7 @@ public class ReplaceGainLife extends ReplacementEffect {
* @see forge.card.replacement.ReplacementEffect#canReplace(java.util.HashMap)
*/
@Override
public boolean canReplace(HashMap<String, Object> runParams) {
public boolean canReplace(Map<String, Object> runParams) {
if (!runParams.get("Event").equals("GainLife")) {
return false;
}
@@ -71,7 +71,7 @@ public class ReplaceGainLife extends ReplacementEffect {
* @see forge.card.replacement.ReplacementEffect#setReplacingObjects(java.util.HashMap, forge.card.spellability.SpellAbility)
*/
@Override
public void setReplacingObjects(HashMap<String, Object> runParams, SpellAbility sa) {
public void setReplacingObjects(Map<String, Object> runParams, SpellAbility sa) {
sa.setReplacingObject("LifeGained", runParams.get("LifeGained"));
}

View File

@@ -1,6 +1,6 @@
package forge.card.replacement;
import java.util.HashMap;
import java.util.Map;
import forge.Card;
@@ -16,7 +16,7 @@ public class ReplaceGameLoss extends ReplacementEffect {
* @param map the map
* @param host the host
*/
public ReplaceGameLoss(HashMap<String, String> map, Card host) {
public ReplaceGameLoss(Map<String, String> map, Card host) {
super(map, host);
}
@@ -24,7 +24,7 @@ public class ReplaceGameLoss extends ReplacementEffect {
* @see forge.card.replacement.ReplacementEffect#canReplace(java.util.HashMap)
*/
@Override
public boolean canReplace(HashMap<String, Object> runParams) {
public boolean canReplace(Map<String, Object> runParams) {
if (!runParams.get("Event").equals("GameLoss")) {
return false;
}

View File

@@ -1,6 +1,6 @@
package forge.card.replacement;
import java.util.HashMap;
import java.util.Map;
import forge.Card;
import forge.card.spellability.SpellAbility;
@@ -18,7 +18,7 @@ public class ReplaceMoved extends ReplacementEffect {
* @param mapParams &emsp; HashMap<String, String>
* @param host &emsp; Card
*/
public ReplaceMoved(final HashMap<String, String> mapParams, final Card host) {
public ReplaceMoved(final Map<String, String> mapParams, final Card host) {
super(mapParams, host);
}
@@ -26,7 +26,7 @@ public class ReplaceMoved extends ReplacementEffect {
* @see forge.card.replacement.ReplacementEffect#canReplace(java.util.HashMap)
*/
@Override
public boolean canReplace(HashMap<String, Object> runParams) {
public boolean canReplace(Map<String, Object> runParams) {
if (!runParams.get("Event").equals("Moved")) {
return false;
}
@@ -66,7 +66,7 @@ public class ReplaceMoved extends ReplacementEffect {
* @see forge.card.replacement.ReplacementEffect#setReplacingObjects(java.util.HashMap, forge.card.spellability.SpellAbility)
*/
@Override
public void setReplacingObjects(HashMap<String, Object> runParams, SpellAbility sa) {
public void setReplacingObjects(Map<String, Object> runParams, SpellAbility sa) {
sa.setReplacingObject("Card", runParams.get("Affected"));
}

View File

@@ -17,7 +17,7 @@
*/
package forge.card.replacement;
import java.util.HashMap;
import java.util.Map;
import forge.Card;
@@ -33,7 +33,7 @@ public class ReplaceSetInMotion extends ReplacementEffect {
* @param params the params
* @param host the host
*/
public ReplaceSetInMotion(final HashMap<String, String> params, final Card host) {
public ReplaceSetInMotion(final Map<String, String> params, final Card host) {
super(params, host);
}
@@ -41,7 +41,7 @@ public class ReplaceSetInMotion extends ReplacementEffect {
* @see forge.card.replacement.ReplacementEffect#canReplace(java.util.HashMap)
*/
@Override
public boolean canReplace(HashMap<String, Object> runParams) {
public boolean canReplace(Map<String, Object> runParams) {
if (!runParams.get("Event").equals("SetInMotion")) {
return false;
}

View File

@@ -1,6 +1,6 @@
package forge.card.replacement;
import java.util.HashMap;
import java.util.Map;
import forge.Card;
import forge.card.spellability.SpellAbility;
@@ -17,7 +17,7 @@ public class ReplaceTurnFaceUp extends ReplacementEffect {
* @param mapParams &emsp; HashMap<String, String>
* @param host &emsp; Card
*/
public ReplaceTurnFaceUp(final HashMap<String, String> mapParams, final Card host) {
public ReplaceTurnFaceUp(final Map<String, String> mapParams, final Card host) {
super(mapParams, host);
}
@@ -25,7 +25,7 @@ public class ReplaceTurnFaceUp extends ReplacementEffect {
* @see forge.card.replacement.ReplacementEffect#canReplace(java.util.HashMap)
*/
@Override
public boolean canReplace(HashMap<String, Object> runParams) {
public boolean canReplace(Map<String, Object> runParams) {
if (!runParams.get("Event").equals("TurnFaceUp")) {
return false;
}
@@ -53,7 +53,7 @@ public class ReplaceTurnFaceUp extends ReplacementEffect {
* @see forge.card.replacement.ReplacementEffect#setReplacingObjects(java.util.HashMap, forge.card.spellability.SpellAbility)
*/
@Override
public void setReplacingObjects(HashMap<String, Object> runParams, SpellAbility sa) {
public void setReplacingObjects(Map<String, Object> runParams, SpellAbility sa) {
sa.setReplacingObject("Card", runParams.get("Affected"));
}

View File

@@ -118,7 +118,7 @@ public abstract class ReplacementEffect extends TriggerReplacementBase {
}
/** The map params, denoting what to replace. */
private HashMap<String, String> mapParams = new HashMap<String, String>();
private Map<String, String> mapParams = new HashMap<String, String>();
/**
* <p>
@@ -127,7 +127,7 @@ public abstract class ReplacementEffect extends TriggerReplacementBase {
*
* @return a {@link java.util.HashMap} object.
*/
public final HashMap<String, String> getMapParams() {
public final Map<String, String> getMapParams() {
return this.mapParams;
}
@@ -137,7 +137,7 @@ public abstract class ReplacementEffect extends TriggerReplacementBase {
* @param mapParams
* the mapParams to set
*/
public final void setMapParams(final HashMap<String, String> mapParams) {
public final void setMapParams(final Map<String, String> mapParams) {
this.mapParams = mapParams;
}
@@ -148,7 +148,7 @@ public abstract class ReplacementEffect extends TriggerReplacementBase {
* the run params
* @return true, if successful
*/
public abstract boolean canReplace(final HashMap<String, Object> runParams);
public abstract boolean canReplace(final Map<String, Object> runParams);
/**
* To string.
@@ -219,7 +219,7 @@ public abstract class ReplacementEffect extends TriggerReplacementBase {
* @param spellAbility
* the SpellAbility
*/
public void setReplacingObjects(final HashMap<String, Object> runParams, final SpellAbility spellAbility) {
public void setReplacingObjects(final Map<String, Object> runParams, final SpellAbility spellAbility) {
// Should be overridden by replacers that need it.
}
@@ -231,7 +231,7 @@ public abstract class ReplacementEffect extends TriggerReplacementBase {
* @param host
* the host
*/
public ReplacementEffect(final HashMap<String, String> map, final Card host) {
public ReplacementEffect(final Map<String, String> map, final Card host) {
this.setMapParams(map);
this.setHostCard(host);
}

View File

@@ -21,6 +21,7 @@ import java.util.ArrayList;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import forge.Card;
import forge.Singletons;
@@ -34,6 +35,7 @@ import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.gui.GuiChoose;
import forge.gui.GuiDialog;
import forge.util.FileSection;
/**
* TODO: Write javadoc for this type.
@@ -174,9 +176,9 @@ public class ReplacementHandler {
* @param replacementEffect
* the replacement effect to run
*/
private ReplacementResult executeReplacement(final HashMap<String, Object> runParams,
private ReplacementResult executeReplacement(final Map<String, Object> runParams,
final ReplacementEffect replacementEffect, final Player decider, final GameState game) {
final HashMap<String, String> mapParams = replacementEffect.getMapParams();
final Map<String, String> mapParams = replacementEffect.getMapParams();
SpellAbility effectSA = null;
@@ -257,7 +259,7 @@ public class ReplacementHandler {
* @return A finished instance
*/
public static ReplacementEffect parseReplacement(final String repParse, final Card host) {
final HashMap<String, String> mapParams = ReplacementHandler.parseParams(repParse);
final Map<String, String> mapParams = FileSection.parseToMap(repParse, "$", "|");
return ReplacementHandler.parseReplacement(mapParams, host);
}
@@ -272,7 +274,7 @@ public class ReplacementHandler {
* The card that hosts the replacement effect
* @return The finished instance
*/
public static ReplacementEffect parseReplacement(final HashMap<String, String> mapParams, final Card host) {
public static ReplacementEffect parseReplacement(final Map<String, String> mapParams, final Card host) {
ReplacementEffect ret = null;
final String eventToReplace = mapParams.get("Event");
@@ -301,45 +303,4 @@ public class ReplacementHandler {
return ret;
}
/**
* <p>
* parseParams.
* </p>
*
* @param repParse
* a {@link java.lang.String} object.
* @return a {@link java.util.HashMap} object.
*/
private static HashMap<String, String> parseParams(final String repParse) {
final HashMap<String, String> mapParams = new HashMap<String, String>();
if (repParse.length() == 0) {
throw new RuntimeException("ReplacementFactory : registerTrigger -- trigParse too short");
}
final String[] params = repParse.split("\\|");
for (int i = 0; i < params.length; i++) {
params[i] = params[i].trim();
}
for (final String param : params) {
final String[] splitParam = param.split("\\$");
for (int i = 0; i < splitParam.length; i++) {
splitParam[i] = splitParam[i].trim();
}
if (splitParam.length != 2) {
final StringBuilder sb = new StringBuilder();
sb.append("ReplacementFactory Parsing Error in registerTrigger() : Split length of ");
sb.append(param).append(" is not 2.");
throw new RuntimeException(sb.toString());
}
mapParams.put(splitParam[0], splitParam[1]);
}
return mapParams;
}
}

View File

@@ -20,6 +20,7 @@ package forge.card.spellability;
import java.security.InvalidParameterException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.common.base.Supplier;
import com.google.common.collect.Iterables;
@@ -499,7 +500,7 @@ public class SpellPermanent extends Spell {
for (final ReplacementEffect re : card.getReplacementEffects()) {
// These Replacements all care for ETB effects
final HashMap<String, String> params = re.getMapParams();
final Map<String, String> params = re.getMapParams();
if (!(re instanceof ReplaceMoved)) {
continue;
}

View File

@@ -1829,7 +1829,7 @@ public class ComputerUtilCombat {
// Predict replacement effects
for (final Card ca : game.getCardsIn(ZoneType.Battlefield)) {
for (final ReplacementEffect re : ca.getReplacementEffects()) {
HashMap<String, String> params = re.getMapParams();
Map<String, String> params = re.getMapParams();
if (!"DamageDone".equals(params.get("Event")) || !params.containsKey("PreventionEffect")) {
continue;
}