Clover Coverage Report - Kuali Student 1.2-M4-SNAPSHOT (Aggregated)
Coverage timestamp: Wed Jul 20 2011 11:14:35 EDT
../../../../../../../img/srcFileCovDistChart8.png 27% 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
 
  (2)
 
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  8 toggle public SearchConfigFormatter (Map<String, SearchTypeInfo> searchInfoTypeMap,
23    Map<String, String> queryMap)
24    {
25  8 this.searchInfoTypeMap = searchInfoTypeMap;
26  8 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  8 toggle public String formatForWiki ()
61    {
62  8 for (String name : this.searchInfoTypeMap.keySet ())
63    {
64  66 formatSearchType (name, this.searchInfoTypeMap.get (name));
65    }
66   
67  8 return builder.toString ();
68    }
69   
 
70  66 toggle private void formatSearchType (String name, SearchTypeInfo st)
71    {
72  66 builder.append (rowSeperator);
73  66 builder.append ("h1. " + st.getName () + " (" + name + ")");
74  66 builder.append ("{anchor:" + name + "}");
75  66 builder.append (rowSeperator);
76  66 builder.append (colSeperator);
77  66 builder.append ("*Search Type Key*");
78  66 builder.append (colSeperator);
79  66 builder.append (st.getKey ());
80  66 builder.append (colSeperator);
81  66 builder.append (rowSeperator);
82  66 builder.append (colSeperator);
83  66 builder.append ("*Name*");
84  66 builder.append (colSeperator);
85  66 builder.append (st.getName ());
86  66 builder.append (colSeperator);
87  66 builder.append (rowSeperator);
88  66 builder.append (colSeperator);
89  66 builder.append ("*Description*");
90  66 builder.append (colSeperator);
91  66 builder.append (st.getDesc ());
92  66 builder.append (colSeperator);
93  66 builder.append (rowSeperator);
94   
95  66 builder.append (rowSeperator);
96  66 builder.append ("h2. "
97    + st.getSearchCriteriaTypeInfo ().getQueryParams ().size ()
98    + " Possible Search Criteria");
99  66 builder.append (rowSeperator);
100  66 builder.append (colSeperator);
101  66 builder.append ("*Type Key*");
102  66 builder.append (colSeperator);
103  66 builder.append (st.getSearchCriteriaTypeInfo ().getKey ());
104  66 builder.append (colSeperator);
105  66 builder.append (rowSeperator);
106  66 builder.append (colSeperator);
107  66 builder.append ("*Name*");
108  66 builder.append (colSeperator);
109  66 builder.append (st.getSearchCriteriaTypeInfo ().getName ());
110  66 builder.append (colSeperator);
111  66 builder.append (rowSeperator);
112  66 builder.append (colSeperator);
113  66 builder.append ("*Description*");
114  66 builder.append (colSeperator);
115  66 builder.append (st.getSearchCriteriaTypeInfo ().getDesc ());
116  66 builder.append (colSeperator);
117  66 builder.append (rowSeperator);
118   
119    // criteria table
120  66 builder.append (rowSeperator);
121  66 builder.append (colSeperator);
122  66 builder.append (colSeperator);
123  66 builder.append ("Name");
124  66 builder.append (colSeperator);
125  66 builder.append (colSeperator);
126  66 builder.append ("Optional");
127  66 builder.append (colSeperator);
128  66 builder.append (colSeperator);
129  66 builder.append ("DataType");
130  66 builder.append (colSeperator);
131  66 builder.append (colSeperator);
132  66 builder.append ("Read Only");
133  66 builder.append (colSeperator);
134  66 builder.append (colSeperator);
135  66 builder.append ("Type Key");
136  66 builder.append (colSeperator);
137  66 builder.append (colSeperator);
138  66 builder.append ("Implementation");
139  66 builder.append (colSeperator);
140  66 builder.append (colSeperator);
141  66 builder.append (rowSeperator);
142  66 for (QueryParamInfo qp : st.getSearchCriteriaTypeInfo ().getQueryParams ())
143    {
144  209 builder.append (colSeperator);
145  209 builder.append (qp.getFieldDescriptor ().getName ());
146  209 builder.append (colSeperator);
147  209 builder.append (qp.isOptional ());
148  209 builder.append (colSeperator);
149  209 builder.append (qp.getFieldDescriptor ().getDataType ());
150  209 builder.append (colSeperator);
151  209 builder.append (qp.getFieldDescriptor ().isReadOnly ());
152  209 builder.append (colSeperator);
153  209 builder.append (qp.getKey ());
154  209 builder.append (colSeperator);
155  209 builder.append ("{code:borderStyle=none}" + queryMap.get (qp.getKey ()) + "{code}");
156  209 builder.append (colSeperator);
157  209 builder.append (rowSeperator);
158    }
159   
160   
161  66 builder.append (rowSeperator);
162  66 builder.append ("h2. "
163    + st.getSearchResultTypeInfo ().getResultColumns ().size ()
164    + " Result Columns Returned");
165  66 builder.append (rowSeperator);
166  66 builder.append (colSeperator);
167  66 builder.append ("*Type Key*");
168  66 builder.append (colSeperator);
169  66 builder.append (st.getSearchResultTypeInfo ().getKey ());
170  66 builder.append (colSeperator);
171  66 builder.append (rowSeperator);
172  66 builder.append (colSeperator);
173  66 builder.append ("*Name*");
174  66 builder.append (colSeperator);
175  66 builder.append (st.getSearchResultTypeInfo ().getName ());
176  66 builder.append (colSeperator);
177  66 builder.append (rowSeperator);
178  66 builder.append (colSeperator);
179  66 builder.append ("*Description*");
180  66 builder.append (colSeperator);
181  66 builder.append (st.getSearchResultTypeInfo ().getDesc ());
182  66 builder.append (colSeperator);
183  66 builder.append (rowSeperator);
184   
185    // results table
186  66 builder.append (rowSeperator);
187  66 builder.append (colSeperator);
188  66 builder.append (colSeperator);
189  66 builder.append ("Name");
190  66 builder.append (colSeperator);
191  66 builder.append (colSeperator);
192  66 builder.append ("DataType");
193  66 builder.append (colSeperator);
194  66 builder.append (colSeperator);
195  66 builder.append ("Type Key");
196  66 builder.append (colSeperator);
197  66 builder.append (colSeperator);
198  66 builder.append (rowSeperator);
199  66 for (ResultColumnInfo rc : st.getSearchResultTypeInfo ().getResultColumns ())
200    {
201  298 builder.append (colSeperator);
202  298 builder.append (rc.getName ());
203  298 builder.append (colSeperator);
204  298 builder.append (rc.getDataType ());
205  298 builder.append (colSeperator);
206  298 builder.append (rc.getKey ());
207  298 builder.append (colSeperator);
208  298 builder.append (rowSeperator);
209    }
210   
211    // impl
212  66 builder.append (rowSeperator);
213  66 builder.append ("h2. JPQL Implementation");
214  66 builder.append (rowSeperator);
215  66 builder.append ("{code}");
216  66 builder.append (rowSeperator);
217  66 builder.append (queryMap.get (st.getKey ()));
218  66 builder.append (rowSeperator);
219  66 builder.append ("{code}");
220  66 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    }