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.SearchRequest;
9 import com.hack23.cia.service.api.user.SearchResponse;
10 import com.hack23.cia.web.action.user.SearchAction;
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 SearchActionHandler.
18 */
19 public class SearchActionHandler extends
20 AbstractUserActionHandler<SearchAction, SearchRequest, SearchResponse> {
21
22 /***
23 * Instantiates a new search action handler.
24 *
25 * @param viewFactoryService the view factory service
26 * @param applicationManager the application manager
27 */
28 public SearchActionHandler(final ViewFactoryService viewFactoryService,
29 final ApplicationManager applicationManager) {
30 super(viewFactoryService, applicationManager);
31 }
32
33
34
35
36
37
38
39 @Override
40 public final SearchRequest createServiceRequest(final SearchAction action) {
41 return new SearchRequest(getUserStateService().getUserSessionId(),
42 action.getSearchString());
43 }
44
45
46
47
48
49
50 @SuppressWarnings("unchecked")
51 @Override
52 public final Class getSupportedAction() {
53 return SearchAction.class;
54 }
55
56
57
58
59
60
61
62
63 @Override
64 public final ModelAndView handleSuccessResponse(final SearchAction action,
65 final SearchResponse response) {
66 return new ParliamentMemberListModelAndView(response.getUserSessionDTO(),
67 action, ParliamentMemberListViewSpecification.SearchResultView,
68 response.getParliamentMemberList());
69 }
70
71 }