1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
package org.kuali.student.common.ui.server.gwt; |
17 |
|
|
18 |
|
import com.google.gwt.user.server.rpc.RemoteServiceServlet; |
19 |
|
import org.kuali.student.common.ui.client.service.SearchRpcService; |
20 |
|
import org.kuali.student.core.assembly.transform.IdTranslatorFilter; |
21 |
|
import org.kuali.student.core.exceptions.MissingParameterException; |
22 |
|
import org.kuali.student.core.search.dto.*; |
23 |
|
import org.kuali.student.core.search.service.SearchDispatcher; |
24 |
|
|
25 |
|
import java.util.List; |
26 |
|
import java.util.concurrent.ConcurrentHashMap; |
27 |
|
|
|
|
| 0% |
Uncovered Elements: 38 (38) |
Complexity: 13 |
Complexity Density: 0.59 |
|
28 |
|
public class SearchDispatchRpcGwtServlet extends RemoteServiceServlet implements SearchRpcService { |
29 |
|
|
30 |
|
private static final long serialVersionUID = 1L; |
31 |
|
|
32 |
|
private IdTranslatorFilter idTranslatorFilter; |
33 |
|
|
34 |
|
private SearchDispatcher searchDispatcher; |
35 |
|
|
36 |
|
private ConcurrentHashMap<SearchRequest, SearchResult> cache = new ConcurrentHashMap<SearchRequest, SearchResult>(); |
37 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
38 |
0
|
public SearchDispatchRpcGwtServlet() {... |
39 |
0
|
super(); |
40 |
|
} |
41 |
|
|
42 |
|
|
43 |
|
|
44 |
|
|
45 |
|
@param |
46 |
|
@return |
47 |
|
@throws |
48 |
|
|
|
|
| 0% |
Uncovered Elements: 11 (11) |
Complexity: 4 |
Complexity Density: 0.57 |
|
49 |
0
|
@Override... |
50 |
|
public SearchResult search(SearchRequest searchRequest) { |
51 |
0
|
SearchResult searchResult = searchDispatcher.dispatchSearch(searchRequest); |
52 |
0
|
List<SearchParam> params = searchRequest.getParams(); |
53 |
0
|
if(params != null && params.size() > 0){ |
54 |
0
|
SearchParam firstParam = params.get(0); |
55 |
0
|
if(firstParam.getKey().equals("lu.queryParam.cluVersionIndId")){ |
56 |
0
|
doIdTranslation(searchResult); |
57 |
|
|
58 |
|
} |
59 |
|
} |
60 |
0
|
return searchResult; |
61 |
|
} |
62 |
|
|
|
|
| 0% |
Uncovered Elements: 7 (7) |
Complexity: 2 |
Complexity Density: 0.4 |
|
63 |
0
|
@Override... |
64 |
|
public SearchResult cachingSearch(SearchRequest searchRequest) { |
65 |
0
|
if(cache.containsKey(searchRequest)){ |
66 |
0
|
return cache.get(searchRequest); |
67 |
|
} |
68 |
0
|
SearchResult searchResult = search(searchRequest); |
69 |
0
|
cache.putIfAbsent(searchRequest, searchResult); |
70 |
0
|
return searchResult; |
71 |
|
} |
72 |
|
|
|
|
| 0% |
Uncovered Elements: 11 (11) |
Complexity: 4 |
Complexity Density: 0.57 |
|
73 |
0
|
private void doIdTranslation(SearchResult searchResult) {... |
74 |
0
|
for (SearchResultRow searchResultRow : searchResult.getRows()) { |
75 |
0
|
for (SearchResultCell searchResultCell : searchResultRow.getCells()) { |
76 |
0
|
String value = searchResultCell.getValue(); |
77 |
0
|
if (value != null && value.startsWith("kuali.atp")) { |
78 |
0
|
String newValue = idTranslatorFilter.getTranslationForAtp(value); |
79 |
0
|
if (newValue != null) { |
80 |
0
|
searchResultCell.setValue(newValue); |
81 |
|
} |
82 |
|
} |
83 |
|
} |
84 |
|
} |
85 |
|
} |
86 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
87 |
0
|
public void setSearchDispatcher(SearchDispatcher searchDispatcher) {... |
88 |
0
|
this.searchDispatcher = searchDispatcher; |
89 |
|
} |
90 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
91 |
0
|
public void setIdTranslatorFilter(IdTranslatorFilter idTranslatorFilter) {... |
92 |
0
|
this.idTranslatorFilter = idTranslatorFilter; |
93 |
|
} |
94 |
|
} |