Clover Coverage Report - KS Common 1.2.1-SNAPSHOT (Aggregated)
Coverage timestamp: Wed Nov 2 2011 04:55:08 EST
../../../../../../../img/srcFileCovDistChart8.png 11% of files have more coverage
166   251   18   18.44
8   225   0.11   9
9     2  
1    
 
  SearchConfigFormatter       Line # 10 166 0% 18 43 76.5% 0.76502734
 
  (1)
 
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   
 
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    // private Map<String, SearchCriteriaTypeInfo> searchCriteriaTypeMap;
19    // private Map<String, SearchResultTypeInfo> searchResultTypeInfoMap;
20    private Map<String, String> queryMap;
21   
 
22  5 toggle public SearchConfigFormatter (Map<String, SearchTypeInfo> searchInfoTypeMap,
23    Map<String, String> queryMap)
24    {
25  5 this.searchInfoTypeMap = searchInfoTypeMap;
26  5 this.queryMap = queryMap;
27    }
28   
 
29  0 toggle public String getRowSeperator ()
30    {
31  0 return rowSeperator;
32    }
33   
 
34  0 toggle public void setRowSeperator (String rowSeperator)
35    {
36  0 this.rowSeperator = rowSeperator;
37    }
38   
 
39  0 toggle public String getColSeparator ()
40    {
41  0 return colSeperator;
42    }
43   
 
44  0 toggle public void setColSeparator (String separator)
45    {
46  0 this.colSeperator = separator;
47    }
48   
 
49  0 toggle 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   
 
60  5 toggle public String formatForWiki ()
61    {
62  5 for (String name : this.searchInfoTypeMap.keySet ())
63    {
64  28 formatSearchType (name, this.searchInfoTypeMap.get (name));
65    }
66   
67  5 return builder.toString ();
68    }
69   
 
