From 7dde5455e3efb950fbd96a7cdf3d96b4fa24f29c Mon Sep 17 00:00:00 2001 From: elcnesh Date: Fri, 24 Apr 2015 22:23:17 +0000 Subject: [PATCH] - Revert serializability of Keywords as this would require serializability of Card - Until this is fixed in some way, use a Multiset of Strings for the collection of keywords in PlayerView --- .../src/main/java/forge/game/cost/Cost.java | 15 ++++++--------- .../src/main/java/forge/game/keyword/Cycling.java | 2 -- .../java/forge/game/keyword/KeywordInstance.java | 6 +----- .../forge/game/keyword/KeywordWithAmount.java | 2 -- .../java/forge/game/keyword/KeywordWithCost.java | 2 -- .../game/keyword/KeywordWithCostAndAmount.java | 2 -- .../game/keyword/KeywordWithCostAndType.java | 2 -- .../java/forge/game/keyword/KeywordWithType.java | 2 -- .../main/java/forge/game/keyword/Protection.java | 2 -- .../java/forge/game/keyword/SimpleKeyword.java | 2 -- .../java/forge/game/keyword/UndefinedKeyword.java | 2 -- .../main/java/forge/game/player/PlayerView.java | 13 ++++++------- 12 files changed, 13 insertions(+), 39 deletions(-) diff --git a/forge-game/src/main/java/forge/game/cost/Cost.java b/forge-game/src/main/java/forge/game/cost/Cost.java index 07d29e25e48..69c17c81234 100644 --- a/forge-game/src/main/java/forge/game/cost/Cost.java +++ b/forge-game/src/main/java/forge/game/cost/Cost.java @@ -17,6 +17,11 @@ */ package forge.game.cost; +import java.util.ArrayList; +import java.util.List; + +import com.google.common.collect.Lists; + import forge.card.mana.ManaCost; import forge.card.mana.ManaCostParser; import forge.game.CardTraitBase; @@ -27,12 +32,6 @@ import forge.game.zone.ZoneType; import forge.util.Lang; import forge.util.TextUtil; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import com.google.common.collect.Lists; - /** *

* Cost class. @@ -41,9 +40,7 @@ import com.google.common.collect.Lists; * @author Forge * @version $Id$ */ -public class Cost implements Serializable { - private static final long serialVersionUID = -8483455045558996502L; - +public class Cost { private boolean isAbility = true; private final List costParts = new ArrayList(); diff --git a/forge-game/src/main/java/forge/game/keyword/Cycling.java b/forge-game/src/main/java/forge/game/keyword/Cycling.java index dd5bb432836..8f757aaa780 100644 --- a/forge-game/src/main/java/forge/game/keyword/Cycling.java +++ b/forge-game/src/main/java/forge/game/keyword/Cycling.java @@ -1,8 +1,6 @@ package forge.game.keyword; public class Cycling extends KeywordWithCost { - private static final long serialVersionUID = 8536162621947386491L; - private String type; public Cycling() { diff --git a/forge-game/src/main/java/forge/game/keyword/KeywordInstance.java b/forge-game/src/main/java/forge/game/keyword/KeywordInstance.java index 82c9fede02b..5e91c1e0cba 100644 --- a/forge-game/src/main/java/forge/game/keyword/KeywordInstance.java +++ b/forge-game/src/main/java/forge/game/keyword/KeywordInstance.java @@ -1,10 +1,6 @@ package forge.game.keyword; -import java.io.Serializable; - -public abstract class KeywordInstance> implements Serializable { - private static final long serialVersionUID = -8515507185693606389L; - +public abstract class KeywordInstance> { private Keyword keyword; public Keyword getKeyword() { diff --git a/forge-game/src/main/java/forge/game/keyword/KeywordWithAmount.java b/forge-game/src/main/java/forge/game/keyword/KeywordWithAmount.java index 28d20159998..2921b5b6e44 100644 --- a/forge-game/src/main/java/forge/game/keyword/KeywordWithAmount.java +++ b/forge-game/src/main/java/forge/game/keyword/KeywordWithAmount.java @@ -1,8 +1,6 @@ package forge.game.keyword; public class KeywordWithAmount extends KeywordInstance { - private static final long serialVersionUID = -6408982505204494940L; - private int amount; @Override diff --git a/forge-game/src/main/java/forge/game/keyword/KeywordWithCost.java b/forge-game/src/main/java/forge/game/keyword/KeywordWithCost.java index 2731ce08906..6f6d0b46878 100644 --- a/forge-game/src/main/java/forge/game/keyword/KeywordWithCost.java +++ b/forge-game/src/main/java/forge/game/keyword/KeywordWithCost.java @@ -3,8 +3,6 @@ package forge.game.keyword; import forge.game.cost.Cost; public class KeywordWithCost extends KeywordInstance { - private static final long serialVersionUID = -7098601166417743182L; - private Cost cost; @Override diff --git a/forge-game/src/main/java/forge/game/keyword/KeywordWithCostAndAmount.java b/forge-game/src/main/java/forge/game/keyword/KeywordWithCostAndAmount.java index 66bb7d2e1d1..de20c8797f2 100644 --- a/forge-game/src/main/java/forge/game/keyword/KeywordWithCostAndAmount.java +++ b/forge-game/src/main/java/forge/game/keyword/KeywordWithCostAndAmount.java @@ -3,8 +3,6 @@ package forge.game.keyword; import forge.game.cost.Cost; public class KeywordWithCostAndAmount extends KeywordInstance { - private static final long serialVersionUID = 1905194735777019844L; - private Cost cost; private int amount; diff --git a/forge-game/src/main/java/forge/game/keyword/KeywordWithCostAndType.java b/forge-game/src/main/java/forge/game/keyword/KeywordWithCostAndType.java index b800fc5f68c..46150e83626 100644 --- a/forge-game/src/main/java/forge/game/keyword/KeywordWithCostAndType.java +++ b/forge-game/src/main/java/forge/game/keyword/KeywordWithCostAndType.java @@ -3,8 +3,6 @@ package forge.game.keyword; import forge.game.cost.Cost; public class KeywordWithCostAndType extends KeywordInstance { - private static final long serialVersionUID = -5457093564089570731L; - private Cost cost; private String type; diff --git a/forge-game/src/main/java/forge/game/keyword/KeywordWithType.java b/forge-game/src/main/java/forge/game/keyword/KeywordWithType.java index 6e73072d83f..06284cf2dcc 100644 --- a/forge-game/src/main/java/forge/game/keyword/KeywordWithType.java +++ b/forge-game/src/main/java/forge/game/keyword/KeywordWithType.java @@ -1,8 +1,6 @@ package forge.game.keyword; public class KeywordWithType extends KeywordInstance { - private static final long serialVersionUID = 4959671775512932812L; - private String type; @Override diff --git a/forge-game/src/main/java/forge/game/keyword/Protection.java b/forge-game/src/main/java/forge/game/keyword/Protection.java index 161b98f87dd..5a6451b8a51 100644 --- a/forge-game/src/main/java/forge/game/keyword/Protection.java +++ b/forge-game/src/main/java/forge/game/keyword/Protection.java @@ -1,8 +1,6 @@ package forge.game.keyword; public class Protection extends KeywordInstance { - private static final long serialVersionUID = 1369152260269203025L; - private String fromWhat; @Override diff --git a/forge-game/src/main/java/forge/game/keyword/SimpleKeyword.java b/forge-game/src/main/java/forge/game/keyword/SimpleKeyword.java index 539072fd8c8..15a3cc3c71b 100644 --- a/forge-game/src/main/java/forge/game/keyword/SimpleKeyword.java +++ b/forge-game/src/main/java/forge/game/keyword/SimpleKeyword.java @@ -1,8 +1,6 @@ package forge.game.keyword; public class SimpleKeyword extends KeywordInstance { - private static final long serialVersionUID = -4662161707875676173L; - @Override protected void parse(String details) { //don't need to merge details for simple keywords diff --git a/forge-game/src/main/java/forge/game/keyword/UndefinedKeyword.java b/forge-game/src/main/java/forge/game/keyword/UndefinedKeyword.java index 3b6ca5bc4c2..0949563592b 100644 --- a/forge-game/src/main/java/forge/game/keyword/UndefinedKeyword.java +++ b/forge-game/src/main/java/forge/game/keyword/UndefinedKeyword.java @@ -1,8 +1,6 @@ package forge.game.keyword; public class UndefinedKeyword extends KeywordInstance { - private static final long serialVersionUID = 1016294080901302718L; - private String keyword; @Override diff --git a/forge-game/src/main/java/forge/game/player/PlayerView.java b/forge-game/src/main/java/forge/game/player/PlayerView.java index 0cd7cb0bce1..cfb35b1c72a 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerView.java +++ b/forge-game/src/main/java/forge/game/player/PlayerView.java @@ -9,6 +9,7 @@ import java.util.Map.Entry; import org.apache.commons.lang3.StringUtils; import com.google.common.base.Objects; +import com.google.common.collect.ImmutableMultiset; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -18,7 +19,6 @@ import forge.card.MagicColor; import forge.game.GameEntityView; import forge.game.card.Card; import forge.game.card.CardView; -import forge.game.keyword.KeywordCollection.KeywordCollectionView; import forge.game.zone.PlayerZone; import forge.game.zone.ZoneType; import forge.trackable.TrackableCollection; @@ -184,24 +184,23 @@ public class PlayerView extends GameEntityView { set(TrackableProperty.NumDrawnThisTurn, p.getNumDrawnThisTurn()); } - public KeywordCollectionView getKeywords() { + public ImmutableMultiset getKeywords() { return get(TrackableProperty.Keywords); } public List getDisplayableKeywords() { final List allKws; - final KeywordCollectionView kws = getKeywords(); + final ImmutableMultiset kws = getKeywords(); synchronized (kws) { - allKws = Lists.newArrayList(kws); - } - while (allKws.remove("CanSeeOpponentsFaceDownCards")) { + allKws = Lists.newArrayList(kws.elementSet()); } + allKws.remove("CanSeeOpponentsFaceDownCards"); return allKws; } public boolean hasKeyword(String keyword) { return getKeywords().contains(keyword); } void updateKeywords(Player p) { - set(TrackableProperty.Keywords, p.getKeywords()); + set(TrackableProperty.Keywords, ImmutableMultiset.copyOf(p.getKeywords())); } public CardView getCommander() {