package org.apache.struts.edit.action; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.Preparable; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.struts.edit.model.Person; import org.apache.struts.edit.model.State; import org.apache.struts.edit.service.CarModelsService; import org.apache.struts.edit.service.CarModelsServiceHardCoded; import org.apache.struts.edit.service.EditService; import org.apache.struts.edit.service.EditServiceInMemory; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Acts as a controller to handle actions * related to editing a Person. * * @author bruce phillips */ public class EditAction extends ActionSupport implements Preparable { private static Logger log = LogManager.getLogger(EditAction.class); private static final long serialVersionUID = 1L; private EditService editService = new EditServiceInMemory(); private CarModelsService carModelsService = new CarModelsServiceHardCoded(); private Person personBean; private String[] sports = {"football", "baseball", "basketball"}; private String[] genders = {"male", "female", "not sure"}; private List<State> states; private String[] carModelsAvailable; @Override public void prepare() throws Exception { log.debug("In prepare method..."); carModelsAvailable = carModelsService.getCarModels(); setPersonBean(editService.getPerson()); } public void prepareExecute() { log.debug("In prepareExecute method..."); } public String execute() throws Exception { log.debug("In execute method..."); editService.savePerson(getPersonBean()); return SUCCESS; } public void prepareInput() { log.debug("In prepareInput method..."); } public String input() throws Exception { log.debug("In input method..."); return INPUT; } public Person getPersonBean() { return personBean; } public void setPersonBean(Person person) { personBean = person; } public List<String> getSports() { return Arrays.asList(sports); } public List<String> getGenders() { return Arrays.asList(genders); } public List<State> getStates() { states = new ArrayList<>(); states.add(new State("AZ", "Arizona")); states.add(new State("CA", "California")); states.add(new State("FL", "Florida")); states.add(new State("KS", "Kansas")); states.add(new State("NY", "New York")); return states; } public String[] getCarModelsAvailable() { return carModelsAvailable; } }