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 TargetImageTypeParameter targetImageType;
14 public NullParameter keepDotFile;
15 public DirectoryParameter targetDirectory;
16 public final boolean configurationOk;
17 public NullParameter hideOrphanedClasses;
19 public static final String DEFAULT_GRAPH_NAME = "graph";
21 public CommandlineConfiguration(String[] args) {
22 Parser parser = buildCommandlineParameterParser();
23 configurationOk = parser.parse(args);
28 public boolean isDebug() {
29 return showDebug.isSpecified();
32 public Parser buildCommandlineParameterParser() {
33 Parser parser = new Parser();
35 jarFiles = parser.add(
36 new FileParameters("JAR file(s) to render."))
40 graphName = parser.add(
41 new StringParameter("Graph name. (default: \"" + DEFAULT_GRAPH_NAME + "\")", DEFAULT_GRAPH_NAME))
44 showDebug = parser.add(
45 new NullParameter("Show debug info."))
46 .addAliases("--debug");
48 keepDotFile = parser.add(
49 new NullParameter("Keep dot file."))
52 hideOrphanedClasses = parser.add(
53 new NullParameter("Hide orphaned classes."))
56 whitelistGlob = parser.add(
57 new StringParameters("Whitelist glob(s)."))
60 blacklistGlob = parser.add(
61 new StringParameters("Blacklist glob(s)."))
64 targetDirectory = parser.add(new DirectoryParameter("Target directory. " +
65 "Default is current directory.").mustExist())
68 targetImageType = parser.add(new TargetImageTypeParameter()).addAliases("-t");