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.PartyRequest;
9 import com.hack23.cia.service.api.user.TopListResponse;
10 import com.hack23.cia.web.action.user.PartyAction;
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.ParliamentMemberListModelAndView;
14 import com.hack23.cia.web.viewfactory.api.user.ParliamentMemberListModelAndView.ParliamentMemberListViewSpecification;
15
16 /***
17 * The Class PartyActionHandler.
18 */
19 public class PartyActionHandler
20 extends
21 AbstractTopListActionHandler<PartyAction, PartyRequest, TopListResponse> {
22
23 /***
24 * Instantiates a new party action handler.
25 *
26 * @param viewFactoryService the view factory service
27 * @param applicationManager the application manager
28 */
29 public PartyActionHandler(final ViewFactoryService viewFactoryService,
30 final ApplicationManager applicationManager) {
31 super(viewFactoryService, applicationManager);
32 }
33
34
35
36
37
38
39
40 @Override
41 public final PartyRequest createServiceRequest(final PartyAction action) {
42
43 return new PartyRequest(getUserStateService().getUserSessionId(),
44 action.getParty(), action.getOperation());
45 }
46
47
48
49
50
51
52 @SuppressWarnings("unchecked")
53 @Override
54 public final Class getSupportedAction() {
55 return PartyAction.class;
56 }
57
58
59
60
61
62
63
64
65 @Override
66 public final ModelAndView handleSuccessResponse(final PartyAction action,
67 final TopListResponse response) {
68 ModelAndView modelAndView = null;
69
70 switch (action.getOperation()) {
71 case TopAbsent:
72 modelAndView = new ParliamentMemberListModelAndView(response
73 .getUserSessionDTO(), action,
74 ParliamentMemberListViewSpecification.TopAbsentInPartyView,
75 response.getParliamentMembers());
76 break;
77 case TopPresent:
78 modelAndView = new ParliamentMemberListModelAndView(
79 response.getUserSessionDTO(),
80 action,
81 ParliamentMemberListViewSpecification.TopPresentInPartyView,
82 response.getParliamentMembers());
83 break;
84 case TopWinners:
85 modelAndView = new ParliamentMemberListModelAndView(
86 response.getUserSessionDTO(),
87 action,
88 ParliamentMemberListViewSpecification.TopWinnersInPartyView,
89 response.getParliamentMembers());
90 break;
91 case TopLosers:
92 modelAndView = new ParliamentMemberListModelAndView(response
93 .getUserSessionDTO(), action,
94 ParliamentMemberListViewSpecification.TopLosersInPartyView,
95 response.getParliamentMembers());
96 break;
97 case TopRebels:
98 modelAndView = new ParliamentMemberListModelAndView(response
99 .getUserSessionDTO(), action,
100 ParliamentMemberListViewSpecification.TopRebelsInPartyView,
101 response.getParliamentMembers());
102 break;
103 case TopLoyals:
104 modelAndView = new ParliamentMemberListModelAndView(response
105 .getUserSessionDTO(), action,
106 ParliamentMemberListViewSpecification.TopLoyalsInPartyView,
107 response.getParliamentMembers());
108 break;
109 default:
110 break;
111 }
112 return modelAndView;
113
114 }
115
116 }