Send metadata updates events when the metadata changes.
[sonitus.git] / src / main / java / net / pterodactylus / sonitus / data / filter / DummyFilter.java
index 2247ecc..ea874d4 100644 (file)
@@ -30,7 +30,9 @@ import java.util.List;
 import net.pterodactylus.sonitus.data.Controller;
 import net.pterodactylus.sonitus.data.Filter;
 import net.pterodactylus.sonitus.data.Metadata;
+import net.pterodactylus.sonitus.data.event.MetadataUpdated;
 
+import com.google.common.eventbus.EventBus;
 import com.google.common.io.Closeables;
 
 /**
@@ -40,6 +42,12 @@ import com.google.common.io.Closeables;
  */
 public class DummyFilter implements Filter {
 
+       /** The name of this filter. */
+       private final String name;
+
+       /** The event bus. */
+       private final EventBus eventBus;
+
        /** The input stream from which to read. */
        private InputStream inputStream;
 
@@ -49,12 +57,30 @@ public class DummyFilter implements Filter {
        /** The current metadata. */
        private Metadata metadata;
 
+       /**
+        * Creates a new dummy filter with the given name.
+        *
+        * @param eventBus
+        *              The event bus
+        * @param name
+        *              The name of the filter
+        */
+       public DummyFilter(EventBus eventBus, String name) {
+               this.eventBus = eventBus;
+               this.name = name;
+       }
+
        //
        // CONTROLLED METHODS
        //
 
        @Override
-       public List<Controller> controllers() {
+       public String name() {
+               return name;
+       }
+
+       @Override
+       public List<Controller<?>> controllers() {
                return Collections.emptyList();
        }
 
@@ -64,7 +90,7 @@ public class DummyFilter implements Filter {
 
        @Override
        public void open(Metadata metadata) throws IOException {
-               this.metadata = metadata;
+               metadataUpdated(metadata);
                inputStream = createInputStream();
                outputStream = createOutputStream();
        }
@@ -87,6 +113,7 @@ public class DummyFilter implements Filter {
        @Override
        public void metadataUpdated(Metadata metadata) {
                this.metadata = metadata;
+               eventBus.post(new MetadataUpdated(this, metadata));
        }
 
        @Override