// License: GPL. For details, see LICENSE file. package at.dallermassl.josm.plugin.surveyor; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.dinopolis.util.io.Tokenizer; import org.openstreetmap.josm.Main; /** * @author cdaller * */ public class SurveyorActionDescription { private String actionClass; private List<String> params; private SurveyorAction action; /** * Default Constructor */ public SurveyorActionDescription() { super(); } public SurveyorActionDescription(String actionClass) { super(); this.actionClass = actionClass; } public SurveyorActionDescription(String actionClass, List<String> params) { super(); this.actionClass = actionClass; this.params = params; } public SurveyorActionDescription(String actionClass, String[] params) { super(); this.actionClass = actionClass; this.params = new ArrayList<>(); for (int index = 0; index < params.length; index++) { this.params.add(params[index]); } } /** * @return the actionClass */ public String getActionClass() { return this.actionClass; } /** * @param actionClass the actionClass to set */ public void setActionClass(String actionClass) { this.actionClass = actionClass; } /** * @return the params */ public List<String> getParameterList() { return this.params; } /** * @param params the params to set */ public void setParameterList(List<String> params) { this.params = params; } public void actionPerformed(GpsActionEvent e) { if (action == null) { action = SurveyorActionFactory.getInstance(actionClass); action.setParameters(getParameterList()); } action.actionPerformed(e); } /** * Sets the classname of the action to use. Callback method of xml parser. * @param claszName the name of the action class. */ public void setClass_(String claszName) { setActionClass(claszName); } /** * Set the params as a comma separated string. * @param paramString the comma separated string for the parameters. */ public void setParams(String paramString) { Tokenizer tokenizer = new Tokenizer(paramString, ","); try { params = tokenizer.nextLine(); } catch (IOException ignore) { Main.debug(ignore); } } }