1    package com.instantbank.lettertemplate.control.ejb.handlers;
2    
3    import java.util.Hashtable;
4    
5    import java.rmi.RemoteException;
6    import javax.naming.InitialContext;
7    import javax.naming.NamingException;
8    import javax.ejb.CreateException;
9    import javax.ejb.DuplicateKeyException;
10   import javax.ejb.FinderException;
11   import java.text.SimpleDateFormat;
12   import java.util.Calendar;
13   
14   import com.instantbank.lettertemplate.control.event.BatchReviewEvent;
15   import com.instantbank.lettertemplate.control.event.LetterTemplateEvent;
16   import com.instantbank.lettertemplate.control.LetterTemplateEventException;
17   
18   import com.instantbank.component.lettertemplate.ejb.LetterTemplate;
19   import com.instantbank.component.job.ejb.Job;
20   
21   import com.instantbank.common.utilcomponents.Debug;
22   import com.instantbank.common.utilcomponents.LetterTemplateGlobals;
23   
24   /**
25    *  Letter Batch Review usecase: handler of user requests in the Services layer
26    *
27    * @author Instant-bank (Roberto Contreras)
28    * @created November 2002
29    */
30   public class BatchReviewHandler extends StateHandlerSupport {
31   
32     private Debug debug = null;
33   
34     /**
35      *  Calendar
36      */
37     private Calendar calendar = null;
38   
39     /**
40      *  The Date of today
41      */
42     private java.util.Date toDay = null;
43   
44   
45     /**
46      *  principal method that process a user request invoking Model EJBs methods
47      *
48      * @param event request data
49      * @return answer to request
50      * @exception LetterTemplateEventException
51      */
52     public Object perform(LetterTemplateEvent event)
53        throws LetterTemplateEventException {
54       debug = new Debug();
55       debug.setDebugginOn(true);
56       debug.setPreMessage("** CategoryHandler-services tier: ");
57   
58       Object answer = "";
59       BatchReviewEvent ce = (BatchReviewEvent)event;
60   
61       this.calendar = Calendar.getInstance();
62       this.toDay = calendar.getTime();
63       String date =
64         new SimpleDateFormat("dd-MMM-yyyy").format(this.toDay);
65   
66       switch (ce.getActionType()) {
67   
68         case BatchReviewEvent.LIST_BATCH_REVIEW:
69         {
70           debug.println("LIST_BATCH_REVIEW event");
71           try {
72             LetterTemplate letterTemplate
73                = machine.getLetterTemplateControllerEJB()
74               .getLetterTemplate
75               (ce.getCompanyId(), ce.getUserId());
76   
77             // invoking EJB methods :
78             answer = letterTemplate.loadLetterBatchReview(date);
79           }
80           catch(Exception e) {
81             // it can be differentiated: RemoteException,
82             // CreateException, FinderException, NamingException, ...
83             throw new LetterTemplateEventException(e.getMessage());
84           }
85         }
86           break;
87         case BatchReviewEvent.UPDATE_BATCH_REVIEW:
88         {
89           debug.println("UPDATE_BATCH_REVIEW event");
90           try {
91             LetterTemplate letterTemplate
92                = machine.getLetterTemplateControllerEJB()
93               .getLetterTemplate
94               (ce.getCompanyId(), ce.getUserId());
95   
96             // invoking EJB methods :
97             answer = letterTemplate.loadLetterBatchReview(ce.date());
98           }
99           catch(Exception e) {
100            // it can be differentiated: RemoteException,
101            // CreateException, FinderException, NamingException, ...
102            throw new LetterTemplateEventException(e.getMessage());
103          }
104        }
105          break;
106        default:
107          debug.println("Error: not implemented yet");
108          break;
109      }
110      return answer;
111    }
112  }
113  
114