1 package eu.svjatoslav.inspector.java.commandline;
4 import eu.svjatoslav.commons.cli_helper.parameter_parser.Parser;
5 import eu.svjatoslav.commons.cli_helper.parameter_parser.parameter.*;
7 public class CommandlineConfiguration {
9 public FileParameters jarFiles;
10 public StringParameter graphName;
11 private NullParameter showDebug;
12 public StringParameters whitelistGlob;
13 public StringParameters blacklistGlob;
14 public StringParameters rootClasses;
15 public NullParameter showHelp;
16 public TargetImageTypeParameter targetImageType;
17 public NullParameter keepDotFile;
18 public DirectoryParameter targetDirectory;
19 public DirectoryParameters classPaths;
20 public final boolean configurationOk;
21 public NullParameter hideOrphanedClasses;
24 public static final String DEFAULT_GRAPH_NAME = "graph";
26 public CommandlineConfiguration(String[] args) {
27 parser = buildCommandlineParameterParser();
28 configurationOk = parser.parse(args);
31 public boolean isDebug() {
32 return showDebug.isSpecified();
35 public Parser buildCommandlineParameterParser() {
36 Parser parser = new Parser();
38 jarFiles = parser.add(
39 new FileParameters("JAR file(s) to render."))
43 classPaths = parser.add(
44 new DirectoryParameters("Classpath directories"))
48 graphName = parser.add(
49 new StringParameter("Graph name. (default: \"" + DEFAULT_GRAPH_NAME + "\")", DEFAULT_GRAPH_NAME))
52 showDebug = parser.add(
53 new NullParameter("Show debug info."))
54 .addAliases("--debug");
56 showHelp = parser.add(new NullParameter("Show commandline usage help."))
57 .addAliases("-h", "--help");
59 keepDotFile = parser.add(
60 new NullParameter("Keep dot file."))
63 hideOrphanedClasses = parser.add(
64 new NullParameter("Hide orphaned classes."))
67 whitelistGlob = parser.add(
68 new StringParameters("Whitelist glob(s)."))
71 blacklistGlob = parser.add(
72 new StringParameters("Blacklist glob(s)."))
75 rootClasses = parser.add(
76 new StringParameters("root class(es)."))
80 targetDirectory = parser.add(new DirectoryParameter("Target directory. " +
81 "Default is current directory.").mustExist())
84 targetImageType = parser.add(new TargetImageTypeParameter()).addAliases("-t");