841a889cdfcce5568b46aedd2267bc712a66b70c
[meviz.git] / src / main / java / eu / svjatoslav / meviz / encoder / BitrateParameter.java
1 /*
2  * Meviz - Various tools collection to work with multimedia. Author: Svjatoslav Agejenko.
3  * This project is released under Creative Commons Zero (CC0) license.
4  */
5
6
7 package eu.svjatoslav.meviz.encoder;
8
9 import eu.svjatoslav.commons.commandline.parameterparser.ArgumentCount;
10 import eu.svjatoslav.commons.commandline.parameterparser.Parameter;
11
12 public class BitrateParameter extends Parameter<BitrateParameter.Bitrate, BitrateParameter> {
13
14     public BitrateParameter(final String description) {
15         super(description, ArgumentCount.SINGLE);
16     }
17
18     @Override
19     public String describeFormat() {
20         return "Target bitrate [NONE / LOW / MEDIUM / HIGH / COPY / LOSSLESS]";
21     }
22
23     @Override
24     public Bitrate getValue() {
25         return Bitrate.valueOf(arguments.get(0).toUpperCase());
26     }
27
28     @Override
29     public boolean validate(final String value) {
30         try {
31             Bitrate.valueOf(value.toUpperCase());
32         } catch (final IllegalArgumentException exception) {
33             return false;
34         }
35
36         return true;
37     }
38
39     public enum Bitrate {
40         NONE, LOW, MEDIUM, HIGH, COPY, LOSSLESS
41     }
42 }