Hand in changed metadata to superclass.
[sonitus.git] / src / main / java / net / pterodactylus / sonitus / data / filter / PredicateFilter.java
index 4000a5b..20840a8 100644 (file)
@@ -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 <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
-public class PredicateFilter extends DummyFilter {
+public class PredicateFilter extends AbstractFilter implements Filter {
 
        /** The predicate. */
        private final Predicate<Metadata> metadataPredicate;
@@ -83,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()) {