View Javadoc

1   package com.sri.emo.wizard.wizardgateway;
2   
3   import com.jcorporate.expresso.core.controller.Controller;
4   import com.jcorporate.expresso.core.controller.ControllerException;
5   import com.jcorporate.expresso.core.controller.ExpressoRequest;
6   import com.jcorporate.expresso.core.controller.ExpressoResponse;
7   import com.jcorporate.expresso.core.db.DBException;
8   import com.sri.common.controller.StateHandler;
9   import com.sri.emo.dbobj.WizDefinition;
10  import com.sri.emo.wizard.IWizardManager;
11  import com.sri.emo.wizard.WizDefinitionRepository;
12  
13  /***
14   * Runs the wizard.
15   *
16   * @author Michael Rimov
17   * @version 1.0
18   */
19  public class RunWizard extends WizardGatewayHandler implements StateHandler {
20  
21      /***
22       * Name of the State for which this handler deals with.
23       */
24      public static final String STATE_NAME = "RunWizard";
25  
26  
27      /***
28       * Friendly description of this handler.
29       */
30      public static final String STATE_DESCRIPTION = "Run a Wizard";
31  
32  
33      /***
34       * Constructs this particular state handler.
35       *
36       * @param handlerOwner Controller the controller that is the parent of this
37       *                     state handler.
38       * @param myRepository WizDefinitionRepository the repository to use
39       *                     for data access methods.
40       */
41      public RunWizard(final Controller handlerOwner, final WizDefinitionRepository myRepository) {
42          super(handlerOwner, myRepository);
43  
44  
45      }
46  
47      /***
48       * Called to handle the request.
49       *
50       * @param request  ControllerRequest The Function's ControllerRequest
51       *                 object.
52       * @param response ControllerResponse The Function's ControllerResponse
53       *                 object.
54       * @throws DBException         upon underlying database exception error.
55       * @throws ControllerException upon underlying ControllerException error.
56       */
57      public void handleRequest(final ExpressoRequest request, final ExpressoResponse response) throws DBException,
58              ControllerException {
59  
60          WizDefinition definition = this.getWizDef(request);
61          Controller targetController = definition.getManagingController();
62          if (!(targetController instanceof IWizardManager)) {
63              throw new ControllerException("Class: " + targetController.getClass().getName()
64                      + " must implement interface: IWizardManager");
65          }
66  
67          ((IWizardManager) targetController).run(definition, request, response);
68  
69      }
70  
71  
72  }