1 package com.sri.emo.wizard.wizardgateway;
2
3 import com.jcorporate.expresso.core.controller.Controller;
4 import com.jcorporate.expresso.core.controller.ExpressoRequest;
5 import com.jcorporate.expresso.core.db.DBException;
6 import com.sri.common.dbobj.ObjectNotFoundException;
7 import com.sri.emo.dbobj.WizDefinition;
8 import com.sri.emo.wizard.WizDefinitionRepository;
9 import com.sri.emo.wizard.expressoimpl.WizardController;
10
11
12 abstract public class WizardGatewayHandler {
13
14
15 /***
16 * The parent controller. If we need to redirect to another state inside
17 * this particular controller, we use this field.
18 */
19 protected final Controller owner;
20
21
22 /***
23 * The repository to use for data access methods.
24 */
25 private final WizDefinitionRepository repository;
26
27 /***
28 * Constructor for a wizard gateway handler that takes a reference to the
29 * controller and the Repository interface
30 *
31 * @param myOwner Controller
32 * @param myRepository The repository to use for data access methods.
33 */
34 public WizardGatewayHandler(final Controller myOwner, final WizDefinitionRepository myRepository) {
35 assert myOwner != null;
36 assert myRepository != null;
37
38 owner = myOwner;
39 repository = myRepository;
40 }
41
42 /***
43 * Retrieve the wizard definition based upon the parameters in the controller request.
44 *
45 * @param request ControllerRequest the ControllerRequest object.
46 * @return WizDefinition the defined wizard definition.
47 * @throws DBException if we are unable to locate it in the database.
48 */
49 protected WizDefinition getWizDef(final ExpressoRequest request) throws DBException {
50 WizDefinition wizdef = null;
51 try {
52 wizdef = getRepository().findById(Integer.parseInt(request.getParameter(WizardController.
53 WIZ_PARAMETER_ID)));
54 } catch (ObjectNotFoundException ex) {
55 throw new DBException(ex);
56 }
57 return wizdef;
58 }
59
60
61 /***
62 * Method that grabs the owning controller.
63 *
64 * @return Controller instance. (never null)
65 */
66 protected Controller getOwner() {
67 return owner;
68 }
69
70 /***
71 * Method that grabs the repository we are to use for accessing wizard
72 * definition objects.
73 *
74 * @return WizDefinitionRepository
75 */
76 protected WizDefinitionRepository getRepository() {
77 return repository;
78 }
79 }