1 package eu.svjatoslav.inspector.java.commandline;
3 import eu.svjatoslav.commons.commandline.parameterparser.Parser;
4 import eu.svjatoslav.commons.commandline.parameterparser.parameter.*;
6 public class CommandlineConfiguration {
8 public FileParameters jarFiles;
9 public StringParameter graphName;
10 private NullParameter showDebug;
11 public StringParameters whitelistGlob;
12 public StringParameters blacklistGlob;
13 public StringParameters rootClasses;
14 public NullParameter showHelp;
15 public TargetImageTypeParameter targetImageType;
16 public NullParameter keepDotFile;
17 public DirectoryParameter targetDirectory;
18 public DirectoryParameters classPaths;
19 public final boolean configurationOk;
20 public NullParameter hideOrphanedClasses;
23 public static final String DEFAULT_GRAPH_NAME = "graph";
25 public CommandlineConfiguration(String[] args) {
26 parser = buildCommandlineParameterParser();
27 configurationOk = parser.parse(args);
30 public boolean isDebug() {
31 return showDebug.isSpecified();
34 public Parser buildCommandlineParameterParser() {
35 Parser parser = new Parser();
37 jarFiles = parser.add(
38 new FileParameters("JAR file(s) to render."))
42 classPaths = parser.add(
43 new DirectoryParameters("Classpath directories"))
47 graphName = parser.add(
48 new StringParameter("Graph name. (default: \"" + DEFAULT_GRAPH_NAME + "\")", DEFAULT_GRAPH_NAME))
51 showDebug = parser.add(
52 new NullParameter("Show debug info."))
53 .addAliases("--debug");
55 showHelp = parser.add(new NullParameter("Show commandline usage help."))
56 .addAliases("-h", "--help");
58 keepDotFile = parser.add(
59 new NullParameter("Keep dot file."))
62 hideOrphanedClasses = parser.add(
63 new NullParameter("Hide orphaned classes."))
66 whitelistGlob = parser.add(
67 new StringParameters("Whitelist glob(s)."))
70 blacklistGlob = parser.add(
71 new StringParameters("Blacklist glob(s)."))
74 rootClasses = parser.add(
75 new StringParameters("root class(es)."))
79 targetDirectory = parser.add(new DirectoryParameter("Target directory. " +
80 "Default is current directory.").mustExist())
83 targetImageType = parser.add(new TargetImageTypeParameter()).addAliases("-t");