JAL-629 Ensure precedence of named linked ID values over wildcard linked ID set value...
[jalview.git] / src / jalview / bin / argparser / ArgParser.java
index 2a3272c..e6bd917 100644 (file)
@@ -988,72 +988,6 @@ public class ArgParser
             argIndex, doSubs);
   }
 
-  private void NOTaddValue(String linkedId, ArgValues avs, SubVals sv,
-          String v, int argIndex, boolean doSubs)
-  {
-    Arg a = avs.arg();
-
-    List<String> wildcardLinkedIds = null;
-    if (a.hasOption(Opt.ALLOWALL))
-    {
-      switch (linkedId)
-      {
-      case MATCHALLLINKEDIDS:
-        wildcardLinkedIds = getLinkedIds();
-        break;
-      case MATCHOPENEDLINKEDIDS:
-        wildcardLinkedIds = this.storedLinkedIds;
-        break;
-      }
-    }
-
-    // if we're not a wildcard linkedId and the arg is marked to be stored, add
-    // to storedLinkedIds
-    if (linkedId != null && wildcardLinkedIds == null
-            && a.hasOption(Opt.STORED)
-            && !storedLinkedIds.contains(linkedId))
-    {
-      storedLinkedIds.add(linkedId);
-    }
-
-    // if we are a wildcard linkedId, apply the arg and value to all appropriate
-    // linkedIds
-    if (wildcardLinkedIds != null)
-    {
-      for (String id : wildcardLinkedIds)
-      {
-        // skip incorrectly stored wildcard ids!
-        if (id == null || MATCHALLLINKEDIDS.equals(id)
-                || MATCHOPENEDLINKEDIDS.equals(id))
-          continue;
-        ArgValuesMap avm = linkedArgs.get(id);
-        if (a.hasOption(Opt.REQUIREINPUT)
-                && !avm.hasArgWithOption(Opt.INPUT))
-          continue;
-        ArgValues tavs = avm.getOrCreateArgValues(a);
-        String val = v;
-        if (doSubs)
-        {
-          val = makeSubstitutions(v, id);
-          sv = new SubVals(sv, val);
-        }
-        tavs.addValue(sv, val, argIndex);
-        finaliseStoringArgValue(id, tavs);
-      }
-    }
-    else
-    {
-      String val = v;
-      if (doSubs)
-      {
-        val = makeSubstitutions(v, linkedId);
-        sv = new SubVals(sv, val);
-      }
-      avs.addValue(sv, val, argIndex);
-      finaliseStoringArgValue(linkedId, avs);
-    }
-  }
-
   private void addValue(String linkedId, ArgValues avs, String v,
           int argIndex, boolean doSubs)
   {
@@ -1061,70 +995,6 @@ public class ArgParser
             argIndex, doSubs);
   }
 
-  // the following methods look for the "*" linkedId and add the argvalue to all
-  // linkedId ArgValues if it does.
-  private void NOTaddValue(String linkedId, ArgValues avs, String v,
-          int argIndex, boolean doSubs)
-  {
-    Arg a = avs.arg();
-    if (linkedId != null && a.hasOption(Opt.STORED)
-            && !storedLinkedIds.contains(linkedId))
-    {
-      storedLinkedIds.add(linkedId);
-    }
-
-    List<String> wildcardLinkedIds = null;
-    if (a.hasOption(Opt.ALLOWALL))
-    {
-      switch (linkedId)
-      {
-      case MATCHALLLINKEDIDS:
-        wildcardLinkedIds = getLinkedIds();
-        break;
-      case MATCHOPENEDLINKEDIDS:
-        wildcardLinkedIds = this.storedLinkedIds;
-        break;
-      }
-    }
-
-    // if we're not a wildcard linkedId and the arg is marked to be stored, add
-    // to storedLinkedIds
-    if (linkedId != null && wildcardLinkedIds == null
-            && a.hasOption(Opt.STORED)
-            && !storedLinkedIds.contains(linkedId))
-    {
-      storedLinkedIds.add(linkedId);
-    }
-
-    // if we are a wildcard linkedId, apply the arg and value to all appropriate
-    // linkedIds
-    if (wildcardLinkedIds != null)
-    {
-      for (String id : wildcardLinkedIds)
-      {
-        // skip incorrectly stored wildcard ids!
-        if (id == null || MATCHALLLINKEDIDS.equals(id)
-                || MATCHOPENEDLINKEDIDS.equals(id))
-          continue;
-        ArgValuesMap avm = linkedArgs.get(id);
-        // don't set an output if there isn't an input
-        if (a.hasOption(Opt.REQUIREINPUT)
-                && !avm.hasArgWithOption(Opt.INPUT))
-          continue;
-        ArgValues tavs = avm.getOrCreateArgValues(a);
-        String val = doSubs ? makeSubstitutions(v, id) : v;
-        tavs.addValue(val, argIndex);
-        finaliseStoringArgValue(id, tavs);
-      }
-    }
-    else
-    {
-      String val = doSubs ? makeSubstitutions(v, linkedId) : v;
-      avs.addValue(val, argIndex);
-      finaliseStoringArgValue(linkedId, avs);
-    }
-  }
-
   private void setBoolean(String linkedId, ArgValues avs, boolean b,
           int argIndex)
   {
@@ -1132,184 +1002,18 @@ public class ArgParser
             argIndex, false);
   }
 
