1    package com.instantbank.lettertemplate.control.web.handlers;
2    
3    import java.util.HashMap;
4    import java.util.ArrayList;
5    import java.util.Enumeration;
6    import java.util.Locale;
7    import java.util.Hashtable;
8    import java.io.IOException;
9    
10   import javax.servlet.http.HttpServletRequest;
11   import javax.servlet.ServletContext;
12   import javax.servlet.ServletException;
13   import javax.servlet.ServletOutputStream;
14   
15   import oracle.xml.parser.v2.*;
16   import org.w3c.dom.*;
17   import org.xml.sax.*;
18   
19   import com.instantbank.lettertemplate.control.event.BatchReviewEvent;
20   import com.instantbank.lettertemplate.control.util.JSPUtil;
21   import com.instantbank.lettertemplate.control.util.WebKeys;
22   import com.instantbank.common.utilcomponents.Debug;
23   import com.instantbank.common.utilcomponents.CommonUtil;
24   import com.instantbank.common.utilcomponents.JNDINames;
25   import com.instantbank.common.utilcomponents.LetterTemplateExceptionMessage;
26   import com.instantbank.lettertemplate.control.LetterTemplateEventException;
27   import com.instantbank.lettertemplate.control.event.LetterTemplateEvent;
28   import com.instantbank.component.lettertemplate.util.*;
29   
30   import javax.servlet.http.HttpSession;
31   
32   import javax.jms.Message;
33   import javax.jms.JMSException;
34   
35   import com.instantbank.common.utilcomponents.Debug;
36   import com.instantbank.common.utilcomponents.CommonUtil;
37   import com.instantbank.common.utilcomponents.LetterTemplateGlobals;
38   import com.instantbank.lettertemplate.control.util.JSPUtil;
39   import com.instantbank.lettertemplate.control.util.WebKeys;
40   import com.instantbank.component.lettersjobmdb.util.MessageSender;
41   
42   /**
43    *  Letter Batch Review usecase: handler of user requests in the Application
44    *  layer
45    *
46    * @author Instant-bank (Jorge Cardenas)
47    * @created November 2002
48    */
49   public class BatchReviewHandler extends RequestHandlerSupport {
50   
51     private Debug debug = null;
52     ServletContext context;
53     private boolean gotoDB;
54   
55   
56     /**
57      *  principal method that process a user request instantiating a
58      *  BatchReviewEvent with the user request data
59      *
60      * @param request of MainServlet
61      * @param context of MainServlet
62      * @return BatchStartEvent with the user request data
63      * @exception LetterTemplateEventException
64      */
65     public LetterTemplateEvent processRequest(HttpServletRequest request,
66                                               ServletContext context)
67        throws LetterTemplateEventException {
68       debug = new Debug();
69       debug.setDebugginOn(true);
70       debug.setPreMessage("** BatchReviewHandler-application tier: ");
71   
72       this.context = context;
73       HttpSession session = request.getSession();
74       String action = request.getParameter("action");
75       debug.println("Creation of an BatchReviewEvent; "
76         + "BatchReviewHandler (web): action=" + action);
77   
78       if(action == null) {
79         throw new LetterTemplateEventException
80           (LetterTemplateExceptionMessage.SERVICE_NOT_SELECTED);
81       }
82       else if(action.equals("listBatchReview")) {
83         return createListReviewStartEvent(request);
84       }
85       else if(action.equals("updateBatchReview")) {
86         return createUpdateReviewStartEvent(request);
87       }
88       return null;
89     }
90   
91   
92     /**
93      * method for instantiating a BatchReviewEvent demanding a service of
94      * getting the letter batch review
95      *
96      * @param request of MainServlet
97      * @return BatchReviewEvent with the user request data
98      * @throws LetterTemplateEventException Description of the Exception
99      */
100    private LetterTemplateEvent createListReviewStartEvent
101      (HttpServletRequest request)
102       throws LetterTemplateEventException {
103  
104      HttpSession session = request.getSession();
105  
106      try {
107  
108        // instantiating BatchReviewEvent:
109        BatchReviewEvent event
110           = new BatchReviewEvent
111          (BatchReviewEvent.LIST_BATCH_REVIEW,
112          (String)request.getSession()
113          .getAttribute(WebKeys.CompanyId),
114          (Long)request.getSession().
115          getAttribute(WebKeys.UserId),
116          null,
117          null);
118  
119        request.setAttribute(WebKeys.BatchReviewEvent, event);
120        return event;
121      }
122      catch(Exception e) {
123        throw new LetterTemplateEventException
124          (LetterTemplateExceptionMessage.PROBLEM_PARSING + e.getMessage()
125          + LetterTemplateExceptionMessage.RETRY);
126      }
127    }
128  
129  
130    /**
131     * method for instantiating a BatchReviewEvent demanding a service of
132     * updating letter batch review
133     *
134     * @param request of MainServlet
135     * @return BatchReviewEvent with the user request data
136     * @throws LetterTemplateEventException Description of the Exception
137     */
138    private LetterTemplateEvent createUpdateReviewStartEvent
139      (HttpServletRequest request)
140       throws LetterTemplateEventException {
141  
142      try {
143        String year = request.getParameter("year");
144        String month = request.getParameter("month");
145        String day = request.getParameter("day");
146  
147        String date = day + "-" + month + "-" + year;
148  
149        // instantiating BatchReviewEvent
150        BatchReviewEvent event
151           = new BatchReviewEvent
152          (BatchReviewEvent.UPDATE_BATCH_REVIEW,
153          (String)request.getSession().
154          getAttribute(WebKeys.CompanyId),
155          (Long)request.getSession().
156          getAttribute(WebKeys.UserId),
157          null,
158          date);
159        request.setAttribute(WebKeys.BatchReviewEvent, event);
160        return event;
161      }
162      catch(Exception e) {
163        throw new LetterTemplateEventException
164          (LetterTemplateExceptionMessage.PROBLEM_PARSING + e.getMessage()
165          + LetterTemplateExceptionMessage.RETRY);
166      }
167    }
168  }
169  
170