1
2
3
4
5 package com.hack23.cia.web.controller.user;
6
7 import com.hack23.cia.service.api.application.ApplicationManager;
8 import com.hack23.cia.service.api.user.UserRequest;
9 import com.hack23.cia.service.api.user.UserResponse;
10 import com.hack23.cia.web.action.user.UserAction;
11 import com.hack23.cia.web.viewfactory.api.common.ModelAndView;
12 import com.hack23.cia.web.viewfactory.api.common.ViewFactoryService;
13 import com.hack23.cia.web.viewfactory.api.user.UserModelAndView;
14 import com.hack23.cia.web.viewfactory.api.user.UserModelAndView.UserViewSpecification;
15
16 /***
17 * The Class UserActionHandler.
18 */
19 public class UserActionHandler extends
20 AbstractUserActionHandler<UserAction, UserRequest, UserResponse> {
21
22 /***
23 * Instantiates a new user action handler.
24 *
25 * @param viewFactoryService the view factory service
26 * @param applicationManager the application manager
27 */
28 public UserActionHandler(final ViewFactoryService viewFactoryService,
29 final ApplicationManager applicationManager) {
30 super(viewFactoryService, applicationManager);
31 }
32
33
34
35
36
37
38
39 @Override
40 public final UserRequest createServiceRequest(final UserAction action) {
41 return new UserRequest(getUserStateService().getUserSessionId(), action
42 .getOperation());
43 }
44
45
46
47
48
49
50 @SuppressWarnings("unchecked")
51 @Override
52 public final Class getSupportedAction() {
53 return UserAction.class;
54 }
55
56
57
58
59
60
61
62
63 @Override
64 public final ModelAndView handleSuccessResponse(final UserAction action,
65 final UserResponse response) {
66
67 ModelAndView modelAndView = null;
68 switch (action.getOperation()) {
69 case StartPage:
70 modelAndView = new UserModelAndView(response.getUserSessionDTO(),response.getPoliticalParties(),
71 action, UserViewSpecification.WelcomePageView);
72 break;
73 case UserHistory:
74 modelAndView = new UserModelAndView(response.getUserSessionDTO(),response.getPoliticalParties(),
75 action, UserViewSpecification.UserHistoryView);
76 break;
77 default:
78 break;
79 }
80
81 return modelAndView;
82 }
83
84 }