--- /dev/null
+/*
+ * Meviz - Various tools collection to work with multimedia.
+ * Copyright (C) 2012, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public License
+ * as published by the Free Software Foundation.
+ */
+
+package eu.svjatoslav.meviz.encoder.converters;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import eu.svjatoslav.meviz.encoder.EncodingOptions;
+
+public abstract class AbstractConverter {
+
+ public abstract String getCommand(File inputFile, File targetFile,
+ EncodingOptions options);
+
+ public abstract List<String> getSourceFileExtensions();
+
+ public abstract List<String> getTargetFileExtensions();
+
+ /**
+ * For some reasons some encoders require terminal to run. Until this is
+ * resolved, encoder can request for terminal using this method.
+ */
+ public abstract boolean isTerminalMandatory();
+
+ public boolean supportsSource(final String format) {
+ return getSourceFileExtensions().contains(format);
+ }
+
+ public boolean supportsTarget(final String format) {
+ return getTargetFileExtensions().contains(format);
+ }
+
+ public List<String> toList(final String... strings) {
+ final ArrayList<String> result = new ArrayList<String>();
+
+ for (final String string : strings)
+ result.add(string);
+
+ return result;
+ }
+}