70  28 toggle private void formatSearchType (String name, SearchTypeInfo st)
71    {
72  28 builder.append (rowSeperator);
73  28 builder.append ("h1. " + st.getName () + " (" + name + ")");
74  28 builder.append ("{anchor:" + name + "}");
75  28 builder.append (rowSeperator);
76  28 builder.append (colSeperator);
77  28 builder.append ("*Search Type Key*");
78  28 builder.append (colSeperator);
79  28 builder.append (st.getKey ());
80  28 builder.append (colSeperator);
81  28 builder.append (rowSeperator);
82  28 builder.append (colSeperator);
83  28 builder.append ("*Name*");
84  28 builder.append (colSeperator);
85  28 builder.append (st.getName ());
86  28 builder.append (colSeperator);
87  28 builder.append (rowSeperator);
88  28 builder.append (colSeperator);
89  28 builder.append ("*Description*");
90  28 builder.append (colSeperator);
91  28 builder.append (st.getDesc ());
92  28 builder.append (colSeperator);
93  28 builder.append (rowSeperator);
94   
95  28 builder.append (rowSeperator);
96  28 builder.append ("h2. "
97    + st.getSearchCriteriaTypeInfo ().getQueryParams ().size ()
98    + " Possible Search Criteria");
99  28 builder.append (rowSeperator);
100  28 builder.append (colSeperator);
101  28 builder.append ("*Type Key*");
102  28 builder.append (colSeperator);
103  28 builder.append (st.getSearchCriteriaTypeInfo ().getKey ());
104  28 builder.append (colSeperator);
105  28 builder.append (rowSeperator);
106  28 builder.append (colSeperator);
107  28 builder.append ("*Name*");
108  28 builder.append (colSeperator);
109  28 builder.append (st.getSearchCriteriaTypeInfo ().getName ());
110  28 builder.append (colSeperator);
111  28 builder.append (rowSeperator);
112  28 builder.append (colSeperator);
113  28 builder.append ("*Description*");
114  28 builder.append (colSeperator);
115  28 builder.append (st.getSearchCriteriaTypeInfo ().getDesc ());
116  28 builder.append (colSeperator);
117  28 builder.append (rowSeperator);
118   
119    // criteria table
120  28 builder.append (rowSeperator);
121  28 builder.append (colSeperator);
122  28 builder.append (colSeperator);
123  28 builder.append ("Name");
124  28 builder.append (colSeperator);
125  28 builder.append (colSeperator);
126  28 builder.append ("Optional");
127  28 builder.append (colSeperator);
128  28 builder.append (colSeperator);
129  28 builder.append ("DataType");
130  28 builder.append (colSeperator);
131  28 builder.append (colSeperator);
132  28 builder.append ("Read Only");
133  28 builder.append (colSeperator);
134  28 builder.append (colSeperator);
135  28 builder.append ("Type Key");
136  28 builder.append (colSeperator);
137  28 builder.append (colSeperator);
138  28 builder.append ("Implementation");
139  28 builder.append (colSeperator);
140  28 builder.append (colSeperator);
141  28 builder.append (rowSeperator);
142  28 for (QueryParamInfo qp : st.getSearchCriteriaTypeInfo ().getQueryParams ())
143    {
144  63 builder.append (colSeperator);
145  63 builder.append (qp.getFieldDescriptor ().getName ());
146  63 builder.append (colSeperator);
147  63 builder.append (qp.isOptional ());
148  63 builder.append (colSeperator);
149  63 builder.append (qp.getFieldDescriptor ().getDataType ());
150  63 builder.append (colSeperator);
151  63 builder.append (qp.getFieldDescriptor ().isReadOnly ());
152  63 builder.append (colSeperator);
153  63 builder.append (qp.getKey ());
154  63 builder.append (colSeperator);
155  63 builder.append ("{code:borderStyle=none}" + queryMap.get (qp.getKey ()) + "{code}");
156  63 builder.append (colSeperator);
157  63 builder.append (rowSeperator);
158    }
159   
160   
161  28 builder.append (rowSeperator);
162  28 builder.append ("h2. "
163    + st.getSearchResultTypeInfo ().getResultColumns ().size ()
164    + " Result Columns Returned");
165  28 builder.append (rowSeperator);
166  28 builder.append (colSeperator);
167  28 builder.append ("*Type Key*");
168  28 builder.append (colSeperator);
169  28 builder.append (st.getSearchResultTypeInfo ().getKey ());
170  28 builder.append (colSeperator);
171  28 builder.append (rowSeperator);
172  28 builder.append (colSeperator);
173  28 builder.append ("*Name*");
174  28 builder.append (colSeperator);
175  28 builder.append (st.getSearchResultTypeInfo ().getName ());
176  28 builder.append (colSeperator);
177  28 builder.append (rowSeperator);
178  28 builder.append (colSeperator);
179  28 builder.append ("*Description*");
180  28 builder.append (colSeperator);
181  28 builder.append (st.getSearchResultTypeInfo ().getDesc ());
182  28 builder.append (colSeperator);
183  28 builder.append (rowSeperator);
184   
185    // results table
186  28 builder.append (rowSeperator);
187  28 builder.append (colSeperator);
188  28 builder.append (colSeperator);
189  28 builder.append ("Name");
190  28 builder.append (colSeperator);
191  28 builder.append (colSeperator);
192  28 builder.append ("DataType");
193  28 builder.append (colSeperator);
194  28 builder.append (colSeperator);
195  28 builder.append ("Type Key");
196  28 builder.append (colSeperator);
197  28 builder.append (colSeperator);
198  28 builder.append (rowSeperator);
199  28 for (ResultColumnInfo rc : st.getSearchResultTypeInfo ().getResultColumns ())
200    {
201  84 builder.append (colSeperator);
202  84 builder.append (rc.getName ());
203  84 builder.append (colSeperator);
204  84 builder.append (rc.getDataType ());
205  84 builder.append (colSeperator);
206  84 builder.append (rc.getKey ());
207  84 builder.append (colSeperator);
208  84 builder.append (rowSeperator);
209    }
210   
211    // impl
212  28 builder.append (rowSeperator);
213  28 builder.append ("h2. JPQL Implementation");
214  28 builder.append (rowSeperator);
215  28 builder.append ("{code}");
216  28 builder.append (rowSeperator);
217  28 builder.append (queryMap.get (st.getKey ()));
218  28 builder.append (rowSeperator);
219  28 builder.append ("{code}");
220  28 builder.append (rowSeperator);
221    }
222   
 
223  0 toggle 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    }