-  private void NOTsetBoolean(String linkedId, ArgValues avs, boolean b,
-          int argIndex)
-  {
-    Arg a = avs.arg();
-    if (linkedId != null && a.hasOption(Opt.STORED)
-            && !storedLinkedIds.contains(linkedId))
-    {
-      storedLinkedIds.add(linkedId);
-    }
-
-    List<String> wildcardLinkedIds = null;
-    if (a.hasOption(Opt.ALLOWALL))
-    {
-      switch (linkedId)
-      {
-      case MATCHALLLINKEDIDS:
-        wildcardLinkedIds = getLinkedIds();
-        break;
-      case MATCHOPENEDLINKEDIDS:
-        wildcardLinkedIds = this.storedLinkedIds;
-        break;
-      }
-    }
-
-    // if we're not a wildcard linkedId and the arg is marked to be stored, add
-    // to storedLinkedIds
-    if (linkedId != null && wildcardLinkedIds == null
-            && a.hasOption(Opt.STORED)
-            && !storedLinkedIds.contains(linkedId))
-    {
-      storedLinkedIds.add(linkedId);
-    }
-
-    // if we are a wildcard linkedId, apply the arg and value to all appropriate
-    // linkedIds
-    if (wildcardLinkedIds != null)
-    {
-      for (String id : wildcardLinkedIds)
-      {
-        // skip incorrectly stored wildcard ids!
-        if (id == null || MATCHALLLINKEDIDS.equals(id)
-                || MATCHOPENEDLINKEDIDS.equals(id))
-          continue;
-        ArgValuesMap avm = linkedArgs.get(id);
-        if (a.hasOption(Opt.REQUIREINPUT)
-                && !avm.hasArgWithOption(Opt.INPUT))
-          continue;
-        ArgValues tavs = avm.getOrCreateArgValues(a);
-        tavs.setBoolean(b, argIndex);
-        finaliseStoringArgValue(id, tavs);
-      }
-    }
-    else
-    {
-      avs.setBoolean(b, argIndex);
-      finaliseStoringArgValue(linkedId, avs);
-    }
-  }
-
   private void setNegated(String linkedId, ArgValues avs, boolean b)
   {
     this.argValueOperation(Op.SETNEGATED, linkedId, avs, null, null, b, 0,
             false);
   }
 
-  private void NOTsetNegated(String linkedId, ArgValues avs, boolean b)
-  {
-    Arg a = avs.arg();
-    if (linkedId != null && a.hasOption(Opt.STORED)
-            && !storedLinkedIds.contains(linkedId))
-    {
-      storedLinkedIds.add(linkedId);
-    }
-
-    List<String> wildcardLinkedIds = null;
-    if (a.hasOption(Opt.ALLOWALL))
-    {
-      switch (linkedId)
-      {
-      case MATCHALLLINKEDIDS:
-        wildcardLinkedIds = getLinkedIds();
-        break;
-      case MATCHOPENEDLINKEDIDS:
-        wildcardLinkedIds = this.storedLinkedIds;
-        break;
-      }
-    }
-
-    // if we're not a wildcard linkedId and the arg is marked to be stored, add
-    // to storedLinkedIds
-    if (linkedId != null && wildcardLinkedIds == null
-            && a.hasOption(Opt.STORED)
-            && !storedLinkedIds.contains(linkedId))
-    {
-      storedLinkedIds.add(linkedId);
-    }
-
-    // if we are a wildcard linkedId, apply the arg and value to all appropriate
-    // linkedIds
-    if (wildcardLinkedIds != null)
-    {
-      for (String id : wildcardLinkedIds)
-      {
-        // skip incorrectly stored wildcard ids!
-        if (id == null || MATCHALLLINKEDIDS.equals(id)
-                || MATCHOPENEDLINKEDIDS.equals(id))
-          continue;
-        ArgValuesMap avm = linkedArgs.get(id);
-        if (a.hasOption(Opt.REQUIREINPUT)
-                && !avm.hasArgWithOption(Opt.INPUT))
-          continue;
-        ArgValues tavs = avm.getOrCreateArgValues(a);
-        tavs.setNegated(b);
-      }
-    }
-    else
-    {
-      avs.setNegated(b);
-    }
-  }
-
   private void incrementCount(String linkedId, ArgValues avs)
   {
     this.argValueOperation(Op.INCREMENTCOUNT, linkedId, avs, null, null,
             false, 0, false);
   }
 
