Made graph name optional. Default name is "graph".
[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 static final String DEFAULT_GRAPH_NAME = "graph";
20
21     public CommandlineConfiguration(String[] args) {
22         Parser parser = buildCommandlineParameterParser();
23         configurationOk = parser.parse(args);
24         if (!configurationOk)
25             parser.showHelp();
26     }
27
28     public boolean isDebug() {
29         return showDebug.isSpecified();
30     }
31
32     public Parser buildCommandlineParameterParser() {
33         Parser parser = new Parser();
34
35         jarFiles = parser.add(
36                 new FileParameters("JAR file(s) to render."))
37                 .mustExist()
38                 .addAliases("-j");
39
40         graphName = parser.add(
41                 new StringParameter("Graph name. (default: \"" + DEFAULT_GRAPH_NAME + "\")", DEFAULT_GRAPH_NAME))
42                 .addAliases("-n");
43
44         showDebug = parser.add(
45                 new NullParameter("Show debug info."))
46                 .addAliases("--debug");
47
48         keepDotFile = parser.add(
49                 new NullParameter("Keep dot file."))
50                 .addAliases("-k");
51
52         hideOrphanedClasses = parser.add(
53                 new NullParameter("Hide orphaned classes."))
54                 .addAliases("-h");
55
56         whitelistGlob = parser.add(
57                 new StringParameters("Whitelist glob(s)."))
58                 .addAliases("-w");
59
60         blacklistGlob = parser.add(
61                 new StringParameters("Blacklist glob(s)."))
62                 .addAliases("-b");
63
64         targetDirectory = parser.add(new DirectoryParameter("Target directory. " +
65                 "Default is current directory.").mustExist())
66                 .addAliases("-d");
67
68         targetImageType = parser.add(new TargetImageTypeParameter()).addAliases("-t");
69
70         return parser;
71     }
72
73 }