1    package com.instantbank.lettertemplate.control.ejb;
2    
3    import java.util.ArrayList;
4    import java.util.Collection;
5    import java.util.Map;
6    import java.rmi.RemoteException;
7    import javax.ejb.EJBException;
8    import com.instantbank.lettertemplate.control.event.CategoryEvent;
9    import com.instantbank.lettertemplate.control.event.ComponentsEvent;
10   import com.instantbank.lettertemplate.control.event.ImagesRepositoryEvent;
11   import com.instantbank.lettertemplate.control.event.PreviewPrintEvent;
12   import com.instantbank.lettertemplate.control.event.TemplatesEvent;
13   import com.instantbank.lettertemplate.control.event.SetLetterJobEvent;
14   import com.instantbank.lettertemplate.control.event.BatchStartEvent;
15   import com.instantbank.common.utilcomponents.Debug;
16   import com.instantbank.lettertemplate.control.event.LetterTemplateEvent;
17   import com.instantbank.common.utilcomponents.JNDINames;
18   
19   /**
20    *  This class uses the LetterTemplateEvent type to deduce the list of models that
21    *  need to be updated because of this event.
22    *
23    * @author Instant-bank (Consuelo Franky)
24    * @created September 2002
25    */
26   public class ModelUpdateManager {
27   
28     private Debug debug = null;
29   
30   
31     /**
32      *  constructor
33      */
34     public ModelUpdateManager() {
35       debug = new Debug();
36       debug.setDebugginOn(true);
37       debug.setPreMessage("** ModelUpdateManager:");
38     }
39   
40   
41     /**
42      * @param ese event corresponding to user request
43      * @param answer answer to user request
44      * @return a list of names of models that could have
45      *      changed due to this event. In addition, the first element of the
46      *      list contains the service answer(or the "" string when this answer
47      *      is not required) The names chosen to refer to models is taken from
48      *      JNDINames.
49      * @exception RemoteException
50      * @see com.instantbank.common.utilcomponents.JNDINames
51      */
52     public ArrayList getUpdatedModels(LetterTemplateEvent ese, Object answer)
53        throws RemoteException {
54       ArrayList modelList = new ArrayList();
55       modelList.add(answer);
56   
57       if(ese instanceof CategoryEvent) {
58         // event updating Model EJBs without web view javaBean
59         debug.println("CategoryEvent Over");
60       }
61       else if(ese instanceof ImagesRepositoryEvent) {
62         // event updating Model EJBs without web view javaBean
63         debug.println("ImagesRepositoryEvent Over");
64       }
65       else if(ese instanceof TemplatesEvent) {
66         // event updating Model EJBs without web view javaBean
67         debug.println(" TemplatesEvent Over");
68       }
69       else if(ese instanceof PreviewPrintEvent) {
70         // event updating Model EJBs without web view javaBean
71         debug.println(" PreviewPrint Over");
72       }
73       else if(ese instanceof ComponentsEvent) {
74         // event updating Model EJBs without web view javaBean
75         debug.println(" ComponentsEvent Over");
76       }
77       else if(ese instanceof SetLetterJobEvent) {
78         SetLetterJobEvent ev = (SetLetterJobEvent)ese;
79         if(ev.getActionType() == SetLetterJobEvent.GET_JOB ||
80           ev.getActionType() == SetLetterJobEvent.SAVE_JOB) {
81           // event updating Model EJBs with web view javaBean:
82           modelList.add(JNDINames.JOB_EJBHOME);
83         }
84         debug.println(" SetLetterJobEvent Over");
85       }
86       else if(ese instanceof BatchStartEvent) {
87         // event updating Model EJBs without web view javaBean
88         debug.println(" BatchStartEvent Over");
89       }
90       return modelList;
91     }
92   }
93   
94   
95