--- /dev/null
+package eu.svjatoslav.inspector.java.commandline;
+
+import eu.svjatoslav.commons.commandline.parameterparser.Parser;
+import eu.svjatoslav.commons.commandline.parameterparser.parameter.*;
+
+public class CommandlineConfiguration {
+
+ public FileParameters jarFiles;
+ public StringParameter graphName;
+ private NullParameter showDebug;
+ public StringParameters whitelistGlob;
+ public StringParameters blacklistGlob;
+ public TargetImageTypeParameter targetImageType;
+ public NullParameter keepDotFile;
+ public DirectoryParameter targetDirectory;
+ public final boolean configurationOk;
+ public NullParameter hideOrphanedClasses;
+
+ public CommandlineConfiguration(String args[]) {
+ Parser parser = buildCommandlineParameterParser();
+ configurationOk = parser.parse(args);
+ if (!configurationOk)
+ parser.showHelp();
+ }
+
+ public boolean isDebug() {
+ return showDebug.isSpecified();
+ }
+
+ public Parser buildCommandlineParameterParser() {
+ Parser parser = new Parser();
+
+ jarFiles = parser.add(
+ new FileParameters("JAR file(s) to render."))
+ .mustExist()
+ .addAliases("-j");
+
+ graphName = parser.add(
+ new StringParameter("Graph name."))
+ .setMandatory()
+ .addAliases("-n");
+
+ showDebug = parser.add(
+ new NullParameter("Show debug info."))
+ .addAliases("--debug");
+
+ keepDotFile = parser.add(
+ new NullParameter("Keep dot file."))
+ .addAliases("-k");
+
+ hideOrphanedClasses = parser.add(
+ new NullParameter("Hide orphaned classes."))
+ .addAliases("-h");
+
+ whitelistGlob = parser.add(
+ new StringParameters("Whitelist glob(s)."))
+ .addAliases("-w");
+
+ blacklistGlob = parser.add(
+ new StringParameters("Blacklist glob(s)."))
+ .addAliases("-b");
+
+ targetDirectory = parser.add(new DirectoryParameter("Target directory. " +
+ "Default is current directory.").mustExist())
+ .addAliases("-d");
+
+ targetImageType = parser.add(new TargetImageTypeParameter()).addAliases("-t");
+
+ return parser;
+ }
+
+}