1 package com.instantbank.servicing.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.servicing.control.util.WebKeys;
15 import com.instantbank.common.utilcomponents.Debug;
16 import com.instantbank.servicing.control.ServicingEventException;
17 import com.instantbank.servicing.control.event.ServicingEvent;
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 ServicingEventException {
73 ServicingEvent event = null;
74 Object answer = "";
75
76 ModelManager mm
77 = (ModelManager)request.getSession()
78 .getAttribute(WebKeys.ModelManagerKey);
79 ServicingControllerProxy scc
80 = (ServicingControllerProxy)request.getSession()
81 .getAttribute(WebKeys.WebControllerKey);
82 if(scc == null) {
83 scc = new ServicingControllerProxy(request.getSession());
84 mm.setSCC(scc);
85 request.getSession().setAttribute
86 (WebKeys.WebControllerKey, scc);
87 }
88
89
90 event = eventTranslator.processRequest(request, context);
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