JWS-86 made few changes to text, plus couple of links were faulty so changed ClustalW...
[jabaws.git] / runner / compbio / runner / OptionCombinator.java
index a19cafa..86bf35d 100644 (file)
@@ -48,164 +48,149 @@ import compbio.util.annotation.Immutable;
 @Immutable\r
 public final class OptionCombinator {\r
 \r
-    private static Logger log = Logger.getLogger(OptionCombinator.class);\r
-    private static final String MINVALUE = "-100";\r
-    private static final String MAXVALUE = "100";\r
-\r
-    private static final Random rand = new Random();\r
-    private final RunnerConfig<? extends Executable<?>> rconfig;\r
+       private static Logger log = Logger.getLogger(OptionCombinator.class);\r
+       private static final String MINVALUE = "-100";\r
+       private static final String MAXVALUE = "100";\r
+\r
+       private static final Random rand = new Random();\r
+       private final RunnerConfig<? extends Executable<?>> rconfig;\r
+\r
+       public OptionCombinator(RunnerConfig<? extends Executable<?>> rconfig) {\r
+               if (rconfig == null) {\r
+                       throw new IllegalArgumentException("RunnerConfig must be provided!");\r
+               }\r
+               this.rconfig = rconfig;\r
+       }\r
 \r
-    public OptionCombinator(RunnerConfig<? extends Executable<?>> rconfig) {\r
-       if (rconfig == null) {\r
-           throw new IllegalArgumentException("RunnerConfig must be provided!");\r
+       public List<String> optionsToCommandString(List<Option<?>> options) {\r
+               List<String> strOptions = new ArrayList<String>();\r
+               for (Option<?> option : options) {\r
+                       strOptions.add(optionToCommandString(option));\r
+               }\r
+               return strOptions;\r
        }\r
-       this.rconfig = rconfig;\r
-    }\r
 \r
-    public List<String> optionsToCommandString(List<Option<?>> options) {\r
-       List<String> strOptions = new ArrayList<String>();\r
-       for (Option<?> option : options) {\r
-           strOptions.add(optionToCommandString(option));\r
+       public List<String> getOptionsAtRandom() {\r
+               return optionsToCommandString(getAllOptions());\r
        }\r
-       return strOptions;\r
-    }\r
-\r
-    public List<String> getOptionsAtRandom() {\r
-       return optionsToCommandString(getAllOptions());\r
-    }\r
-\r
-    public List<Option<?>> getAllOptions() {\r
-       return new ArrayList<Option<?>>(rconfig.getOptions());\r
-    }\r
-\r
-    static String optionToCommandString(Option<?> option) {\r
-       int size = option.getOptionNames().size();\r
-       int idx = rand.nextInt(size);\r
-       return option.getOptionNames().get(idx);\r
-    }\r
-\r
-    public List<Parameter<?>> getAllParameters() {\r
-       List<Parameter<?>> args = new ArrayList<Parameter<?>>();\r
-       for (Parameter<?> prm : rconfig.getParameters()) {\r
-           // Make sure there is a default value linked to the parameter to use\r
-           // later\r
-           // prm.setDefaultValue(getValue(prm));\r
-           args.add(prm);\r
+\r
+       public List<Option<?>> getAllOptions() {\r
+               return new ArrayList<Option<?>>(rconfig.getOptions());\r
        }\r
-       return args;\r
-    }\r
 \r
-    public List<String> argumentsToCommandString(\r
-           List<? extends Option<?>> arguments) {\r
-       return argumentsToCommandString(arguments, rconfig);\r
-    }\r
+       static String optionToCommandString(Option<?> option) {\r
+               int size = option.getOptionNames().size();\r
+               int idx = rand.nextInt(size);\r
+               return option.getOptionNames().get(idx);\r
+       }\r
 \r
-    public static List<String> argumentsToCommandString(\r
-           List<? extends Option<?>> arguments,\r
-           RunnerConfig<? extends Executable<?>> rconfig) {\r
+       public List<Parameter<?>> getAllParameters() {\r
+               List<Parameter<?>> args = new ArrayList<Parameter<?>>();\r
+               for (Parameter<?> prm : rconfig.getParameters()) {\r
+                       // Make sure there is a default value linked to the parameter to use later\r
+                       // prm.setDefaultValue(getValue(prm));\r
+                       args.add(prm);\r
+               }\r
+               return args;\r
+       }\r
 \r
-       if (arguments == null || rconfig == null) {\r
-           throw new NullPointerException(\r
-                   "Arguments and RunnerConfig objects must be provided!");\r
+       public List<String> argumentsToCommandString(List<? extends Option<?>> arguments) {\r
+               return argumentsToCommandString(arguments, rconfig);\r
        }\r
 \r
-       List<String> command = new ArrayList<String>();\r
-       for (Option<?> option : arguments) {\r
-\r
-           if (option instanceof Parameter<?>) {\r
-               Parameter<?> prm = (Parameter<?>) option;\r
-               command.add(prm.getOptionName() + rconfig.getPrmSeparator()\r
-                       + getValue(prm));\r
-               log.trace("Setting parameter " + prm);\r
-           } else {\r
-               log.trace("Setting option " + option);\r
-               command.add(optionToCommandString(option));\r
-           }\r
+       public static List<String> argumentsToCommandString(List<? extends Option<?>> arguments,RunnerConfig<? extends Executable<?>> rconfig) {\r
+               if (arguments == null || rconfig == null) {\r
+                       throw new NullPointerException("Arguments and RunnerConfig objects must be provided!");\r
+               }\r
+\r
+               List<String> command = new ArrayList<String>();\r
+               for (Option<?> option : arguments) {\r
+                       if (option instanceof Parameter<?>) {\r
+                               Parameter<?> prm = (Parameter<?>) option;\r
+                               command.add(prm.getOptionName() + rconfig.getPrmSeparator() + getValue(prm));\r
+                               log.trace("Setting parameter " + prm);\r
+                       } else {\r
+                               log.trace("Setting option " + option);\r
+                               command.add(optionToCommandString(option));\r
+                       }\r
+               }\r
+               return command;\r
        }\r
-       return command;\r
-    }\r
-\r
-    public List<String> parametersToCommandString(\r
-           List<Parameter<?>> orderedList, Map<Parameter<?>, String> prmValue) {\r
-       List<String> args = new ArrayList<String>();\r
-       for (Parameter<?> param : orderedList) {\r
-           args.add(param.getOptionName() + rconfig.getPrmSeparator()\r
-                   + prmValue.get(param));\r
+\r
+       public List<String> parametersToCommandString(List<Parameter<?>> orderedList, Map<Parameter<?>, String> prmValue) {\r
+               List<String> args = new ArrayList<String>();\r
+               for (Parameter<?> param : orderedList) {\r
+                       args.add(param.getOptionName() + rconfig.getPrmSeparator() + prmValue.get(param));\r
+               }\r
+               return args;\r
        }\r
-       return args;\r
-    }\r
 \r
-    public Map<Parameter<?>, String> getAllConstrainedParametersWithBorderValues(\r
-           boolean minValue) {\r
-       Map<Parameter<?>, String> paramValue = new HashMap<Parameter<?>, String>();\r
-       for (Parameter<?> prm : rconfig.getParameters()) {\r
-           ValueConstrain vc = prm.getValidValue();\r
-           if (vc == null) {\r
-               continue;\r
-           }\r
-           String value = "";\r
-           if (minValue) {\r
-               value = getLowBorderValue(prm);\r
-           } else {\r
-               value = getUpperBorderValue(prm);\r
-           }\r
-           paramValue.put(prm, value);\r
+       public Map<Parameter<?>, String> getAllConstrainedParametersWithBorderValues( boolean minValue) {\r
+               Map<Parameter<?>, String> paramValue = new HashMap<Parameter<?>, String>();\r
+               for (Parameter<?> prm : rconfig.getParameters()) {\r
+                       ValueConstrain vc = prm.getValidValue();\r
+                       if (vc == null) {\r
+                               continue;\r
+                       }\r
+                       String value =  getUpperBorderValue(prm);\r
+                       if (minValue) {\r
+                               value = getLowBorderValue(prm);\r
+                       }\r
+                       paramValue.put(prm, value);\r
+               }\r
+               return paramValue;\r
        }\r
-       return paramValue;\r
-    }\r
 \r
-    public Map<Parameter<?>, String> getAllConstrainedParametersWithRandomValues() {\r
+       public Map<Parameter<?>, String> getAllConstrainedParametersWithRandomValues() {\r
        Map<Parameter<?>, String> paramValue = new HashMap<Parameter<?>, String>();\r
-       for (Parameter<?> prm : rconfig.getParameters()) {\r
-           ValueConstrain vc = prm.getValidValue();\r
-           if (vc == null) {\r
-               continue;\r
-           }\r
-           paramValue.put(prm, getRandomValue(prm));\r
+               for (Parameter<?> prm : rconfig.getParameters()) {\r
+                       ValueConstrain vc = prm.getValidValue();\r
+                       if (vc == null) {\r
+                               continue;\r
+                       }\r
+                       paramValue.put(prm, getRandomValue(prm));\r
+               }\r
+               return paramValue;\r
        }\r
-       return paramValue;\r
-    }\r
 \r
-    String getLowBorderValue(Parameter<?> param) {\r
-       assert param != null;\r
-       ValueConstrain vc = param.getValidValue();\r
-       Number minVal = vc.getMin();\r
-       return minVal == null ? MINVALUE : minVal.toString();\r
-    }\r
+       String getLowBorderValue(Parameter<?> param) {\r
+               assert param != null;\r
+               ValueConstrain vc = param.getValidValue();\r
+               Number minVal = vc.getMin();\r
+               return minVal == null ? MINVALUE : minVal.toString();\r
+       }\r
 \r
-    String getUpperBorderValue(Parameter<?> param) {\r
-       assert param != null;\r
-       ValueConstrain vc = param.getValidValue();\r
-       Number maxVal = vc.getMax();\r
-       return maxVal == null ? MAXVALUE : maxVal.toString();\r
-    }\r
+       String getUpperBorderValue(Parameter<?> param) {\r
+               assert param != null;\r
+               ValueConstrain vc = param.getValidValue();\r
+               Number maxVal = vc.getMax();\r
+               return maxVal == null ? MAXVALUE : maxVal.toString();\r
+       }\r
 \r
-    String getRandomValue(Parameter<?> param) {\r
-       assert param != null;\r
-       String low = getLowBorderValue(param);\r
-       String high = getUpperBorderValue(param);\r
-       ValueConstrain vc = param.getValidValue();\r
+       String getRandomValue(Parameter<?> param) {\r
+               assert param != null;\r
+               String low = getLowBorderValue(param);\r
+               String high = getUpperBorderValue(param);\r
+               ValueConstrain vc = param.getValidValue();\r
 \r
-       if (vc.getType() == ValueConstrain.Type.Float) {\r
-           return new Double(Util.getRandomNumber(Double.parseDouble(low),\r
-                   Double.parseDouble(high))).toString();\r
+               if (vc.getType() == ValueConstrain.Type.Float) {\r
+                       return new Double(Util.getRandomNumber(Double.parseDouble(low), Double.parseDouble(high))).toString();\r
+               }\r
+               return new Integer(Util.getRandomNumber(Integer.parseInt(low), Integer.parseInt(high))).toString();\r
        }\r
-       return new Integer(Util.getRandomNumber(Integer.parseInt(low), Integer\r
-               .parseInt(high))).toString();\r
-    }\r
 \r
-    static String getValue(Parameter<?> param) {\r
+       static String getValue(Parameter<?> param) {\r
        assert param != null;\r
        if (param.getDefaultValue() != null) {\r
-           log.trace("Returning default value: " + param.getDefaultValue());\r
-           return param.getDefaultValue();\r
+               log.trace("Returning default value: " + param.getDefaultValue());\r
+               return param.getDefaultValue();\r
        } else {\r
-           // Some parameters do not have default values e.g. seq type - nuc or\r
-           // protein\r
-           List<String> passValues = param.getPossibleValues();\r
-           int idx = rand.nextInt(passValues.size());\r
-           log.trace("Returning random value: " + passValues.get(idx));\r
-           return passValues.get(idx);\r
+               // Some parameters do not have default values e.g. seq type - nuc or protein\r
+               List<String> passValues = param.getPossibleValues();\r
+               int idx = rand.nextInt(passValues.size());\r
+               log.trace("Returning random value: " + passValues.get(idx));\r
+               return passValues.get(idx);\r
+               }\r
        }\r
-    }\r
+\r
 }\r