Guava migration - Inline Predicates.compose

This commit is contained in:
Jetz
2024-09-06 19:48:19 -04:00
parent 6e3726ee79
commit 4c8a94b18a
7 changed files with 13 additions and 15 deletions

View File

@@ -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<ReplacementEffect> shield = filterList(list, CardTraitPredicates.hasParam("ShieldCounter"));
List<ReplacementEffect> regeneration = filterList(list, CardTraitPredicates.hasParam("Regeneration"));
List<ReplacementEffect> umbraArmor = filterList(list, CardTraitPredicates.isKeyword(Keyword.UMBRA_ARMOR));
List<ReplacementEffect> umbraArmorIndestructible = filterList(umbraArmor, Predicates.compose(CardPredicates.hasKeyword(Keyword.INDESTRUCTIBLE), CardTraitBase::getHostCard));
List<ReplacementEffect> umbraArmorIndestructible = filterList(umbraArmor, x -> x.getHostCard().hasKeyword(Keyword.INDESTRUCTIBLE));
// Indestructible umbra armor is the best
if (!umbraArmorIndestructible.isEmpty()) {

View File

@@ -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<PaperCard> getMatchingItems(Iterable<PaperCard> source, Predicate<CardRules> predicate, Function<PaperCard, CardRules> 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<CardRules> predicate1 = tokens ? rulesWithTokens(predicate) : predicate;
return Iterables.filter(source, x -> predicate1.test(fn.apply(x)));
}
public static Predicate<CardRules> rulesWithTokens(final Predicate<CardRules> predicate) {

View File

@@ -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<Predicate<? super T>>) i -> i.test(x));
}
//TODO: Most uses of this are with the function PaperCard::getRules. Maybe we should just have PaperCardPredicates?
public static <A, B> Predicate<A> compose(Predicate<B> predicate, Function<A, ? extends B> function) {
return x -> predicate.test(function.apply(x));
}
}

View File

@@ -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")) {

View File

@@ -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<PaperCard> cp = Predicates.compose(landNames::contains, PaperCard::getName);
final Predicate<PaperCard> cp = x -> landNames.contains(x.getName());
cards = Lists.newArrayList(Iterables.filter(cards, cp));
// get a random basic land
Card random;

View File

@@ -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<T extends InventoryItem> extends JPanel implem
}
if (useFilter && this.wantUnique) {
final Predicate<Entry<T, Integer>> filterForPool = Predicates.compose(this.filterPredicate, Entry::getKey);
final Predicate<Entry<T, Integer>> filterForPool = x -> this.filterPredicate.test(x.getKey());
final Iterable<Entry<T, Integer>> items = getUnique(Iterables.filter(this.pool, filterForPool));
this.model.addItems(items);
}
else if (useFilter) {
final Predicate<Entry<T, Integer>> pred = Predicates.compose(this.filterPredicate, Entry::getKey);
final Predicate<Entry<T, Integer>> pred = x -> this.filterPredicate.test(x.getKey());;
this.model.addItems(Iterables.filter(this.pool, pred));
}
else if (this.wantUnique) {

View File

@@ -782,7 +782,7 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
Iterable<Entry<T, Integer>> items = pool;
if (useFilter) {
Predicate<Entry<T, Integer>> pred = Predicates.compose(filterPredicate, (Function<Entry<T, Integer>, T>) Entry::getKey);
Predicate<Entry<T, Integer>> pred = x -> filterPredicate.test(x.getKey());
items = Iterables.filter(pool, pred);
}
model.addItems(items);