Maintenance: updated dependency library version. Fixed Maven repository URL.
[javainspect.git] / src / main / java / eu / svjatoslav / inspector / java / commandline / CommandlineConfiguration.java
1 package eu.svjatoslav.inspector.java.commandline;
2
3
4 import eu.svjatoslav.commons.cli_helper.parameter_parser.Parser;
5 import eu.svjatoslav.commons.cli_helper.parameter_parser.parameter.*;
6
7 public class CommandlineConfiguration {
8
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;
22     Parser parser;
23
24     public static final String DEFAULT_GRAPH_NAME = "graph";
25
26     public CommandlineConfiguration(String[] args) {
27         parser = buildCommandlineParameterParser();
28         configurationOk = parser.parse(args);
29     }
30
31     public boolean isDebug() {
32         return showDebug.isSpecified();
33     }
34
35     public Parser buildCommandlineParameterParser() {
36         Parser parser = new Parser();
37
38         jarFiles = parser.add(
39                 new FileParameters("JAR file(s) to render."))
40                 .mustExist()
41                 .addAliases("-j");
42
43         classPaths = parser.add(
44                         new DirectoryParameters("Classpath directories"))
45                 .mustExist()
46                 .addAliases("-c");
47
48         graphName = parser.add(
49                 new StringParameter("Graph name. (default: \"" + DEFAULT_GRAPH_NAME + "\")", DEFAULT_GRAPH_NAME))
50                 .addAliases("-n");
51
52         showDebug = parser.add(
53                 new NullParameter("Show debug info."))
54                 .addAliases("--debug");
55
56         showHelp = parser.add(new NullParameter("Show commandline usage help."))
57                 .addAliases("-h", "--help");
58
59         keepDotFile = parser.add(
60                 new NullParameter("Keep dot file."))
61                 .addAliases("-k");
62
63         hideOrphanedClasses = parser.add(
64                 new NullParameter("Hide orphaned classes."))
65                 .addAliases("-ho");
66
67         whitelistGlob = parser.add(
68                 new StringParameters("Whitelist glob(s)."))
69                 .addAliases("-w");
70
71         blacklistGlob = parser.add(
72                 new StringParameters("Blacklist glob(s)."))
73                 .addAliases("-b");
74
75         rootClasses = parser.add(
76                         new StringParameters("root class(es)."))
77                 .addAliases("-r");
78
79
80         targetDirectory = parser.add(new DirectoryParameter("Target directory. " +
81                 "Default is current directory.").mustExist())
82                 .addAliases("-d");
83
84         targetImageType = parser.add(new TargetImageTypeParameter()).addAliases("-t");
85
86         return parser;
87     }
88
89 }