1    package com.instantbank.servicing.control.ejb.handlers;
2    
3    import java.util.ArrayList;
4    import java.rmi.RemoteException;
5    import javax.naming.InitialContext;
6    import javax.naming.NamingException;
7    import javax.ejb.CreateException;
8    import javax.ejb.DuplicateKeyException;
9    import javax.ejb.FinderException;
10   
11   import com.instantbank.common.utilcomponents.CodeDescription;
12   import com.instantbank.servicing.control.event.ParmLevel1ValuesEvent;
13   import com.instantbank.common.utilcomponents.Debug;
14   import com.instantbank.component.parameter.ejb.Parameter;
15   import com.instantbank.servicing.control.ServicingEventException;
16   import com.instantbank.servicing.control.event.ServicingEvent;
17   
18   /**
19    *  Parameter Level 1 values  usecase: handler of user requests in the Services layer
20    *
21    * @author Instant-bank (Roberto Contreras)
22    * @created September 2002
23    */
24   public class ParmLevel1ValuesHandler extends StateHandlerSupport {
25   
26     private Debug debug = null;
27   
28   
29     /**
30      *  Principal method that process a user request invoking Model EJBs methods
31      *
32      * @param event request data
33      * @return answer to request
34      * @exception ServicingEventException
35      */
36     public Object perform(ServicingEvent event)
37        throws ServicingEventException {
38       debug = new Debug();
39       debug.setDebugginOn(true);
40       debug.setPreMessage("** ParmLevel1ValuesHandler-services tier: ");
41       Object answer = "";
42       ParmLevel1ValuesEvent ce = (ParmLevel1ValuesEvent)event;
43   
44       switch (ce.getActionType()) {
45   
46         case ParmLevel1ValuesEvent.LIST_PARM_LEVEL1_VALUES:
47         {
48           debug.println("LIST_PARM_LEVEL1_VALUES event");
49           try {
50             // obtaining EJB reference:
51             Parameter parameter = machine.getServicingControllerEJB()
52               .getParameter(ce.getCompanyId(), ce.getUserId());
53   
54             // invoking EJB methods :
55             ArrayList valuesparmlevel1 = new ArrayList(2);
56             ArrayList parmLevelsName = new ArrayList(2);
57   
58             parmLevelsName = parameter.loadParamLevelsName();
59             CodeDescription[] listValuesLevel1 = parameter.listParamLevel1Points();
60             valuesparmlevel1.add(parmLevelsName);
61             valuesparmlevel1.add(listValuesLevel1);
62             answer = valuesparmlevel1;
63           }
64           catch(Exception e) {
65             // podrian distinguirse: RemoteException,
66             // CreateException, FinderException, NamingException, ...
67             throw new ServicingEventException(e.getMessage());
68           }
69         }
70           break;
71         case ParmLevel1ValuesEvent.UPDATE_PARM_LEVEL1_VALUES:
72         {
73           debug.println("UPDATE_PARM_LEVEL1_VALUES event");
74           try {
75             Parameter parameter = machine.getServicingControllerEJB()
76               .getParameter(ce.getCompanyId(), ce.getUserId());
77   
78             answer = parameter.applyItemsParamLevel1Points(ce.getItems());
79           }
80           catch(Exception e) {
81             throw new ServicingEventException(e.getMessage());
82           }
83         }
84           break;
85         default:
86           debug.println("Error: not implemented yet");
87           break;
88       }
89       return answer;
90     }
91   }
92   
93