X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsonitus%2Fdata%2Ffilter%2FPredicateFilter.java;h=8968596ab043db04dbcd2fec2d5726ae83dafc7d;hb=70ea21939e6071954eeb05f2a42e7a92a02013f2;hp=4edc661b3d7411f4b34094bd2e90cb5292419d35;hpb=c548332c486d812bfce23a9121219bf86ecc5588;p=sonitus.git 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 4edc661..8968596 100644 --- a/src/main/java/net/pterodactylus/sonitus/data/filter/PredicateFilter.java +++ b/src/main/java/net/pterodactylus/sonitus/data/filter/PredicateFilter.java @@ -26,7 +26,6 @@ import net.pterodactylus.sonitus.data.Filter; import net.pterodactylus.sonitus.data.Metadata; import com.google.common.base.Predicate; -import com.google.common.eventbus.EventBus; /** * {@link Filter} implementation that uses a {@link Predicate} to determine @@ -34,7 +33,7 @@ import com.google.common.eventbus.EventBus; * * @author David ‘Bombe’ Roden */ -public class PredicateFilter extends DummyFilter { +public class PredicateFilter extends BasicFilter { /** The predicate. */ private final Predicate metadataPredicate; @@ -48,15 +47,12 @@ public class PredicateFilter extends DummyFilter { /** * Creates a new predicate filter. * - * @param eventBus - * The event bus * @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(EventBus eventBus, Predicate metadataPredicate, Filter filter) { - super(eventBus, String.format("%s (maybe)", filter.name())); + public PredicateFilter(Predicate metadataPredicate, Filter filter) { + super(String.format("%s (maybe)", filter.name())); this.metadataPredicate = metadataPredicate; this.filter = filter; } @@ -87,6 +83,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()) { @@ -106,15 +110,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);