/*_##########################################################################
_##
_## Copyright (C) 2013 Kaito Yamada
_##
_##########################################################################
*/
package com.github.kaitoy.sneo.giane.action;
import java.util.Map;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import com.github.kaitoy.sneo.giane.action.message.DialogMessage;
import com.github.kaitoy.sneo.giane.action.message.FormMessage;
import com.github.kaitoy.sneo.giane.action.message.SnmpAgentMessage;
import com.github.kaitoy.sneo.giane.model.Simulation;
import com.github.kaitoy.sneo.giane.model.SnmpAgent;
import com.github.kaitoy.sneo.giane.model.TrapTargetGroup;
import com.github.kaitoy.sneo.giane.model.dao.SimulationDao;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.conversion.annotations.TypeConversion;
import com.opensymphony.xwork2.validator.annotations.ConversionErrorFieldValidator;
@ParentPackage("giane-default")
@InterceptorRef("gianeDefaultStack")
public class SetTrapTargetGroupToSnmpAgentAction extends ActionSupport
implements FormMessage, SnmpAgentMessage, DialogMessage {
/**
*
*/
private static final long serialVersionUID = 433422932342221678L;
private SnmpAgent snmpAgent;
private TrapTargetGroup trapTargetGroup;
private SimulationDao simulationDao;
@ConversionErrorFieldValidator(
key = "ConversionErrorFieldValidator.error",
shortCircuit = true
)
@TypeConversion(converter = "com.github.kaitoy.sneo.giane.typeconverter.SnmpAgentConverter")
public void setSnmpAgent(SnmpAgent snmpAgent) {
this.snmpAgent = snmpAgent;
}
@ConversionErrorFieldValidator(
key = "ConversionErrorFieldValidator.error",
shortCircuit = true
)
@TypeConversion(converter = "com.github.kaitoy.sneo.giane.typeconverter.TrapTargetGroupConverter")
public void setTrapTargetGroup(TrapTargetGroup trapTargetGroup) {
this.trapTargetGroup = trapTargetGroup;
}
// for DI
public void setSimulationDao(
SimulationDao simulationDao
) {
this.simulationDao = simulationDao;
}
@Override
@Action(results = { @Result(name = "success", location = "empty.jsp") })
public String execute() throws Exception {
Map<String, Object> params = ActionContext.getContext().getParameters();
Integer simulationId
= Integer.valueOf(((String[])params.get("simulation_id"))[0]);
Simulation config
= simulationDao.findByKey(simulationId);
if (trapTargetGroup != null) {
config.getTrapTargetGroups().put(snmpAgent, trapTargetGroup);
}
else {
config.getTrapTargetGroups().remove(snmpAgent);
}
simulationDao.update(config);
return "success";
}
@Override
public void validate() {
if (snmpAgent == null) {
addActionError(getText("select.a.row"));
}
}
}