-  private void NOTincrementCount(String linkedId, ArgValues avs)
-  {
-    Arg a = avs.arg();
-
-    List<String> wildcardLinkedIds = null;
-    if (a.hasOption(Opt.ALLOWALL))
-    {
-      switch (linkedId)
-      {
-      case MATCHALLLINKEDIDS:
-        wildcardLinkedIds = getLinkedIds();
-        break;
-      case MATCHOPENEDLINKEDIDS:
-        wildcardLinkedIds = this.storedLinkedIds;
-        break;
-      }
-    }
-
-    // if we're not a wildcard linkedId and the arg is marked to be stored, add
-    // to storedLinkedIds
-    if (linkedId != null && wildcardLinkedIds == null
-            && a.hasOption(Opt.STORED)
-            && !storedLinkedIds.contains(linkedId))
-    {
-      storedLinkedIds.add(linkedId);
-    }
-
-    // if we are a wildcard linkedId, apply the arg and value to all appropriate
-    // linkedIds
-    if (wildcardLinkedIds != null)
-    {
-      for (String id : wildcardLinkedIds)
-      {
-        // skip incorrectly stored wildcard ids!
-        if (id == null || MATCHALLLINKEDIDS.equals(id)
-                || MATCHOPENEDLINKEDIDS.equals(id))
-          continue;
-        ArgValuesMap avm = linkedArgs.get(id);
-        if (a.hasOption(Opt.REQUIREINPUT)
-                && !avm.hasArgWithOption(Opt.INPUT))
-          continue;
-        ArgValues tavs = avm.getOrCreateArgValues(a);
-        tavs.incrementCount();
-      }
-    }
-    else
-    {
-      avs.incrementCount();
-    }
-  }
-
   private enum Op
   {
     ADDVALUE, SETBOOLEAN, SETNEGATED, INCREMENTCOUNT
@@ -1375,7 +1079,7 @@ public class ArgParser
               val = makeSubstitutions(v, id);
               sv = new SubVals(sv, val);
             }
-            tavs.addValue(sv, val, argIndex);
+            tavs.addValue(sv, val, argIndex, true);
           }
           else
           {
@@ -1383,18 +1087,18 @@ public class ArgParser
             {
               val = makeSubstitutions(v, id);
             }
-            tavs.addValue(val, argIndex);
+            tavs.addValue(val, argIndex, true);
           }
           finaliseStoringArgValue(id, tavs);
           break;
 
         case SETBOOLEAN:
-          tavs.setBoolean(b, argIndex);
+          tavs.setBoolean(b, argIndex, true);
           finaliseStoringArgValue(id, tavs);
           break;
 
         case SETNEGATED:
-          tavs.setNegated(b);
+          tavs.setNegated(b, true);
           break;
 
         case INCREMENTCOUNT:
@@ -1421,7 +1125,7 @@ public class ArgParser
             val = makeSubstitutions(v, linkedId);
             sv = new SubVals(sv, val);
           }
-          avs.addValue(sv, val, argIndex);
+          avs.addValue(sv, val, argIndex, false);
         }
         else
         {
@@ -1429,18 +1133,18 @@ public class ArgParser
           {
             val = makeSubstitutions(v, linkedId);
           }
-          avs.addValue(val, argIndex);
+          avs.addValue(val, argIndex, false);
         }
         finaliseStoringArgValue(linkedId, avs);
         break;
 
       case SETBOOLEAN:
-        avs.setBoolean(b, argIndex);
+        avs.setBoolean(b, argIndex, false);
         finaliseStoringArgValue(linkedId, avs);
         break;
 
       case SETNEGATED:
-        avs.setNegated(b);
+        avs.setNegated(b, false);
         break;
 
       case INCREMENTCOUNT: