/*_########################################################################## _## _## 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.RealNetworkInterfaceMessage; import com.github.kaitoy.sneo.giane.model.RealNetworkInterface; import com.github.kaitoy.sneo.giane.model.RealNetworkInterfaceConfiguration; import com.github.kaitoy.sneo.giane.model.Simulation; 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 SetRealNetworkInterfaceConfigurationToRealNetworkInterfaceAction extends ActionSupport implements FormMessage, RealNetworkInterfaceMessage, DialogMessage { /** * */ private static final long serialVersionUID = 7696872724899169733L; private RealNetworkInterface realNetworkInterface; private RealNetworkInterfaceConfiguration realNetworkInterfaceConfiguration; private SimulationDao simulationDao; @ConversionErrorFieldValidator( key = "ConversionErrorFieldValidator.error", shortCircuit = true ) @TypeConversion( converter = "com.github.kaitoy.sneo.giane.typeconverter.RealNetworkInterfaceConverter" ) public void setRealNetworkInterface( RealNetworkInterface realNetworkInterface ) { this.realNetworkInterface = realNetworkInterface; } @ConversionErrorFieldValidator( key = "ConversionErrorFieldValidator.error", shortCircuit = true ) @TypeConversion( converter = "com.github.kaitoy.sneo.giane.typeconverter.RealNetworkInterfaceConfigurationConverter" ) public void setRealNetworkInterfaceConfiguration( RealNetworkInterfaceConfiguration realNetworkInterfaceConfiguration ) { this.realNetworkInterfaceConfiguration = realNetworkInterfaceConfiguration; } // 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 (realNetworkInterfaceConfiguration != null) { config.getRealNetworkInterfaceConfigurations() .put(realNetworkInterface, realNetworkInterfaceConfiguration); } else { config.getRealNetworkInterfaceConfigurations().remove(realNetworkInterface); } simulationDao.update(config); return "success"; } @Override public void validate() { if (realNetworkInterface == null) { addActionError(getText("select.a.row")); } } }