1 package edu.drexel.cms.interceptors; 2 3 import static edu.drexel.cms.commons.MessageKeys.PLEASE_LOGIN; 4 5 import java.util.List; 6 7 import javax.servlet.http.HttpServletRequest; 8 9 import org.apache.commons.logging.Log; 10 import org.apache.commons.logging.LogFactory; 11 import org.apache.struts2.ServletActionContext; 12 13 import com.opensymphony.xwork2.ActionInvocation; 14 import com.opensymphony.xwork2.ActionSupport; 15 import com.opensymphony.xwork2.ValidationAware; 16 import com.opensymphony.xwork2.interceptor.Interceptor; 17 18 import edu.drexel.cms.actions.SessionConstants; 19 import edu.drexel.cms.commons.CommonsUtils; 20 import edu.drexel.cms.data.CmsDAO; 21 import edu.drexel.cmsDb.datamodel.Conference; 22 import edu.drexel.cmsDb.datamodel.User; 23 import edu.drexel.cmsDb.ejb.SearchConferenceCriteriaVo; 24 25 public class ConferencePageInterceptor extends ActionSupport implements Interceptor{ 26 private static final long serialVersionUID = 20070504L; 27 private static final Log LOG = LogFactory.getLog(ConferencePageInterceptor.class); 28 29 private static final String NO_RESULT_ERROR = "error.conference.no.result"; 30 private static final String PAGE_ERROR = "error.conference.page"; 31 32 public void destroy() {} 33 public void init() {} 34 35 public String intercept(ActionInvocation ai) throws Exception { 36 HttpServletRequest request = ServletActionContext.getRequest(); 37 try{ 38 User user = (User)request.getSession().getAttribute(SessionConstants.USER_ATTRIBUTE); 39 if(user == null){ 40 addErrors(ai, getText(PLEASE_LOGIN)); 41 return ActionSupport.LOGIN; 42 } 43 List<List<Conference>> conferences = CmsDAO.searchConference(user, new SearchConferenceCriteriaVo()); 44 request.setAttribute(SessionConstants.AUTHOR_CONFERENCES, conferences.get(0)); 45 request.setAttribute(SessionConstants.REVIEWER_CONFERENCES, conferences.get(1)); 46 request.setAttribute(SessionConstants.EDITOR_CONFERENCES, conferences.get(2)); 47 request.setAttribute(SessionConstants.OTHER_CONFERENCES, conferences.get(3)); 48 if(CommonsUtils.IsDeepEmpty(conferences)){ 49 addErrors(ai, getText(NO_RESULT_ERROR)); 50 } 51 }catch (Exception e) { 52 LOG.error(getText(PAGE_ERROR), e); 53 addErrors(ai, getText(PAGE_ERROR)); 54 } 55 return ai.invoke(); 56 } 57 private void addErrors(ActionInvocation ai, String message){ 58 if (ai.getAction() instanceof ValidationAware) { 59 ValidationAware action = (ValidationAware) ai.getAction(); 60 action.addActionError(message); 61 } 62 } 63 }