From 4c8a94b18aa103668d5b806394b4a80c746955f2 Mon Sep 17 00:00:00 2001 From: Jetz Date: Fri, 6 Sep 2024 19:48:19 -0400 Subject: [PATCH] Guava migration - Inline `Predicates.compose` --- forge-ai/src/main/java/forge/ai/AiController.java | 3 ++- forge-core/src/main/java/forge/card/DeckHints.java | 4 ++-- forge-core/src/main/java/forge/util/Predicates.java | 6 ------ .../java/forge/game/ability/effects/ChangeZoneEffect.java | 4 +++- .../forge/game/ability/effects/PlayLandVariantEffect.java | 4 ++-- .../src/main/java/forge/itemmanager/ItemManager.java | 5 +++-- forge-gui-mobile/src/forge/itemmanager/ItemManager.java | 2 +- 7 files changed, 13 insertions(+), 15 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/AiController.java b/forge-ai/src/main/java/forge/ai/AiController.java index 4d49aa2520f..4c2bf457523 100644 --- a/forge-ai/src/main/java/forge/ai/AiController.java +++ b/forge-ai/src/main/java/forge/ai/AiController.java @@ -61,6 +61,7 @@ import io.sentry.Breadcrumb; import io.sentry.Sentry; import java.util.*; +import java.util.function.Function; import java.util.function.Predicate; /** @@ -2284,7 +2285,7 @@ public class AiController { List shield = filterList(list, CardTraitPredicates.hasParam("ShieldCounter")); List regeneration = filterList(list, CardTraitPredicates.hasParam("Regeneration")); List umbraArmor = filterList(list, CardTraitPredicates.isKeyword(Keyword.UMBRA_ARMOR)); - List umbraArmorIndestructible = filterList(umbraArmor, Predicates.compose(CardPredicates.hasKeyword(Keyword.INDESTRUCTIBLE), CardTraitBase::getHostCard)); + List umbraArmorIndestructible = filterList(umbraArmor, x -> x.getHostCard().hasKeyword(Keyword.INDESTRUCTIBLE)); // Indestructible umbra armor is the best if (!umbraArmorIndestructible.isEmpty()) { diff --git a/forge-core/src/main/java/forge/card/DeckHints.java b/forge-core/src/main/java/forge/card/DeckHints.java index cf3c3fb3968..1e6aa3bcbed 100644 --- a/forge-core/src/main/java/forge/card/DeckHints.java +++ b/forge-core/src/main/java/forge/card/DeckHints.java @@ -8,7 +8,6 @@ import java.util.function.Function; import java.util.function.Predicate; import forge.util.Iterables; -import forge.util.Predicates; import org.apache.commons.lang3.tuple.Pair; import forge.StaticData; @@ -206,7 +205,8 @@ public class DeckHints { private Iterable getMatchingItems(Iterable source, Predicate predicate, Function fn) { // TODO should token generators be counted differently for their potential? // And would there ever be a circumstance where `fn` should be anything but PaperCard::getRules? - return Iterables.filter(source, Predicates.compose(tokens ? rulesWithTokens(predicate) : predicate, fn)); + Predicate predicate1 = tokens ? rulesWithTokens(predicate) : predicate; + return Iterables.filter(source, x -> predicate1.test(fn.apply(x))); } public static Predicate rulesWithTokens(final Predicate predicate) { diff --git a/forge-core/src/main/java/forge/util/Predicates.java b/forge-core/src/main/java/forge/util/Predicates.java index 27e1cf9e6db..32938b844d1 100644 --- a/forge-core/src/main/java/forge/util/Predicates.java +++ b/forge-core/src/main/java/forge/util/Predicates.java @@ -1,6 +1,5 @@ package forge.util; -import java.util.function.Function; import java.util.function.Predicate; public class Predicates { @@ -15,9 +14,4 @@ public class Predicates { //TODO: Should be able to clean up the casting here. return x -> Iterables.any(components, (Predicate>) i -> i.test(x)); } - - //TODO: Most uses of this are with the function PaperCard::getRules. Maybe we should just have PaperCardPredicates? - public static Predicate compose(Predicate predicate, Function function) { - return x -> predicate.test(function.apply(x)); - } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java index 740fdeaaa51..ff1f205f057 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java @@ -26,6 +26,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; import java.util.*; +import java.util.function.Function; import java.util.function.Predicate; public class ChangeZoneEffect extends SpellAbilityEffect { @@ -1151,7 +1152,8 @@ public class ChangeZoneEffect extends SpellAbilityEffect { } if (sa.hasParam("DifferentPower")) { for (Card c : chosenCards) { - fetchList = CardLists.filter(fetchList, Predicates.compose(Predicate.isEqual(c.getNetPower()), Card::getNetPower).negate()); + int chosenPower = c.getNetPower(); + fetchList = CardLists.filter(fetchList, x -> x.getNetPower() != chosenPower); } } if (sa.hasParam("ShareLandType")) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/PlayLandVariantEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PlayLandVariantEffect.java index 32e8dd47282..dc3759a4c2c 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PlayLandVariantEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PlayLandVariantEffect.java @@ -1,6 +1,7 @@ package forge.game.ability.effects; import java.util.List; +import java.util.function.Function; import java.util.function.Predicate; import com.google.common.collect.Lists; @@ -19,7 +20,6 @@ import forge.item.PaperCard; import forge.item.PaperCardPredicates; import forge.util.Aggregates; import forge.util.Iterables; -import forge.util.Predicates; public class PlayLandVariantEffect extends SpellAbilityEffect { @@ -48,7 +48,7 @@ public class PlayLandVariantEffect extends SpellAbilityEffect { } } - final Predicate cp = Predicates.compose(landNames::contains, PaperCard::getName); + final Predicate cp = x -> landNames.contains(x.getName()); cards = Lists.newArrayList(Iterables.filter(cards, cp)); // get a random basic land Card random; 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 666549e3ab2..66db3ed59ca 100644 --- a/forge-gui-desktop/src/main/java/forge/itemmanager/ItemManager.java +++ b/forge-gui-desktop/src/main/java/forge/itemmanager/ItemManager.java @@ -48,6 +48,7 @@ import java.awt.event.MouseEvent; import java.util.List; import java.util.*; import java.util.Map.Entry; +import java.util.function.Function; import java.util.function.Predicate; /** @@ -1002,12 +1003,12 @@ public abstract class ItemManager extends JPanel implem } if (useFilter && this.wantUnique) { - final Predicate> filterForPool = Predicates.compose(this.filterPredicate, Entry::getKey); + final Predicate> filterForPool = x -> this.filterPredicate.test(x.getKey()); final Iterable> items = getUnique(Iterables.filter(this.pool, filterForPool)); this.model.addItems(items); } else if (useFilter) { - final Predicate> pred = Predicates.compose(this.filterPredicate, Entry::getKey); + final Predicate> pred = x -> this.filterPredicate.test(x.getKey());; this.model.addItems(Iterables.filter(this.pool, pred)); } else if (this.wantUnique) { diff --git a/forge-gui-mobile/src/forge/itemmanager/ItemManager.java b/forge-gui-mobile/src/forge/itemmanager/ItemManager.java index e79add651a8..0ec421ddb30 100644 --- a/forge-gui-mobile/src/forge/itemmanager/ItemManager.java +++ b/forge-gui-mobile/src/forge/itemmanager/ItemManager.java @@ -782,7 +782,7 @@ public abstract class ItemManager extends FContainer im Iterable> items = pool; if (useFilter) { - Predicate> pred = Predicates.compose(filterPredicate, (Function, T>) Entry::getKey); + Predicate> pred = x -> filterPredicate.test(x.getKey()); items = Iterables.filter(pool, pred); } model.addItems(items);