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 TargetImageTypeParameter targetImageType;
15 public NullParameter keepDotFile;
16 public DirectoryParameter targetDirectory;
17 public final boolean configurationOk;
18 public NullParameter hideOrphanedClasses;
20 public static final String DEFAULT_GRAPH_NAME = "graph";
22 public CommandlineConfiguration(String[] args) {
23 Parser parser = buildCommandlineParameterParser();
24 configurationOk = parser.parse(args);
29 public boolean isDebug() {
30 return showDebug.isSpecified();
33 public Parser buildCommandlineParameterParser() {
34 Parser parser = new Parser();
36 jarFiles = parser.add(
37 new FileParameters("JAR file(s) to render."))
41 graphName = parser.add(
42 new StringParameter("Graph name. (default: \"" + DEFAULT_GRAPH_NAME + "\")", DEFAULT_GRAPH_NAME))
45 showDebug = parser.add(
46 new NullParameter("Show debug info."))
47 .addAliases("--debug");
49 keepDotFile = parser.add(
50 new NullParameter("Keep dot file."))
53 hideOrphanedClasses = parser.add(
54 new NullParameter("Hide orphaned classes."))
57 whitelistGlob = parser.add(
58 new StringParameters("Whitelist glob(s)."))
61 blacklistGlob = parser.add(
62 new StringParameters("Blacklist glob(s)."))
65 rootClasses = parser.add(
66 new StringParameters("root class(es)."))
70 targetDirectory = parser.add(new DirectoryParameter("Target directory. " +
71 "Default is current directory.").mustExist())
74 targetImageType = parser.add(new TargetImageTypeParameter()).addAliases("-t");