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.Paper;
22 import edu.drexel.cmsDb.datamodel.User;
23 import edu.drexel.cmsDb.ejb.SearchPaperCriteriaVo;
24
25 public class PaperPageInterceptor extends ActionSupport implements Interceptor{
26 private static final long serialVersionUID = 20070504L;
27 private static final Log LOG = LogFactory.getLog(PaperPageInterceptor.class);
28 private static final String NO_RESULT_ERROR = "error.paper.no.result";
29 private static final String PAGE_ERROR = "error.paper.page";
30 public void destroy() {}
31 public void init() {}
32
33 public String intercept(ActionInvocation ai) throws Exception {
34 HttpServletRequest request = ServletActionContext.getRequest();
35 try{
36 User user = (User)request.getSession().getAttribute(SessionConstants.USER_ATTRIBUTE);
37 if(user == null){
38 addErrors(ai, PLEASE_LOGIN);
39 return ActionSupport.LOGIN;
40 }
41 List<List<Paper>> papers = CmsDAO.searchPaper(user, new SearchPaperCriteriaVo());
42 request.setAttribute(SessionConstants.YOUR_PAPERS_ATTRIBUTE, papers.get(0));
43 request.setAttribute(SessionConstants.YOUR_REVIEWPAPER_ATTRIBUTE, papers.get(1));
44 request.setAttribute(SessionConstants.EDITOR_PAPERS_ATTRIBUTE, papers.get(2));
45
46 if(CommonsUtils.IsDeepEmpty(papers)){
47 addErrors(ai, getText(NO_RESULT_ERROR));
48 }
49 }catch (Exception e) {
50 LOG.error(getText(PAGE_ERROR), e);
51 addErrors(ai, getText(PAGE_ERROR));
52 }
53 return ai.invoke();
54 }
55 private void addErrors(ActionInvocation ai, String message){
56 if (ai.getAction() instanceof ValidationAware) {
57 ValidationAware action = (ValidationAware) ai.getAction();
58 action.addActionError(message);
59 }
60 }
61 }