1 package com.instantbank.lettertemplate.control.web;
2
3 import java.io.Serializable;
4 import java.util.Collection;
5 import java.util.ArrayList;
6 import java.util.HashMap;
7 import java.util.Locale;
8 import javax.servlet.ServletContext;
9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11 import javax.servlet.http.HttpSession;
12 import javax.naming.NamingException;
13 import javax.naming.InitialContext;
14 import com.instantbank.lettertemplate.control.util.WebKeys;
15 import com.instantbank.common.utilcomponents.Debug;
16 import com.instantbank.lettertemplate.control.LetterTemplateEventException;
17 import com.instantbank.lettertemplate.control.event.LetterTemplateEvent;
18
19
27 public class RequestProcessor
28 implements Serializable {
29
30 private ScreenFlowManager screenManager;
31 private ServletContext context;
32 private RequestToEventTranslator eventTranslator;
33 private Debug debug = null;
34
35
36
39 public RequestProcessor() {
40 debug = new Debug();
41 debug.setDebugginOn(true);
42 debug.setPreMessage("** RequestProcessor: ");
43 }
44
45
46
52 public void init(ServletContext context) {
53 debug.println("init");
54 this.context = context;
55 screenManager
56 = (ScreenFlowManager)context.getAttribute
57 (WebKeys.ScreenManagerKey);
58 eventTranslator
59 = new RequestToEventTranslator(this, screenManager);
60 }
61
62
63
71 public Object processRequest(HttpServletRequest request)
72 throws LetterTemplateEventException {
73 LetterTemplateEvent event = null;
74 Object answer = "";
75
76 ModelManager mm = (ModelManager)request.getSession()
77 .getAttribute(WebKeys.ModelManagerKey);
78 LetterTemplateControllerProxy scc
79 = (LetterTemplateControllerProxy)request.getSession()
80 .getAttribute(WebKeys.WebControllerKey);
81 if(scc == null) {
82 scc = new LetterTemplateControllerProxy(request.getSession());
83 mm.setSCC(scc);
84 request.getSession().setAttribute
85 (WebKeys.WebControllerKey, scc);
86 }
87
88
89 event = eventTranslator.processRequest(request, context);
90
91
92 if(event != null) {
93 ArrayList updatedModelList = (ArrayList)scc.handleEvent(event);
94 debug.println("answer received from Services tier to Application tier");
95 answer = updatedModelList.get(0);
96 updatedModelList.remove(0);
97 mm.notifyListeners(updatedModelList);
98 }
99 return answer;
100 }
101 }
102
103