Add name to all controlled components.
[sonitus.git] / src / main / java / net / pterodactylus / sonitus / data / filter / ExternalMp3Encoder.java
index d26febe..21654af 100644 (file)
 
 package net.pterodactylus.sonitus.data.filter;
 
-import net.pterodactylus.sonitus.data.ConnectException;
-import net.pterodactylus.sonitus.data.Format;
-import net.pterodactylus.sonitus.data.Source;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
 
-import com.google.common.base.Preconditions;
+import java.io.IOException;
+
+import net.pterodactylus.sonitus.data.Metadata;
 
 /**
- * Basic {@link ExternalFilter} implementation that verifies that the connected
- * source is PCM-encoded and that returns an MP3-encoded format.
+ * Basic {@link net.pterodactylus.sonitus.data.filter.ExternalFilter}
+ * implementation that verifies that the connected source is PCM-encoded and
+ * that returns an MP3-encoded metadata.
  *
  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
 public abstract class ExternalMp3Encoder extends ExternalFilter {
 
+       /**
+        * Creates a new external MP3 encoder.
+        *
+        * @param name
+        *              The name of the filter
+        */
+       protected ExternalMp3Encoder(String name) {
+               super(name);
+       }
+
        @Override
-       public Format format() {
-               return super.format().encoding("MP3");
+       public Metadata metadata() {
+               return super.metadata().encoding("MP3");
        }
 
        @Override
-       public void connect(Source source) throws ConnectException {
-               Preconditions.checkNotNull(source, "source must not be null");
-               Preconditions.checkState(source.format().encoding().equalsIgnoreCase("PCM"), "source must be PCM-encoded");
+       public void open(Metadata metadata) throws IOException {
+               checkNotNull(metadata, "metadata must not be null");
+               checkState(metadata.encoding().equalsIgnoreCase("PCM"), "source must be PCM-encoded");
 
-               super.connect(source);
+               super.open(metadata);
        }
 
 }