Added all important commandline options. Updated documentation.
[javainspect.git] / src / main / java / eu / svjatoslav / inspector / java / commandline / CommandlineConfiguration.java
1 package eu.svjatoslav.inspector.java.commandline;
2
3 import eu.svjatoslav.commons.commandline.parameterparser.Parser;
4 import eu.svjatoslav.commons.commandline.parameterparser.parameter.*;
5
6 public class CommandlineConfiguration {
7
8     public FileParameters jarFiles;
9     public StringParameter graphName;
10     private NullParameter showDebug;
11     public StringParameters whitelistGlob;
12     public StringParameters blacklistGlob;
13     public TargetImageTypeParameter targetImageType;
14     public NullParameter keepDotFile;
15     public DirectoryParameter targetDirectory;
16     public final boolean configurationOk;
17     public NullParameter hideOrphanedClasses;
18
19     public CommandlineConfiguration(String args[]) {
20         Parser parser = buildCommandlineParameterParser();
21         configurationOk = parser.parse(args);
22         if (!configurationOk)
23             parser.showHelp();
24     }
25
26     public boolean isDebug() {
27         return showDebug.isSpecified();
28     }
29
30     public Parser buildCommandlineParameterParser() {
31         Parser parser = new Parser();
32
33         jarFiles = parser.add(
34                 new FileParameters("JAR file(s) to render."))
35                 .mustExist()
36                 .addAliases("-j");
37
38         graphName = parser.add(
39                 new StringParameter("Graph name."))
40                 .setMandatory()
41                 .addAliases("-n");
42
43         showDebug = parser.add(
44                 new NullParameter("Show debug info."))
45                 .addAliases("--debug");
46
47         keepDotFile = parser.add(
48                 new NullParameter("Keep dot file."))
49                 .addAliases("-k");
50
51         hideOrphanedClasses = parser.add(
52                 new NullParameter("Hide orphaned classes."))
53                 .addAliases("-h");
54
55         whitelistGlob = parser.add(
56                 new StringParameters("Whitelist glob(s)."))
57                 .addAliases("-w");
58
59         blacklistGlob = parser.add(
60                 new StringParameters("Blacklist glob(s)."))
61                 .addAliases("-b");
62
63         targetDirectory = parser.add(new DirectoryParameter("Target directory. " +
64                 "Default is current directory.").mustExist())
65                 .addAliases("-d");
66
67         targetImageType = parser.add(new TargetImageTypeParameter()).addAliases("-t");
68
69         return parser;
70     }
71
72 }