This commit is contained in:
		@@ -100,18 +100,18 @@ public class Main {
 | 
			
		||||
       WRITER.flush();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private enum converterArgumentValueType {
 | 
			
		||||
    enum converterArgumentValueType {
 | 
			
		||||
        BOOLEAN,
 | 
			
		||||
        COMMA_SEPARATED_LIST,
 | 
			
		||||
        SINGLE_VALUE,
 | 
			
		||||
        INT
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static class converterArgument {
 | 
			
		||||
    static class converterArgument {
 | 
			
		||||
        private String name;
 | 
			
		||||
        private boolean valueRequired;
 | 
			
		||||
        private converterArgumentValueType valueType;
 | 
			
		||||
        private converterArgument(String name, boolean valueRequired, converterArgumentValueType valueType) {
 | 
			
		||||
        converterArgument(String name, boolean valueRequired, converterArgumentValueType valueType) {
 | 
			
		||||
            this.name = name;
 | 
			
		||||
            this.valueRequired = valueRequired;
 | 
			
		||||
            this.valueType = valueType;
 | 
			
		||||
@@ -140,33 +140,6 @@ public class Main {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static void parser(List<String> tokens) {
 | 
			
		||||
        String[] types = {"animeconverter", "audioconverter", "videoconverter"};
 | 
			
		||||
        converterArgument[] commonArgs = {
 | 
			
		||||
                new converterArgument("-recursions", true, converterArgumentValueType.INT)
 | 
			
		||||
        };
 | 
			
		||||
        converterArgument[] animeArgs = {
 | 
			
		||||
 | 
			
		||||
        };
 | 
			
		||||
        converterArgument[] audioArgs = {
 | 
			
		||||
                new converterArgument("-outext", true, converterArgumentValueType.SINGLE_VALUE)
 | 
			
		||||
        };
 | 
			
		||||
        converterArgument[] videoArgs = {
 | 
			
		||||
                new converterArgument("-outext", true, converterArgumentValueType.SINGLE_VALUE)
 | 
			
		||||
        };
 | 
			
		||||
        String type = tokens.get(0).toLowerCase();
 | 
			
		||||
        if (!listContains(types, s -> s.equals(type))) {
 | 
			
		||||
            throw new IllegalArgumentException("Unknown converter type chosen.");
 | 
			
		||||
        }
 | 
			
		||||
        if (tokens.size() < 2) {
 | 
			
		||||
            throw new IllegalArgumentException("No file/folder path in argument.");
 | 
			
		||||
        }
 | 
			
		||||
        for (int i = 1; i < tokens.size() - 1; i++) {
 | 
			
		||||
            //TODO: Find the type of argument and check the value
 | 
			
		||||
            //TODO: Find an executable way to represent the chain of commands parsed
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Initializes the anime converter
 | 
			
		||||
     * @throws IOException <p>If reading or writing fails.</p>
 | 
			
		||||
@@ -272,7 +245,7 @@ public class Main {
 | 
			
		||||
     * @param <T>       Anything which can be stored in a list
 | 
			
		||||
     * @return          True if at least one element fulfills the predicate
 | 
			
		||||
     */
 | 
			
		||||
    private static <T> boolean listContains(T[] list, Predicate<T> predicate) {
 | 
			
		||||
    static <T> boolean listContains(T[] list, Predicate<T> predicate) {
 | 
			
		||||
        for (T item : list) {
 | 
			
		||||
            if (predicate.test(item)) {
 | 
			
		||||
                return true;
 | 
			
		||||
 
 | 
			
		||||
@@ -3,8 +3,37 @@ package ffmpegconverter;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import static ffmpegconverter.Main.listContains;
 | 
			
		||||
 | 
			
		||||
public class Parser {
 | 
			
		||||
 | 
			
		||||
    private static void parse(List<String> tokens) {
 | 
			
		||||
        String[] types = {"animeconverter", "audioconverter", "videoconverter"};
 | 
			
		||||
        Main.converterArgument[] commonArgs = {
 | 
			
		||||
                new Main.converterArgument("-recursions", true, Main.converterArgumentValueType.INT)
 | 
			
		||||
        };
 | 
			
		||||
        Main.converterArgument[] animeArgs = {
 | 
			
		||||
 | 
			
		||||
        };
 | 
			
		||||
        Main.converterArgument[] audioArgs = {
 | 
			
		||||
                new Main.converterArgument("-outext", true, Main.converterArgumentValueType.SINGLE_VALUE)
 | 
			
		||||
        };
 | 
			
		||||
        Main.converterArgument[] videoArgs = {
 | 
			
		||||
                new Main.converterArgument("-outext", true, Main.converterArgumentValueType.SINGLE_VALUE)
 | 
			
		||||
        };
 | 
			
		||||
        String type = tokens.get(0).toLowerCase();
 | 
			
		||||
        if (!listContains(types, s -> s.equals(type))) {
 | 
			
		||||
            throw new IllegalArgumentException("Unknown converter type chosen.");
 | 
			
		||||
        }
 | 
			
		||||
        if (tokens.size() < 2) {
 | 
			
		||||
            throw new IllegalArgumentException("No file/folder path in argument.");
 | 
			
		||||
        }
 | 
			
		||||
        for (int i = 1; i < tokens.size() - 1; i++) {
 | 
			
		||||
            //TODO: Find the type of argument and check the value
 | 
			
		||||
            //TODO: Find an executable way to represent the chain of commands parsed
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Tokenizes a string
 | 
			
		||||
     * @param input <p>A string.</p>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user