public static String getOptionStringValue(IConfiguration config, String sOptionId) { IOption option = config.getToolChain().getOptionBySuperClassId(sOptionId); String sReturn = null; if (option != null) { try { sReturn = option.getStringValue().trim(); } catch (BuildException e) { Activator.log(e); } } else { Activator.log(sOptionId + " not found"); } return sReturn; }
private void doTestEnablement(IBuildObject cfg) { ITool tool = getTool(cfg, "enablement.this.child_1.2.3"); ITool otherTool = getTool(cfg, "enablement.other"); ITool tool2 = getTool(cfg, "enablement.this.child.2_1.2.3"); // IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project); IOption thisBoolean = tool.getOptionBySuperClassId("this.boolean"); IOption thisString = tool.getOptionBySuperClassId("this.string"); IOption thisEnum = tool.getOptionBySuperClassId("this.enum"); IOption otherString = otherTool.getOptionBySuperClassId("other.string"); IOption otherBoolean = otherTool.getOptionBySuperClassId("other.boolean"); try { IOption option = tool.getOptionBySuperClassId("enablement.command.c1"); assertEquals(option.getCommand(), "c1"); assertEquals(option.getCommandFalse(), "cmdF"); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.command.c2"); assertEquals(option.getCommand(), "c2"); assertEquals(option.getCommandFalse(), "cmdF"); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.commandFalse.c1"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "c1"); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.commandFalse.c2"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "c2"); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.command.c1.commandFalse.cF1"); assertEquals(option.getCommand(), "c1"); assertEquals(option.getCommandFalse(), "cF1"); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.command.cmd.commandFalse.cmdF"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.command.c1.commandFalse.cmdF"); assertEquals(option.getCommand(), "c1"); assertEquals(option.getCommandFalse(), "cmdF"); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.command.cmd.commandFalse.cF1"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cF1"); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.ui.en"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cF1"); assertFalse(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.ui.vis"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cF1"); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.cmd.us"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.cmdUs.or.uiVis"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cF1"); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.uiEn.or.uiVis"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cF1"); assertFalse(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.all"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cF1"); assertFalse(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.all.ac.vh"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cF1"); setEnablement(false, false, false); assertFalse(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); setEnablement(false, true, false); assertFalse(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); setEnablement(false, false, true); assertFalse(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); setEnablement(true, false, false); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); setEnablement(false, false, false); option = tool.getOptionBySuperClassId("enablement.all.cF1.ac.vh"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cF1"); assertFalse(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); setEnablement(true, false, true); option = tool.getOptionBySuperClassId("enablement.all.cF.cmdF"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.all.cF.cF1"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cF1"); assertFalse(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("this.boolean"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.checkOpt.all.Q.this.boolean.True"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertEquals( thisBoolean.getBooleanValue() == true, option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertEquals( thisBoolean.getBooleanValue() == true, option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertEquals( thisBoolean.getBooleanValue() == true, option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.checkOpt.all.Q.this.boolean.False"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertEquals( thisBoolean.getBooleanValue() == false, option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertEquals( thisBoolean.getBooleanValue() == false, option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertEquals( thisBoolean.getBooleanValue() == false, option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.checkOpt.all.Q.this.string.Q.empty"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertEquals( thisString.getStringValue().equals(""), option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertEquals( thisString.getStringValue().equals(""), option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertEquals( thisString.getStringValue().equals(""), option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.checkOpt.all.Q.this.string.Q.test a b c"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertEquals( thisString.getStringValue().equals("test a b c"), option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertEquals( thisString.getStringValue().equals("test a b c"), option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertEquals( thisString.getStringValue().equals("test a b c"), option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId( "enablement.checkOpt.all.Q.this.enum.Q.testgnu.enablement.c.optimization.level.optimize"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); String id = thisEnum.getEnumeratedId(thisEnum.getStringValue()); if (id == null) id = ""; assertEquals( id.equals("testgnu.enablement.c.optimization.level.optimize"), option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertEquals( id.equals("testgnu.enablement.c.optimization.level.optimize"), option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertEquals( id.equals("testgnu.enablement.c.optimization.level.optimize"), option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.checkOpt.all.Q.this.Q.true"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertEquals( option.getBooleanValue() == true, option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertEquals( option.getBooleanValue() == true, option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertEquals( option.getBooleanValue() == true, option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId( "enablement.checkOpt.all.Q.this.string.Q.start ${ParentVersion} stop"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertEquals( thisString.getStringValue().equals("start 1.2.3 stop"), option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertEquals( thisString.getStringValue().equals("start 1.2.3 stop"), option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertEquals( thisString.getStringValue().equals("start 1.2.3 stop"), option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.checkOpt.all.Q.this.string.Q.other.string"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertEquals( thisString.getStringValue().equals(otherString.getStringValue()), option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertEquals( thisString.getStringValue().equals(otherString.getStringValue()), option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertEquals( thisString.getStringValue().equals(otherString.getStringValue()), option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.checkOpt.all.Q.this.string.Q.other.string"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertEquals( thisString.getStringValue().equals(otherString.getStringValue()), option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertEquals( thisString.getStringValue().equals(otherString.getStringValue()), option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertEquals( thisString.getStringValue().equals(otherString.getStringValue()), option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.checkString"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.checkString.2"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.checkString.3"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.checkFalse.false"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertFalse(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.checkNot.false"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertFalse(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.checkOr.true"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.checkAnd.false"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertFalse(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertFalse(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool.getOptionBySuperClassId("enablement.checkHolder.true.1.false.2"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertTrue(option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionVisible(cfg, tool, option)); assertTrue(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool, option)); option = tool2.getOptionBySuperClassId("enablement.checkHolder.true.1.false.2"); assertEquals(option.getCommand(), "cmd"); assertEquals(option.getCommandFalse(), "cmdF"); assertFalse( option.getApplicabilityCalculator().isOptionUsedInCommandLine(cfg, tool2, option)); assertFalse(option.getApplicabilityCalculator().isOptionVisible(cfg, tool2, option)); assertFalse(option.getApplicabilityCalculator().isOptionEnabled(cfg, tool2, option)); } catch (BuildException e) { fail(e.getLocalizedMessage()); } }
/** * This method parses the string that is entered in the all build option field editor and stores * the options to the corresponding option fields. */ public void parseAllOptions() { // Get the all build options string from all options field String alloptions = getToolSettingsPrefStore().getString(ToolSettingsPrefStore.ALL_OPTIONS_ID); // list that holds the options for the option type other than // boolean,string and enumerated List<String> optionsList = new ArrayList<String>(); // additional options buffer StringBuffer addnOptions = new StringBuffer(); // split all build options string Vector<String> optionsArr = getOptionVector(alloptions); for (String optionValue : optionsArr) { boolean optionValueExist = false; // get the options for this tool IOption[] options = fTool.getOptions(); for (IOption opt : options) { // String name = opt.getId(); // check whether the option value is "STRING" type for (String s : stringOptionsMap.values()) { if (s.indexOf(optionValue) != -1) optionValueExist = true; } // check whether the option value is "OBJECTS" type for (String s : userObjsMap.values()) { if (s.indexOf(optionValue) != -1) optionValueExist = true; } // if the value does not exist in string option or user objects // option if (!optionValueExist) { try { // check whether the option value is already exist // and also change the preference store based on // the option value switch (opt.getValueType()) { case IOption.BOOLEAN: String boolCommand; boolCommand = opt.getCommand(); if (boolCommand != null && boolCommand.equals(optionValue)) { setOption(opt, true); optionValueExist = true; } boolCommand = opt.getCommandFalse(); if (boolCommand != null && boolCommand.equals(optionValue)) { setOption(opt, false); optionValueExist = true; } break; case IOption.ENUMERATED: String enumeration = ""; // $NON-NLS-1$ String[] enumValues = opt.getApplicableValues(); for (int i = 0; i < enumValues.length; i++) { if (opt.getEnumCommand(enumValues[i]).equals(optionValue)) { enumeration = enumValues[i]; optionValueExist = true; } } if (!enumeration.equals("")) // $NON-NLS-1$ setOption(opt, enumeration); break; case IOption.STRING_LIST: case IOption.INCLUDE_PATH: case IOption.PREPROCESSOR_SYMBOLS: case IOption.LIBRARIES: case IOption.INCLUDE_FILES: case IOption.LIBRARY_PATHS: case IOption.LIBRARY_FILES: case IOption.MACRO_FILES: case IOption.UNDEF_INCLUDE_PATH: case IOption.UNDEF_PREPROCESSOR_SYMBOLS: case IOption.UNDEF_INCLUDE_FILES: case IOption.UNDEF_LIBRARY_PATHS: case IOption.UNDEF_LIBRARY_FILES: case IOption.UNDEF_MACRO_FILES: if (opt.getCommand() != null && optionValue.startsWith(opt.getCommand())) { optionsList.add(optionValue); optionValueExist = true; } break; default: break; } } catch (BuildException e) { } } } // If the parsed string does not match with any previous option // values then consider this option as a additional build option if (!optionValueExist) { addnOptions.append(optionValue + ITool.WHITE_SPACE); } } // check whether some of the "STRING" option value or "OBJECTS" type // option value removed // by the user from all build option field Set<String> set = stringOptionsMap.keySet(); for (int i = 0; i < set.size(); i++) { Iterator<String> iterator = set.iterator(); while (iterator.hasNext()) { Object key = iterator.next(); String val = stringOptionsMap.get(key); if (alloptions.indexOf(val) == -1) { StringBuffer buf = new StringBuffer(); String[] vals = val.split(WHITESPACE); for (int t = 0; t < vals.length; t++) { if (alloptions.indexOf(vals[t]) != -1) buf.append(vals[t] + ITool.WHITE_SPACE); } setOption(((IOption) key), buf.toString().trim()); } } } // "OBJECTS" type Set<IOption> objSet = userObjsMap.keySet(); for (int s = 0; s < objSet.size(); s++) { for (IOption op : objSet) { String val = userObjsMap.get(op); ArrayList<String> list = new ArrayList<String>(); for (String v : parseString(val)) { if (alloptions.indexOf(v) != -1) list.add(v); } String listArr[] = new String[list.size()]; list.toArray(listArr); setOption(op, listArr); } } // Now update the preference store with parsed options // Get the options for this tool IOption[] options = fTool.getOptions(); for (int k = 0; k < options.length; ++k) { IOption opt = options[k]; // String name = opt.getId(); // String listStr = ""; //$NON-NLS-1$ // String[] listVal = null; try { switch (opt.getValueType()) { case IOption.BOOLEAN: ArrayList<String> optsList = new ArrayList<String>(optionsArr); if (opt.getCommand() != null && opt.getCommand().length() > 0 && !optsList.contains(opt.getCommand())) setOption(opt, false); if (opt.getCommandFalse() != null && opt.getCommandFalse().length() > 0 && !optsList.contains(opt.getCommandFalse())) setOption(opt, true); break; case IOption.STRING: // TODO create a lst of valid default string options for the tool if (getDefaultOptionNames().contains(opt.getName())) { String newOptions = opt.getStringValue(); if (addnOptions.length() > 0) { newOptions = newOptions + ITool.WHITE_SPACE + addnOptions.toString().trim(); } setOption(opt, newOptions); } break; case IOption.STRING_LIST: case IOption.INCLUDE_PATH: case IOption.PREPROCESSOR_SYMBOLS: case IOption.LIBRARIES: ArrayList<String> newList = new ArrayList<String>(); for (String s : optionsList) { if (opt.getCommand() != null && s.startsWith(opt.getCommand())) { newList.add(s.substring(opt.getCommand().length())); } } String[] strlist = new String[newList.size()]; newList.toArray(strlist); newList.clear(); setOption(opt, strlist); break; default: break; } } catch (BuildException e) { } } }