package de.tum.in.i22.uc.pdp.core; import java.io.Serializable; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import de.tum.in.i22.uc.pdp.core.shared.IPdpExecuteAction; import de.tum.in.i22.uc.pdp.core.shared.Param; import de.tum.in.i22.uc.pdp.xsd.ExecuteActionType; import de.tum.in.i22.uc.pdp.xsd.ExecuteAsyncActionType; import de.tum.in.i22.uc.pdp.xsd.ParameterType; public class ExecuteAction implements Serializable, IPdpExecuteAction { private static final long serialVersionUID = 8451999937686098519L; private static Logger log = LoggerFactory.getLogger(ExecuteAction.class); private String name = null; private final Set<Param<?>> parameters = new HashSet<Param<?>>(); private String processor = null; private String id = null; public ExecuteAction(String name, List<Param<?>> params) { this.name = name; this.parameters.addAll(params); } public ExecuteAction() { } public ExecuteAction(ExecuteActionType execAction) { log.debug("Preparing executeAction from ExecuteActionType"); this.name = execAction.getName(); this.id = execAction.getId(); for (ParameterType param : execAction.getParameter()) { this.parameters.add(new Param<String>(param.getName(), param .getValue())); } } public ExecuteAction(ExecuteAsyncActionType execAction) { log.debug("Preparing executeAction from ExecuteAsyncActionType"); this.name = execAction.getName(); this.id = execAction.getId(); this.processor = execAction.getProcessor().value(); for (ParameterType param : execAction.getParameter()) { this.parameters.add(new Param<String>(param.getName(), param .getValue())); } } public String getName() { return name; } public Collection<Param<?>> getParams() { return parameters; } public Param<?> getParameterForName(String name) { for (Param<?> p : parameters) { if (p.getName().equalsIgnoreCase(name)) { return p; } } return null; } public String getProcessor() { return processor; } public String getId() { return this.id; } @Override public String toString() { return com.google.common.base.Objects.toStringHelper(this) .add("name", name) .add("id", id) .add(processor, processor) .add("parameters", parameters) .toString(); } }