Code cleanup.
[javainspect.git] / src / main / java / eu / svjatoslav / inspector / java / CommandlineConfiguration.java
1 package eu.svjatoslav.inspector.java;
2
3 import eu.svjatoslav.commons.commandline.parameterparser.Parser;
4 import eu.svjatoslav.commons.commandline.parameterparser.parameter.FileParameters;
5 import eu.svjatoslav.commons.commandline.parameterparser.parameter.NullParameter;
6 import eu.svjatoslav.commons.commandline.parameterparser.parameter.StringParameter;
7 import eu.svjatoslav.commons.commandline.parameterparser.parameter.StringParameters;
8
9 public class CommandlineConfiguration {
10
11     public FileParameters jarFiles;
12     public StringParameter graphName;
13     private NullParameter showDebug;
14
15     public CommandlineConfiguration(String args[]) {
16         Parser parser = buildCommandlineParameterParser();
17         if (!parser.parse(args)) {
18             parser.showHelp();
19         }
20
21     }
22
23     public boolean isDebug() {
24         return showDebug.isSpecified();
25     }
26
27     public Parser buildCommandlineParameterParser() {
28         Parser parser = new Parser();
29
30         jarFiles = parser.add(
31                 new FileParameters("JAR file(s)"))
32                 .mustExist()
33                 .addAliases("-j");
34
35         graphName = parser.add(
36                 new StringParameter("graph name"))
37                 .setMandatory()
38                 .addAliases("-n");
39
40         showDebug = parser.add(
41                 new NullParameter("show debug info"))
42                 .addAliases("-d");
43
44         parser.add(
45                 new StringParameters("whitelist glob"))
46                 .addAliases("-w");
47
48         parser.add(
49                 new StringParameters("blacklist glob"))
50                 .addAliases("-b");
51
52         return parser;
53     }
54
55 }