private BootstrapArgs(List<String> args)
{
- init(args);
+ parse(args);
}
- private void init(List<String> args)
+ private void parse(List<String> args)
{
if (args == null)
return;
String val = null;
if (arg.startsWith(ArgParser.DOUBLEDASH))
{
+ // remove "--"
+ System.out.println("###### BOOTSTRAP: '" + arg + "'");
+ arg = arg.substring(ArgParser.DOUBLEDASH.length());
int equalPos = arg.indexOf('=');
- if (equalPos > -1)
+ if (equalPos > -1
+ && ArgParser.argMap.containsKey(arg.substring(0, equalPos)))
{
- argName = arg.substring(ArgParser.DOUBLEDASH.length(), equalPos);
+ argName = arg.substring(0, equalPos);
val = arg.substring(equalPos + 1);
}
- else
+ // check for boolean prepended by "no"
+ else if (arg.startsWith(ArgParser.NEGATESTRING)
+ && ArgParser.argMap.containsKey(
+ arg.substring(ArgParser.NEGATESTRING.length())))
+ {
+ System.out.println("###### BOOTSTRAP IN NEGATESTRING");
+ argName = arg.substring(ArgParser.NEGATESTRING.length());
+ val = "false";
+ }
+ else if (ArgParser.argMap.containsKey(arg))
{
- argName = arg.substring(ArgParser.DOUBLEDASH.length());
+ argName = arg;
val = "true";
}
}
else
{
+ System.err.println(
+ "###### Adding '" + a.getName() + "' with '" + val + "'");
add(a, val);
}
}
List<String> aL = bootstrapArgMap.get(a);
return (aL == null || aL.size() == 0) ? null : aL.get(0);
}
+
+ public boolean getBoolean(Arg a)
+ {
+ if (!bootstrapArgMap.containsKey(a)
+ || !(a.hasOption(Opt.BOOLEAN) || a.hasOption(Opt.UNARY)))
+ return false;
+ return Boolean.parseBoolean(get(a));
+ }
}