diff --git a/.gitattributes b/.gitattributes index 5bdd1d36853..62d2f4ed4ff 100644 --- a/.gitattributes +++ b/.gitattributes @@ -606,6 +606,7 @@ forge-game/src/main/java/forge/game/event/package-info.java -text forge-game/src/main/java/forge/game/keyword/Keyword.java -text forge-game/src/main/java/forge/game/keyword/KeywordCollection.java -text forge-game/src/main/java/forge/game/keyword/KeywordInstance.java -text +forge-game/src/main/java/forge/game/keyword/KeywordInterface.java -text svneol=unset#text/plain forge-game/src/main/java/forge/game/keyword/KeywordWithAmount.java -text forge-game/src/main/java/forge/game/keyword/KeywordWithAmountAndType.java -text svneol=unset#text/plain forge-game/src/main/java/forge/game/keyword/KeywordWithCost.java -text diff --git a/forge-game/src/main/java/forge/game/keyword/Keyword.java b/forge-game/src/main/java/forge/game/keyword/Keyword.java index 4917739f49d..6c3b91e538f 100644 --- a/forge-game/src/main/java/forge/game/keyword/Keyword.java +++ b/forge-game/src/main/java/forge/game/keyword/Keyword.java @@ -154,7 +154,7 @@ public enum Keyword { displayName = EnumUtil.getEnumDisplayName(this); } - public static KeywordInstance getInstance(String k) { + public static KeywordInterface getInstance(String k) { Keyword keyword = Keyword.UNDEFINED; String details = k; String enumName = k.replace(' ', '_').toUpperCase(); diff --git a/forge-game/src/main/java/forge/game/keyword/KeywordCollection.java b/forge-game/src/main/java/forge/game/keyword/KeywordCollection.java index c9574d82930..d3a90b267f7 100644 --- a/forge-game/src/main/java/forge/game/keyword/KeywordCollection.java +++ b/forge-game/src/main/java/forge/game/keyword/KeywordCollection.java @@ -12,7 +12,7 @@ public class KeywordCollection implements Iterable, Serializable { private static final long serialVersionUID = -2882986558147844702L; private transient KeywordCollectionView view; - private final Multimap> map = MultimapBuilder.enumKeys(Keyword.class) + private final Multimap map = MultimapBuilder.enumKeys(Keyword.class) .arrayListValues().build(); public boolean contains(Keyword keyword) { @@ -29,16 +29,16 @@ public class KeywordCollection implements Iterable, Serializable { public int getAmount(Keyword keyword) { int amount = 0; - for (KeywordInstance inst : map.get(keyword)) { + for (KeywordInterface inst : map.get(keyword)) { amount += inst.getAmount(); } return amount; } public boolean add(String k) { - KeywordInstance inst = Keyword.getInstance(k); + KeywordInterface inst = Keyword.getInstance(k); Keyword keyword = inst.getKeyword(); - Collection> list = map.get(keyword); + Collection list = map.get(keyword); if (list.isEmpty() || !keyword.isMultipleRedundant) { list.add(inst); return true; @@ -53,11 +53,11 @@ public class KeywordCollection implements Iterable, Serializable { } public boolean remove(String keyword) { - Iterator> it = map.values().iterator(); + Iterator it = map.values().iterator(); boolean result = false; while (it.hasNext()) { - KeywordInstance k = it.next(); + KeywordInterface k = it.next(); if (keyword.equals(k.getOriginal())) { it.remove(); result = true; @@ -78,7 +78,7 @@ public class KeywordCollection implements Iterable, Serializable { } public boolean contains(String keyword) { - for (KeywordInstance inst : map.values()) { + for (KeywordInterface inst : map.values()) { if (keyword.equals(inst.getOriginal())) { return true; } @@ -88,7 +88,7 @@ public class KeywordCollection implements Iterable, Serializable { public int getAmount(String k) { int amount = 0; - for (KeywordInstance inst : map.values()) { + for (KeywordInterface inst : map.values()) { if (k.equals(inst.getOriginal())) { amount++; } @@ -99,7 +99,7 @@ public class KeywordCollection implements Iterable, Serializable { @Override public Iterator iterator() { return new Iterator() { - private final Iterator> iterator = map.values().iterator(); + private final Iterator iterator = map.values().iterator(); @Override @@ -109,7 +109,7 @@ public class KeywordCollection implements Iterable, Serializable { @Override public String next() { - KeywordInstance entry = iterator.next(); + KeywordInterface entry = iterator.next(); return entry.getOriginal(); } 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 e2a071c4de6..35bc2754974 100644 --- a/forge-game/src/main/java/forge/game/keyword/KeywordInstance.java +++ b/forge-game/src/main/java/forge/game/keyword/KeywordInstance.java @@ -5,16 +5,28 @@ import java.util.regex.Matcher; import forge.util.Lang; -public abstract class KeywordInstance> { +public abstract class KeywordInstance> implements KeywordInterface { private Keyword keyword; private String original; + /* (non-Javadoc) + * @see forge.game.keyword.KeywordInterface#getOriginal() + */ + @Override public String getOriginal() { return original; } + /* (non-Javadoc) + * @see forge.game.keyword.KeywordInterface#getKeyword() + */ + @Override public Keyword getKeyword() { return keyword; } + /* (non-Javadoc) + * @see forge.game.keyword.KeywordInterface#getReminderText() + */ + @Override public String getReminderText() { String result = formatReminderText(keyword.reminderText); Matcher m = Pattern.compile("\\{(\\w):(.+?)\\}").matcher(result); @@ -26,6 +38,10 @@ public abstract class KeywordInstance> { m.appendTail(sb); return sb.toString(); } + /* (non-Javadoc) + * @see forge.game.keyword.KeywordInterface#getAmount() + */ + @Override public int getAmount() { return 1; } diff --git a/forge-game/src/main/java/forge/game/keyword/KeywordInterface.java b/forge-game/src/main/java/forge/game/keyword/KeywordInterface.java new file mode 100644 index 00000000000..a9f43f9d080 --- /dev/null +++ b/forge-game/src/main/java/forge/game/keyword/KeywordInterface.java @@ -0,0 +1,13 @@ +package forge.game.keyword; + +public interface KeywordInterface { + + String getOriginal(); + + Keyword getKeyword(); + + String getReminderText(); + + int getAmount(); + +} \ No newline at end of file