Filter by foil status (#8358)

This commit is contained in:
Eradev
2025-08-13 12:45:53 -04:00
committed by GitHub
parent bfd4a68e23
commit 394818f533
2 changed files with 32 additions and 0 deletions

View File

@@ -50,6 +50,13 @@ public abstract class PaperCardPredicates {
return new PredicateNames(what);
}
/**
* Filters on a card foil status
*/
public static Predicate<PaperCard> isFoil(final boolean isFoil) {
return new PredicateFoil(isFoil);
}
private static final class PredicatePrintedWithRarity implements Predicate<PaperCard> {
private final CardRarity matchingRarity;
@@ -93,6 +100,17 @@ public abstract class PaperCardPredicates {
}
}
private static final class PredicateFoil implements Predicate<PaperCard> {
private final boolean operand;
@Override
public boolean test(final PaperCard card) { return card.isFoil() == operand; }
private PredicateFoil(final boolean isFoil) {
this.operand = isFoil;
}
}
private static final class PredicateRarity implements Predicate<PaperCard> {
private final CardRarity operand;

View File

@@ -408,6 +408,20 @@ public abstract class AdvancedSearchParser {
break;
}
break;
case "is":
if (opUsed.equals(":")) {
switch(valueStr) {
case "foil":
predicate = PaperCardPredicates.isFoil(true);
break;
case "nonfoil":
predicate = PaperCardPredicates.isFoil(false);
break;
}
}
break;
}
if (predicate == null) {