X-Git-Url: https://git.pterodactylus.net/?p=sonitus.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsonitus%2Fdata%2Ffilter%2FPredicateFilter.java;h=20840a811ed80cceeaa755161c71da61053bccd5;hp=173073e9edcd3b197530aea4e8d1a65bbb30ca8f;hb=d3ab28bf3d751305328d02784d3a5eaf6b3ad81c;hpb=09f8bd2297dc864e24baa67c65be97104e00c320 diff --git a/src/main/java/net/pterodactylus/sonitus/data/filter/PredicateFilter.java b/src/main/java/net/pterodactylus/sonitus/data/filter/PredicateFilter.java index 173073e..20840a8 100644 --- a/src/main/java/net/pterodactylus/sonitus/data/filter/PredicateFilter.java +++ b/src/main/java/net/pterodactylus/sonitus/data/filter/PredicateFilter.java @@ -22,6 +22,7 @@ import static com.google.common.base.Preconditions.checkNotNull; import java.io.IOException; import java.util.concurrent.atomic.AtomicBoolean; +import net.pterodactylus.sonitus.data.AbstractFilter; import net.pterodactylus.sonitus.data.Filter; import net.pterodactylus.sonitus.data.Metadata; @@ -33,7 +34,7 @@ import com.google.common.base.Predicate; * * @author David ‘Bombe’ Roden */ -public class PredicateFilter extends DummyFilter { +public class PredicateFilter extends AbstractFilter implements Filter { /** The predicate. */ private final Predicate metadataPredicate; @@ -50,7 +51,6 @@ public class PredicateFilter extends DummyFilter { * @param metadataPredicate * The predicate to evaluate every time the metadata changes * @param filter - * The filter to use if the predicate matches the metadata */ public PredicateFilter(Predicate metadataPredicate, Filter filter) { super(String.format("%s (maybe)", filter.name())); @@ -84,6 +84,14 @@ public class PredicateFilter extends DummyFilter { } @Override + public Metadata metadata() { + if (metadataMatches.get()) { + return filter.metadata(); + } + return super.metadata(); + } + + @Override public void metadataUpdated(Metadata metadata) { metadataMatches.set(metadataPredicate.apply(metadata)); if (metadataMatches.get()) { @@ -103,15 +111,6 @@ public class PredicateFilter extends DummyFilter { } @Override - public Metadata metadata() { - if (metadataMatches.get()) { - return filter.metadata(); - } else { - return super.metadata(); - } - } - - @Override public byte[] get(int bufferSize) throws IOException { if (metadataMatches.get()) { return filter.get(bufferSize);