From b46c1deeb4d03f0ee478b3c435c2ad9213e863cc Mon Sep 17 00:00:00 2001 From: Jetz Date: Mon, 2 Sep 2024 12:03:59 -0400 Subject: [PATCH] Guava migration - Preliminary --- .../main/java/forge/card/CardRulesPredicates.java | 4 ++-- forge-core/src/main/java/forge/card/DeckHints.java | 14 ++++++-------- forge-game/src/main/java/forge/game/card/Card.java | 1 + .../src/forge/adventure/util/CardUtil.java | 9 +++++---- .../java/forge/gamemodes/quest/BoosterUtils.java | 5 ++--- 5 files changed, 16 insertions(+), 17 deletions(-) diff --git a/forge-core/src/main/java/forge/card/CardRulesPredicates.java b/forge-core/src/main/java/forge/card/CardRulesPredicates.java index af5d1297cc5..4f581532dc6 100644 --- a/forge-core/src/main/java/forge/card/CardRulesPredicates.java +++ b/forge-core/src/main/java/forge/card/CardRulesPredicates.java @@ -196,7 +196,7 @@ public final class CardRulesPredicates { try { return CardRulesPredicates.coreType(isEqual, Enum.valueOf(CardType.CoreType.class, what)); } catch (final Exception e) { - return com.google.common.base.Predicates.alwaysFalse(); + return x -> false; } } @@ -226,7 +226,7 @@ public final class CardRulesPredicates { try { return CardRulesPredicates.superType(isEqual, Enum.valueOf(CardType.Supertype.class, what)); } catch (final Exception e) { - return com.google.common.base.Predicates.alwaysFalse(); + return x -> false; } } diff --git a/forge-core/src/main/java/forge/card/DeckHints.java b/forge-core/src/main/java/forge/card/DeckHints.java index ef38a23da89..7cc175e2d92 100644 --- a/forge-core/src/main/java/forge/card/DeckHints.java +++ b/forge-core/src/main/java/forge/card/DeckHints.java @@ -123,14 +123,12 @@ public class DeckHints { for (Pair pair : filters) { Type type = pair.getLeft(); String param = pair.getRight(); - Iterable cards = getCardsForFilter(cardList, type, param); - if (cards != null) { - // if a type is used more than once intersect respective matches - if (ret.containsKey(type)) { - Iterables.retainAll(cards, new FCollection<>(ret.get(type))); - } - ret.put(type, cards); + List cards = getCardsForFilter(cardList, type, param); + // if a type is used more than once intersect respective matches + if (ret.containsKey(type)) { + cards.retainAll(new FCollection<>(ret.get(type))); } + ret.put(type, cards); } return ret; } @@ -166,7 +164,7 @@ public class DeckHints { return pair; } - private Iterable getCardsForFilter(Iterable cardList, Type type, String param) { + private List getCardsForFilter(Iterable cardList, Type type, String param) { List cards = new ArrayList<>(); // this is case ABILITY, but other types can also use this when the implicit parsing would miss diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index ddbf16e1a2f..cf0beabb337 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -21,6 +21,7 @@ import com.esotericsoftware.minlog.Log; import com.google.common.base.Optional; import com.google.common.base.Predicates; import com.google.common.collect.*; +import com.google.common.collect.Iterables; import forge.GameCommand; import forge.StaticData; import forge.card.*; diff --git a/forge-gui-mobile/src/forge/adventure/util/CardUtil.java b/forge-gui-mobile/src/forge/adventure/util/CardUtil.java index cdf0526385e..e348784c563 100644 --- a/forge-gui-mobile/src/forge/adventure/util/CardUtil.java +++ b/forge-gui-mobile/src/forge/adventure/util/CardUtil.java @@ -5,6 +5,7 @@ import com.badlogic.gdx.utils.Json; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; import forge.StaticData; import forge.adventure.data.ConfigData; import forge.adventure.data.GeneratedDeckData; @@ -804,15 +805,15 @@ public class CardUtil { } public static PaperCard getCardByName(String cardName) { - List validCards = Arrays.asList(Iterables.toArray(Iterables.filter(getFullCardPool(Config.instance().getSettingData().useAllCardVariants), - input -> input.getCardName().equals(cardName)), PaperCard.class)); + List validCards = Lists.newArrayList(Iterables.filter(getFullCardPool(Config.instance().getSettingData().useAllCardVariants), + input -> input.getCardName().equals(cardName))); return validCards.get(Current.world().getRandom().nextInt(validCards.size())); } public static PaperCard getCardByNameAndEdition(String cardName, String edition) { - List validCards = Arrays.asList(Iterables.toArray(Iterables.filter(getFullCardPool(Config.instance().getSettingData().useAllCardVariants), - input -> input.getCardName().equals(cardName) && input.getEdition().equals(edition)), PaperCard.class)); + List validCards = Lists.newArrayList(Iterables.filter(getFullCardPool(Config.instance().getSettingData().useAllCardVariants), + input -> input.getCardName().equals(cardName) && input.getEdition().equals(edition))); if (validCards.isEmpty()) { System.err.println("Unexpected behavior: tried to call getCardByNameAndEdition for card " + cardName + " from the edition " + edition + ", but didn't find it in the DB. A random existing instance will be returned."); diff --git a/forge-gui/src/main/java/forge/gamemodes/quest/BoosterUtils.java b/forge-gui/src/main/java/forge/gamemodes/quest/BoosterUtils.java index e3d851abecc..063ab710f10 100644 --- a/forge-gui/src/main/java/forge/gamemodes/quest/BoosterUtils.java +++ b/forge-gui/src/main/java/forge/gamemodes/quest/BoosterUtils.java @@ -449,7 +449,7 @@ public final class BoosterUtils { */ public static Predicate parseRulesLimitation(final String input) { if (null == input || "random".equalsIgnoreCase(input)) { - return Predicates.alwaysTrue(); + return null; } if (input.equalsIgnoreCase("black")) return CardRulesPredicates.Presets.IS_BLACK; @@ -491,8 +491,7 @@ public final class BoosterUtils { if (temp.length > 2) { Predicate cr = parseRulesLimitation(temp[1]); - //noinspection RedundantCast - if (Predicates.alwaysTrue() != (Object) cr) { // guava has a single instance for always-const predicates + if (cr != null) { preds.add(Predicates.compose(cr, PaperCard::getRules)); } }