X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Fencoder%2FCommandlineHandler.java;h=b6e10cec0a2eb65c10a5b1e60f0b1a850ea25401;hb=1615d61199bf23f22829d8d05c7253d815b15799;hp=fd9d9e94780d22227a374bfd58538f3b6cc88792;hpb=50cb7085d553fdd82cd06806cd27b1675299f719;p=meviz.git diff --git a/src/main/java/eu/svjatoslav/meviz/encoder/CommandlineHandler.java b/src/main/java/eu/svjatoslav/meviz/encoder/CommandlineHandler.java index fd9d9e9..b6e10ce 100755 --- a/src/main/java/eu/svjatoslav/meviz/encoder/CommandlineHandler.java +++ b/src/main/java/eu/svjatoslav/meviz/encoder/CommandlineHandler.java @@ -9,96 +9,85 @@ package eu.svjatoslav.meviz.encoder; -import eu.svjatoslav.commons.commandline.parameterparser.Parameter; import eu.svjatoslav.commons.commandline.parameterparser.Parser; +import eu.svjatoslav.commons.commandline.parameterparser.parameter.DirectoryParameter; +import eu.svjatoslav.commons.commandline.parameterparser.parameter.NullParameter; +import eu.svjatoslav.commons.commandline.parameterparser.parameter.StringParameter; public class CommandlineHandler { - Parameter outputFormatParameter = new Parameter(true, true, true, - new eu.svjatoslav.commons.commandline.parameterparser.arguments.String(), "Encoding output format.", "-o", - "--output-format"); + Parser parser = new Parser(); - Parameter terminalParameter = new Parameter("Enable popup terminal.", "--terminal"); + StringParameter outputFormatParameter = parser + .createStringParameter("Encoding output format.") + .addAliases("-o", "--output-format").setMandatory(); - Parameter testParameter = new Parameter("Simulate file encoding.", "-t", "--test"); + NullParameter deinterlaceParameter = parser.createNullParameter( + "Deinterlace video.").addAliases("--deinterlace", "-d"); - Parameter recursiveParameter = new Parameter("Enable recursive mode.", "-r", "--recursive"); + NullParameter testParameter = parser.createNullParameter( + "Simulate file encoding.").addAliases("-t", "--test"); - Parameter inputPatternParameter = new Parameter(true, true, true, - new eu.svjatoslav.commons.commandline.parameterparser.arguments.String(), "File input pattern.", "-i", - "--input-pattern"); + NullParameter recursiveParameter = parser.createNullParameter( + "Enable recursive mode.").addAliases("-r", "--recursive"); - Parameter workingDirectoryParameter = new Parameter(false, true, true, - new eu.svjatoslav.commons.commandline.parameterparser.arguments.ExistingDirectory(), "Working directory.", - "-w", "--working-directory"); + StringParameter inputPatternParameter = parser + .createStringParameter("File input pattern.") + .addAliases("-i", "--input-pattern").setMandatory(); - Parameter videoBitrateParameter = new Parameter(false, true, false, new Bitrate(), "Video bitrate.", "-v", - "--video-bitrate"); + DirectoryParameter workingDirectoryParameter = parser + .createDirectoryParameter("Working directory.") + .addAliases("-w", "--working-directory").mustExist(); - public Parser initParser() { - final Parser parser = new Parser(); + BitrateParameter videoBitrateParameter = new BitrateParameter( + "Video bitrate"); - parser.addParameter(recursiveParameter); + public CommandlineHandler() { + videoBitrateParameter.addAliases("-v", "--video-bitrate"); + parser.addParameter(videoBitrateParameter); + } - parser.addParameter(testParameter); + /** + * @return {@link EncodingOptions} if commandline arguments were + * successfully parsed, or null if parsing error + * occurred. + */ + public EncodingOptions parseCommandlineArguments(final String[] args) { - parser.addParameter(terminalParameter); + final EncodingOptions options = new EncodingOptions(); - parser.addParameter(outputFormatParameter); + parser.parse(args); - parser.addParameter(inputPatternParameter); + if (recursiveParameter.isParameterSpecified()) + options.recursive = true; - parser.addParameter(workingDirectoryParameter); + if (deinterlaceParameter.isParameterSpecified()) + options.deinterlace = true; - parser.addParameter(videoBitrateParameter); + if (testParameter.isParameterSpecified()) + options.testOnly = true; - return parser; - } + if (outputFormatParameter.isParameterSpecified()) + options.outputFormats.addAll(outputFormatParameter + .getArgumentsAsStrings()); - /** - * @return {@link EncodingOptions} if commandline arguments were - * successfully parsed, or null if parsing error - * occurred. - */ - public EncodingOptions parseCommandlineArguments(final String[] args) { + if (workingDirectoryParameter.isParameterSpecified()) + options.workingDirectory = workingDirectoryParameter + .getArgumentsAsFiles().get(0); - final EncodingOptions options = new EncodingOptions(); + if (inputPatternParameter.isParameterSpecified()) + options.inputPatterns.addAll(inputPatternParameter + .getArgumentsAsStrings()); - final Parser parser = initParser(); - parser.parse(args); + if (videoBitrateParameter.isParameterSpecified()) + try { + options.videoBitrate = videoBitrateParameter.getValue(); + } catch (final Exception e) { + System.out + .println("Invalid video bitrate. Valid values are: LOW, MEDIUM, HIGH."); + return null; + } - if (recursiveParameter.isParameterSpecified()) - options.recursive = true; - - if (terminalParameter.isParameterSpecified()) - options.terminal = true; - - if (testParameter.isParameterSpecified()) - options.testOnly = true; - - if (outputFormatParameter.isParameterSpecified()) { - options.outputFormats.addAll(outputFormatParameter.getArgumentsAsStrings()); - } - - if (workingDirectoryParameter.isParameterSpecified()) { - options.workingDirectory = workingDirectoryParameter.getArgumentsAsFiles().get(0); - } - - if (inputPatternParameter.isParameterSpecified()) { - options.inputPatterns.addAll(inputPatternParameter.getArgumentsAsStrings()); - } - - if (videoBitrateParameter.isParameterSpecified()) { - - try { - options.videoBitrate = Bitrate.bitrate.valueOf(videoBitrateParameter.getArgumentAsString() - .toUpperCase()); - } catch (final Exception e) { - System.out.println("Invalid video bitrate. Valid values are: LOW, MEDIUM, HIGH."); - return null; - } - } - - return options; - } + return options; + } }