/** @since 1.2 */ public synchronized Map<String, IAutotoolsOption> getAutotoolsCfgOptions( IProject project, String cfgId) throws CoreException { // Verify project is valid Autotools project if (project == null || !project.hasNature(AutotoolsNewProjectNature.AUTOTOOLS_NATURE_ID)) { throw new CoreException( new Status( IStatus.ERROR, AutotoolsPlugin.PLUGIN_ID, ConfigureMessages.getString(INVALID_AUTOTOOLS_PROJECT))); } // Verify configuration id is valid ICConfigurationDescription cfgd = CoreModel.getDefault().getProjectDescription(project).getConfigurationById(cfgId); IConfiguration icfg = ManagedBuildManager.getConfigurationForDescription(cfgd); if (icfg == null) { throw new CoreException( new Status( IStatus.ERROR, AutotoolsPlugin.PLUGIN_ID, ConfigureMessages.getString(INVALID_AUTOTOOLS_CONFIG_ID))); } IAConfiguration cfg = getConfiguration(project, cfgId); HashMap<String, IAutotoolsOption> options = new HashMap<>(); // Get set of configuration options and convert to set of IAutotoolOptions Map<String, IConfigureOption> cfgOptions = cfg.getOptions(); IAConfiguration dummyCfg = createDefaultConfiguration(createDummyId()); for (Iterator<Entry<String, IConfigureOption>> i = cfgOptions.entrySet().iterator(); i.hasNext(); ) { Map.Entry<String, IConfigureOption> entry = i.next(); String name = entry.getKey(); IAutotoolsOption configOption = new AutotoolsOption(entry.getValue().copy((AutotoolsConfiguration) dummyCfg)); options.put(name, configOption); } return options; }
@Override public void setValue(String value) throws CoreException { if (!canUpdate()) { throw new CoreException( new Status( IStatus.ERROR, AutotoolsPlugin.PLUGIN_ID, ConfigureMessages.getString(UNMODIFIABLE_CONFIG_OPTION))); } synchronized (option) { option.setValue(value); } }
/** @since 1.2 */ public synchronized void updateAutotoolCfgOptions( IProject project, String cfgId, Map<String, IAutotoolsOption> options) throws CoreException { // Verify project is valid Autotools project if (project == null || !project.hasNature(AutotoolsNewProjectNature.AUTOTOOLS_NATURE_ID)) { throw new CoreException( new Status( IStatus.ERROR, AutotoolsPlugin.PLUGIN_ID, ConfigureMessages.getString(INVALID_AUTOTOOLS_PROJECT))); } // Verify configuration id is valid IAConfiguration cfg = findCfg(project, cfgId); if (cfg == null) { throw new CoreException( new Status( IStatus.ERROR, AutotoolsPlugin.PLUGIN_ID, ConfigureMessages.getString(INVALID_AUTOTOOLS_CONFIG_ID))); } // Get set of configuration options and convert to set of IAutotoolOptions for (Iterator<Entry<String, IAutotoolsOption>> i = options.entrySet().iterator(); i.hasNext(); ) { Map.Entry<String, IAutotoolsOption> entry = i.next(); String name = entry.getKey(); IAutotoolsOption option = entry.getValue(); IConfigureOption cfgOption = cfg.getOption(name); if (cfgOption != null) { cfgOption.setValue(option.getValue()); } } // Save changes saveConfigs(project); }