Add marker for unknown metadata.
[sonitus.git] / src / main / java / net / pterodactylus / sonitus / data / filter / DummyFilter.java
index a3ce099..ae6899d 100644 (file)
@@ -24,7 +24,11 @@ import java.io.OutputStream;
 import java.io.PipedInputStream;
 import java.io.PipedOutputStream;
 import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 
+import net.pterodactylus.sonitus.data.AbstractControlledComponent;
+import net.pterodactylus.sonitus.data.Controller;
 import net.pterodactylus.sonitus.data.Filter;
 import net.pterodactylus.sonitus.data.Metadata;
 
@@ -35,7 +39,7 @@ import com.google.common.io.Closeables;
  *
  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
-public class DummyFilter implements Filter {
+public class DummyFilter extends AbstractControlledComponent implements Filter {
 
        /** The input stream from which to read. */
        private InputStream inputStream;
@@ -43,8 +47,24 @@ public class DummyFilter implements Filter {
        /** The output stream to which to write. */
        private OutputStream outputStream;
 
-       /** The current metadata. */
-       private Metadata metadata;
+       /**
+        * Creates a new dummy filter with the given name.
+        *
+        * @param name
+        *              The name of the filter
+        */
+       public DummyFilter(String name) {
+               super(name);
+       }
+
+       //
+       // CONTROLLED METHODS
+       //
+
+       @Override
+       public List<Controller<?>> controllers() {
+               return Collections.emptyList();
+       }
 
        //
        // FILTER METHODS
@@ -52,7 +72,7 @@ public class DummyFilter implements Filter {
 
        @Override
        public void open(Metadata metadata) throws IOException {
-               this.metadata = metadata;
+               metadataUpdated(metadata);
                inputStream = createInputStream();
                outputStream = createOutputStream();
        }
@@ -68,16 +88,6 @@ public class DummyFilter implements Filter {
        }
 
        @Override
-       public Metadata metadata() {
-               return metadata;
-       }
-
-       @Override
-       public void metadataUpdated(Metadata metadata) {
-               this.metadata = metadata;
-       }
-
-       @Override
        public void process(byte[] buffer) throws IOException {
                outputStream.write(buffer);
                outputStream.flush();