1 |
|
package org.kuali.student.common.search.service.impl; |
2 |
|
|
3 |
|
import java.util.Map; |
4 |
|
|
5 |
|
import org.kuali.student.common.dictionary.dto.ObjectStructureDefinition; |
6 |
|
import org.kuali.student.common.search.dto.QueryParamInfo; |
7 |
|
import org.kuali.student.common.search.dto.ResultColumnInfo; |
8 |
|
import org.kuali.student.common.search.dto.SearchTypeInfo; |
9 |
|
|
|
|
| 76.5% |
Uncovered Elements: 43 (183) |
Complexity: 18 |
Complexity Density: 0.11 |
|
10 |
|
public class SearchConfigFormatter |
11 |
|
{ |
12 |
|
|
13 |
|
private StringBuilder builder = new StringBuilder (5000); |
14 |
|
private ObjectStructureDefinition os; |
15 |
|
private String rowSeperator = "\n"; |
16 |
|
private String colSeperator = "|"; |
17 |
|
private Map<String, SearchTypeInfo> searchInfoTypeMap; |
18 |
|
|
19 |
|
|
20 |
|
private Map<String, String> queryMap; |
21 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
|
22 |
8
|
public SearchConfigFormatter (Map<String, SearchTypeInfo> searchInfoTypeMap,... |
23 |
|
Map<String, String> queryMap) |
24 |
|
{ |
25 |
8
|
this.searchInfoTypeMap = searchInfoTypeMap; |
26 |
8
|
this.queryMap = queryMap; |
27 |
|
} |
28 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
29 |
0
|
public String getRowSeperator ()... |
30 |
|
{ |
31 |
0
|
return rowSeperator; |
32 |
|
} |
33 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
34 |
0
|
public void setRowSeperator (String rowSeperator)... |
35 |
|
{ |
36 |
0
|
this.rowSeperator = rowSeperator; |
37 |
|
} |
38 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
39 |
0
|
public String getColSeparator ()... |
40 |
|
{ |
41 |
0
|
return colSeperator; |
42 |
|
} |
43 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
44 |
0
|
public void setColSeparator (String separator)... |
45 |
|
{ |
46 |
0
|
this.colSeperator = separator; |
47 |
|
} |
48 |
|
|
|
|
| 0% |
Uncovered Elements: 7 (7) |
Complexity: 2 |
Complexity Density: 0.4 |
|
49 |
0
|
private String pad (String str, int size)... |
50 |
|
{ |
51 |
0
|
StringBuilder padStr = new StringBuilder (size); |
52 |
0
|
padStr.append (str); |
53 |
0
|
while (padStr.length () < size) |
54 |
|
{ |
55 |
0
|
padStr.append (' '); |
56 |
|
} |
57 |
0
|
return padStr.toString (); |
58 |
|
} |
59 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (3) |
Complexity: 1 |
Complexity Density: 0.33 |
|
60 |
8
|
public String formatForWiki ()... |
61 |
|
{ |
62 |
8
|
for (String name : this.searchInfoTypeMap.keySet ()) |
63 |
|
{ |
64 |
65
|
formatSearchType (name, this.searchInfoTypeMap.get (name)); |
65 |
|
} |
66 |
|
|
67 |
8
|
return builder.toString (); |
68 |
|
} |
69 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (132) |
Complexity: 1 |
Complexity Density: 0.01 |
|
70 |
65
|
private void formatSearchType (String name, SearchTypeInfo st)... |
71 |
|
{ |
72 |
65
|
builder.append (rowSeperator); |
73 |
65
|
builder.append ("h1. " + st.getName () + " (" + name + ")"); |
74 |
65
|
builder.append ("{anchor:" + name + "}"); |
75 |
65
|
builder.append (rowSeperator); |
76 |
65
|
builder.append (colSeperator); |
77 |
65
|
builder.append ("*Search Type Key*"); |
78 |
65
|
builder.append (colSeperator); |
79 |
65
|
builder.append (st.getKey ()); |
80 |
65
|
builder.append (colSeperator); |
81 |
65
|
builder.append (rowSeperator); |
82 |
65
|
builder.append (colSeperator); |
83 |
65
|
builder.append ("*Name*"); |
84 |
65
|
builder.append (colSeperator); |
85 |
65
|
builder.append (st.getName ()); |
86 |
65
|
builder.append (colSeperator); |
87 |
65
|
builder.append (rowSeperator); |
88 |
65
|
builder.append (colSeperator); |
89 |
65
|
builder.append ("*Description*"); |
90 |
65
|
builder.append (colSeperator); |
91 |
65
|
builder.append (st.getDesc ()); |
92 |
65
|
builder.append (colSeperator); |
93 |
65
|
builder.append (rowSeperator); |
94 |
|
|
95 |
65
|
builder.append (rowSeperator); |
96 |
65
|
builder.append ("h2. " |
97 |
|
+ st.getSearchCriteriaTypeInfo ().getQueryParams ().size () |
98 |
|
+ " Possible Search Criteria"); |
99 |
65
|
builder.append (rowSeperator); |
100 |
65
|
builder.append (colSeperator); |
101 |
65
|
builder.append ("*Type Key*"); |
102 |
65
|
builder.append (colSeperator); |
103 |
65
|
builder.append (st.getSearchCriteriaTypeInfo ().getKey ()); |
104 |
65
|
builder.append (colSeperator); |
105 |
65
|
builder.append (rowSeperator); |
106 |
65
|
builder.append (colSeperator); |
107 |
65
|
builder.append ("*Name*"); |
108 |
65
|
builder.append (colSeperator); |
109 |
65
|
builder.append (st.getSearchCriteriaTypeInfo ().getName ()); |
110 |
65
|
builder.append (colSeperator); |
111 |
65
|
builder.append (rowSeperator); |
112 |
65
|
builder.append (colSeperator); |
113 |
65
|
builder.append ("*Description*"); |
114 |
65
|
builder.append (colSeperator); |
115 |
65
|
builder.append (st.getSearchCriteriaTypeInfo ().getDesc ()); |
116 |
65
|
builder.append (colSeperator); |
117 |
65
|
builder.append (rowSeperator); |
118 |
|
|
119 |
|
|
120 |
65
|
builder.append (rowSeperator); |
121 |
65
|
builder.append (colSeperator); |
122 |
65
|
builder.append (colSeperator); |
123 |
65
|
builder.append ("Name"); |
124 |
65
|
builder.append (colSeperator); |
125 |
65
|
builder.append (colSeperator); |
126 |
65
|
builder.append ("Optional"); |
127 |
65
|
builder.append (colSeperator); |
128 |
65
|
builder.append (colSeperator); |
129 |
65
|
builder.append ("DataType"); |
130 |
65
|
builder.append (colSeperator); |
131 |
65
|
builder.append (colSeperator); |
132 |
65
|
builder.append ("Read Only"); |
133 |
65
|
builder.append (colSeperator); |
134 |
65
|
builder.append (colSeperator); |
135 |
65
|
builder.append ("Type Key"); |
136 |
65
|
builder.append (colSeperator); |
137 |
65
|
builder.append (colSeperator); |
138 |
65
|
builder.append ("Implementation"); |
139 |
65
|
builder.append (colSeperator); |
140 |
65
|
builder.append (colSeperator); |
141 |
65
|
builder.append (rowSeperator); |
142 |
65
|
for (QueryParamInfo qp : st.getSearchCriteriaTypeInfo ().getQueryParams ()) |
143 |
|
{ |
144 |
205
|
builder.append (colSeperator); |
145 |
205
|
builder.append (qp.getFieldDescriptor ().getName ()); |
146 |
205
|
builder.append (colSeperator); |
147 |
205
|
builder.append (qp.isOptional ()); |
148 |
205
|
builder.append (colSeperator); |
149 |
205
|
builder.append (qp.getFieldDescriptor ().getDataType ()); |
150 |
205
|
builder.append (colSeperator); |
151 |
205
|
builder.append (qp.getFieldDescriptor ().isReadOnly ()); |
152 |
205
|
builder.append (colSeperator); |
153 |
205
|
builder.append (qp.getKey ()); |
154 |
205
|
builder.append (colSeperator); |
155 |
205
|
builder.append ("{code:borderStyle=none}" + queryMap.get (qp.getKey ()) + "{code}"); |
156 |
205
|
builder.append (colSeperator); |
157 |
205
|
builder.append (rowSeperator); |
158 |
|
} |
159 |
|
|
160 |
|
|
161 |
65
|
builder.append (rowSeperator); |
162 |
65
|
builder.append ("h2. " |
163 |
|
+ st.getSearchResultTypeInfo ().getResultColumns ().size () |
164 |
|
+ " Result Columns Returned"); |
165 |
65
|
builder.append (rowSeperator); |
166 |
65
|
builder.append (colSeperator); |
167 |
65
|
builder.append ("*Type Key*"); |
168 |
65
|
builder.append (colSeperator); |
169 |
65
|
builder.append (st.getSearchResultTypeInfo ().getKey ()); |
170 |
65
|
builder.append (colSeperator); |
171 |
65
|
builder.append (rowSeperator); |
172 |
65
|
builder.append (colSeperator); |
173 |
65
|
builder.append ("*Name*"); |
174 |
65
|
builder.append (colSeperator); |
175 |
65
|
builder.append (st.getSearchResultTypeInfo ().getName ()); |
176 |
65
|
builder.append (colSeperator); |
177 |
65
|
builder.append (rowSeperator); |
178 |
65
|
builder.append (colSeperator); |
179 |
65
|
builder.append ("*Description*"); |
180 |
65
|
builder.append (colSeperator); |
181 |
65
|
builder.append (st.getSearchResultTypeInfo ().getDesc ()); |
182 |
65
|
builder.append (colSeperator); |
183 |
65
|
builder.append (rowSeperator); |
184 |
|
|
185 |
|
|
186 |
65
|
builder.append (rowSeperator); |
187 |
65
|
builder.append (colSeperator); |
188 |
65
|
builder.append (colSeperator); |
189 |
65
|
builder.append ("Name"); |
190 |
65
|
builder.append (colSeperator); |
191 |
65
|
builder.append (colSeperator); |
192 |
65
|
builder.append ("DataType"); |
193 |
65
|
builder.append (colSeperator); |
194 |
65
|
builder.append (colSeperator); |
195 |
65
|
builder.append ("Type Key"); |
196 |
65
|
builder.append (colSeperator); |
197 |
65
|
builder.append (colSeperator); |
198 |
65
|
builder.append (rowSeperator); |
199 |
65
|
for (ResultColumnInfo rc : st.getSearchResultTypeInfo ().getResultColumns ()) |
200 |
|
{ |
201 |
294
|
builder.append (colSeperator); |
202 |
294
|
builder.append (rc.getName ()); |
203 |
294
|
builder.append (colSeperator); |
204 |
294
|
builder.append (rc.getDataType ()); |
205 |
294
|
builder.append (colSeperator); |
206 |
294
|
builder.append (rc.getKey ()); |
207 |
294
|
builder.append (colSeperator); |
208 |
294
|
builder.append (rowSeperator); |
209 |
|
} |
210 |
|
|
211 |
|
|
212 |
65
|
builder.append (rowSeperator); |
213 |
65
|
builder.append ("h2. JPQL Implementation"); |
214 |
65
|
builder.append (rowSeperator); |
215 |
65
|
builder.append ("{code}"); |
216 |
65
|
builder.append (rowSeperator); |
217 |
65
|
builder.append (queryMap.get (st.getKey ())); |
218 |
65
|
builder.append (rowSeperator); |
219 |
65
|
builder.append ("{code}"); |
220 |
65
|
builder.append (rowSeperator); |
221 |
|
} |
222 |
|
|
|
|
| 0% |
Uncovered Elements: 26 (26) |
Complexity: 9 |
Complexity Density: 0.45 |
|
223 |
0
|
private String escapeWiki(String str) {... |
224 |
0
|
StringBuilder bldr = new StringBuilder(str.length()); |
225 |
0
|
boolean precededByBackSlash = false; |
226 |
0
|
for (int i = 0; i < str.length(); i++) { |
227 |
0
|
char c = str.charAt(i); |
228 |
0
|
switch (c) { |
229 |
0
|
case '\\': |
230 |
0
|
case '[': |
231 |
0
|
case '*': |
232 |
0
|
case ']': |
233 |
0
|
case '|': |
234 |
0
|
if (!precededByBackSlash) { |
235 |
0
|
bldr.append('\\'); |
236 |
|
} |
237 |
0
|
break; |
238 |
0
|
default: |
239 |
0
|
break; |
240 |
|
} |
241 |
0
|
bldr.append(c); |
242 |
0
|
if (c == '\\') { |
243 |
0
|
precededByBackSlash = true; |
244 |
|
} else { |
245 |
0
|
precededByBackSlash = false; |
246 |
|
} |
247 |
|
} |
248 |
0
|
return bldr.toString(); |
249 |
|
} |
250 |
|
|
251 |
|
} |