01: package com.technoetic.xplanner.tags;
02:
03: import com.technoetic.xplanner.domain.Iteration;
04: import com.technoetic.xplanner.domain.repository.IterationRepository;
05: import com.technoetic.xplanner.security.AuthenticationException;
06: import net.sf.hibernate.HibernateException;
07:
08: import javax.servlet.jsp.PageContext;
09: import java.util.ArrayList;
10: import java.util.Date;
11: import java.util.List;
12:
13: public class IterationLoader {
14: private PageContext pageContext;
15:
16: public List getIterationOptions(int projectId,
17: boolean onlyCurrentProject, Date startDate)
18: throws HibernateException, AuthenticationException {
19: ContextInitiator contextInitiator = new ContextInitiator(
20: pageContext);
21: //DEBT: roll the initStaticContext into the ctor. Clean up the exception: either everybody should get a jspException for a failed authentication or should get a AuthenticationException
22: contextInitiator.initStaticContext();
23: //DEBT(Spring) load IterationRepository
24: IterationRepository dao = new IterationRepository(
25: contextInitiator.getSession(), contextInitiator
26: .getAuthorizer(), contextInitiator
27: .getLoggedInUserId());
28: List iterations;
29: if (onlyCurrentProject)
30: iterations = dao.fetchEditableIterations(projectId,
31: startDate);
32: else
33: iterations = dao.fetchEditableIterations();
34:
35: List options = new ArrayList();
36: for (int i = 0; i < iterations.size(); i++) {
37: Iteration it = (Iteration) iterations.get(i);
38: options.add(new IterationModel(it));
39: }
40: return options;
41: }
42:
43: public void setPageContext(PageContext pageContext) {
44: this.pageContext = pageContext;
45: }
46: }
|