X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsonitus%2Fdata%2Ffilter%2FPredicateFilter.java;h=20840a811ed80cceeaa755161c71da61053bccd5;hb=d3ab28bf3d751305328d02784d3a5eaf6b3ad81c;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..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,11 +22,11 @@ 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;
import com.google.common.base.Predicate;
-import com.google.common.eventbus.EventBus;
/**
* {@link Filter} implementation that uses a {@link Predicate} to determine
@@ -34,7 +34,7 @@ import com.google.common.eventbus.EventBus;
*
* @author David âBombeâ Roden
*/
-public class PredicateFilter extends DummyFilter {
+public class PredicateFilter extends AbstractFilter implements Filter {
/** The predicate. */
private final Predicate metadataPredicate;
@@ -48,15 +48,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 +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()) {
@@ -106,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);