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   
12   import com.instantbank.lettertemplate.control.event.BatchStartEvent;
13   import com.instantbank.lettertemplate.control.event.LetterTemplateEvent;
14   import com.instantbank.lettertemplate.control.LetterTemplateEventException;
15   
16   import com.instantbank.component.lettertemplate.ejb.LetterTemplate;
17   import com.instantbank.component.job.ejb.Job;
18   
19   import com.instantbank.common.utilcomponents.Debug;
20   import com.instantbank.common.utilcomponents.LetterTemplateGlobals;
21   
22   /**
23    *  Letter Batch Start usecase: handler of user requests in the Services layer
24    *
25    * @author Instant-bank (Roberto Contreras)
26    * @created November 2002
27    */
28   public class BatchStartHandler extends StateHandlerSupport {
29   
30     private Debug debug = null;
31   
32   
33     /**
34      *  principal method that process a user request invoking Model EJBs methods
35      *
36      * @param event request data
37      * @return answer to request
38      * @exception LetterTemplateEventException
39      */
40     public Object perform(LetterTemplateEvent event)
41        throws LetterTemplateEventException {
42       debug = new Debug();
43       debug.setDebugginOn(true);
44       debug.setPreMessage("** CategoryHandler-services tier: ");
45   
46       Object answer = "";
47       BatchStartEvent ce = (BatchStartEvent)event;
48   
49       switch (ce.getActionType()) {
50   
51         case BatchStartEvent.LIST_BATCH_START:
52         {
53           debug.println("LIST_BATCH_START event");
54           try {
55             LetterTemplate letterTemplate
56                = machine.getLetterTemplateControllerEJB()
57               .getLetterTemplate
58               (ce.getCompanyId(), ce.getUserId());
59   
60             // invoking EJB methods :
61             answer = letterTemplate.loadLetterJob();
62   
63           }
64           catch(Exception e) {
65             // it can be differentiated: RemoteException,
66             // CreateException, FinderException, NamingException, ...
67             throw new LetterTemplateEventException(e.getMessage());
68           }
69   
70         }
71           break;
72         default:
73           debug.println("Error: not implemented yet");
74           break;
75       }
76       return answer;
77     }
78   }
79   
80