View Javadoc

1   package com.sri.emo.wizard.completion.management;
2   
3   import com.jcorporate.expresso.core.controller.*;
4   import com.sri.emo.wizard.completion.model.CompletionBean;
5   
6   
7   /***
8    * Interface that adapts the CompletionBean to the Webapp Session. (Or other
9    * pseudo-session depending on implementation.)
10   *
11   * @author Michael Rimov
12   * @version 1.0
13   */
14  public interface ICompletionBeanManager {
15  
16      /***
17       * Creates or retrieves the action form.  If it doesn't exist on the session then
18       * we create it.
19       *
20       * @param request ControllerRequest
21       * @return CompletionBean
22       * @throws ControllerException
23       */
24      CompletionBean createOrRetrieveActionForm(final ExpressoRequest request) throws ControllerException;
25  
26      /***
27       * Destroys the completion bean from the session.  Most often done after the bean has been saved.
28       *
29       * @param request ControllerRequest
30       * @throws ControllerException
31       */
32      void destroyActionForm(final ExpressoRequest request) throws ControllerException;
33  
34      /***
35       * Retrieve an action form.  If it doesn't exist, don't create it.  Return
36       *
37       * @param request ControllerRequest
38       * @return CompletionBean
39       * @throws ControllerException
40       */
41      CompletionBean getActionForm(final ExpressoRequest request) throws ControllerException;
42  
43      /***
44       * Checks if session has timed out and redirects to 'list wizards' state if it has.
45       *
46       * @param request  The <tt>ControllerRequest</tt> handed to us by the framework.
47       * @param response <tt>ControllerResponse</tt> handed to us by the framework.
48       * @return boolean true if we handled a timeout.  False otherwise.
49       * @throws ControllerException
50       * @throws NonHandleableException
51       */
52      boolean handleSessionTimeout(final ExpressoRequest request,
53                                   final ExpressoResponse response) throws ControllerException, NonHandleableException;
54  
55      /***
56       * Validate the bean and return any action errors.
57       *
58       * @param request     ControllerRequest
59       * @param errorsToAdd ErrorCollection
60       * @return ErrorCollection with or without any specified errors.
61       * @throws ControllerException upon error.
62       */
63      ErrorCollection validate(final ExpressoRequest request, ErrorCollection errorsToAdd) throws ControllerException;
64  
65      /***
66       * Saves the specified completion bean to session.
67       *
68       * @param request          the ExpressoRequest that contains the session.
69       * @param wizardBeanToSave CompletionBean
70       */
71      void setCompletionBean(final ExpressoRequest request, CompletionBean wizardBeanToSave) throws ControllerException;
72  }