JAL-629 Opening files in new windows. not working yet
[jalview.git] / src / jalview / bin / argparser / BootstrapArgs.java
index bcb86f9..49e8686 100644 (file)
@@ -22,10 +22,10 @@ public class BootstrapArgs
 
   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;
@@ -36,15 +36,28 @@ public class BootstrapArgs
       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";
         }
 
@@ -73,6 +86,8 @@ public class BootstrapArgs
         }
         else
         {
+          System.err.println(
+                  "###### Adding '" + a.getName() + "' with '" + val + "'");
           add(a, val);
         }
       }
@@ -140,4 +155,12 @@ public class BootstrapArgs
     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));
+  }
 }