Clover Coverage Report - Kuali Student 1.2-M3-SNAPSHOT (Aggregated)
Coverage timestamp: Mon Jun 6 2011 05:02:46 EDT
../../../../../../../img/srcFileCovDistChart8.png 36% 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  65 formatSearchType (name, this.searchInfoTypeMap.get (name));
65    }
66   
67  8 return builder.toString ();
68    }
69   
 
70  65 toggle 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    // criteria table
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    // results table
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    // impl
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   
 
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    }