package com.fdar.apress.s2.actions.event;
import com.fdar.apress.s2.domain.Contestant;
import com.opensymphony.xwork2.validator.annotations.Validation;
import com.opensymphony.xwork2.validator.annotations.ExpressionValidator;
import com.opensymphony.xwork2.validator.annotations.Validations;
import java.util.ArrayList;
import java.util.List;
import org.apache.struts2.dispatcher.ServletActionRedirectResult;
import org.apache.struts2.config.Result;
import org.apache.struts2.config.ParentPackage;
import org.apache.struts2.config.Results;
@ParentPackage("enterEvent")
@Results( value={
@Result(type= ServletActionRedirectResult.class,value="selectContestants"),
@Result(name="input",value="/WEB-INF/jsp/event/selectContestants-input.jsp")
})
@Validation
public class RemoveContestantsAction extends BaseEventAction {
private List<String> selectedContestants;
public List<String> getSelectedContestants() {
return selectedContestants;
}
public void setSelectedContestants(List<String> selectedContestants) {
this.selectedContestants = selectedContestants;
}
@Validations( expressions = {
@ExpressionValidator(message="Default message", key="validate.mustSelectOne",
expression="selectedContestants!=null && selectedContestants.size>0" )
})
public String execute() throws Exception {
List<Contestant> result = new ArrayList<Contestant>();
for( Contestant c: event.getOptions() ) {
if( !selectedContestants.contains(c.getName()) ) {
result.add(c);
}
}
event.setOptions(result);
return SUCCESS;
}
}