Clover Coverage Report - Atlassian Core
Coverage timestamp: Sun Nov 30 2008 18:33:35 CST
207   417   38   8.28
26   325   0.18   25
25     1.52  
1    
 
 
  EasyList       Line # 14 207 38 35.7% 0.35658914
 
  (23)
 
1    package com.atlassian.core.util.collection;
2   
3    import com.atlassian.core.util.ObjectUtils;
4    import org.apache.commons.collections.CollectionUtils;
5   
6    import java.util.ArrayList;
7    import java.util.Collection;
8    import java.util.Collections;
9    import java.util.List;
10   
11    /**
12    * A replacement for UtilMisc.toList(). <p/> Most methods here are not null safe
13    */
 
14    public class EasyList
15    {
16   
17    /**
18    * Creates a list with one null value. Occasionally useful.
19    * @return a list with one null value.
20    */
 
21  0 toggle public static List buildNull()
22    {
23  0 List list = createList(1);
24  0 list.add(null);
25  0 return list;
26    }
27   
 
28  0 toggle public static List build(Object[] array)
29    {
30  0 List list = createList(array.length);
31   
32  0 for (int i = 0; i < array.length; i++)
33    {
34  0 Object o = array[i];
35  0 list.add(o);
36    }
37   
38  0 return list;
39    }
40   
 
41  0 toggle public static List buildNonNull(Object[] array)
42    {
43  0 List list;
44  0 if (array != null && array.length > 0)
45    {
46  0 list = createList(array.length);
47  0 for (int i = 0; i < array.length; i++)
48    {
49  0 Object o = array[i];
50  0 if (ObjectUtils.isNotEmpty(o))
51    {
52  0 list.add(o);
53    }
54    }
55    }
56    else
57    {
58  0 list = Collections.EMPTY_LIST;
59    }
60   
61  0 return list;
62    }
63   
 
64  0 toggle public static List buildNonNull(Collection c)
65    {
66  0 List list;
67  0 if (c != null && !c.isEmpty())
68    {
69  0 list = build(CollectionUtils.predicatedCollection(c, ObjectUtils.getIsSetPredicate()));
70    }
71    else
72    {
73  0 list = Collections.EMPTY_LIST;
74    }
75   
76  0 return list;
77    }
78   
 
79  0 toggle public static List buildNonNull(Object o)
80    {
81  0 if (ObjectUtils.isNotEmpty(o))
82    {
83  0 return build(o);
84    }
85    else
86    {
87  0 return build();
88    }
89    }
90   
 
91  0 toggle public static List build()
92    {
93  0 return Collections.EMPTY_LIST;
94    }
95   
 
96  8 toggle public static List build(Object o1)
97    {
98  8 List list = createList(1);
99   
100  8 list.add(o1);
101   
102  8 return list;
103    }
104   
 
105  2 toggle public static List build(Object o1, Object o2)
106    {
107  2 List list = createList(2);
108   
109  2 list.add(o1);
110  2 list.add(o2);
111   
112  2 return list;
113    }
114   
 
115  2 toggle public static List build(Object o1, Object o2, Object o3)
116    {
117  2 List list = createList(3);
118   
119  2 list.add(o1);
120  2 list.add(o2);
121  2 list.add(o3);
122   
123  2 return list;
124    }
125   
 
126  1 toggle public static List build(Object o1, Object o2, Object o3, Object o4)
127    {
128  1 List list = createList(4);
129   
130  1 list.add(o1);
131  1 list.add(o2);
132  1 list.add(o3);
133  1 list.add(o4);
134   
135  1 return list;
136    }
137   
 
138  1 toggle public static List build(Object o1, Object o2, Object o3, Object o4, Object o5)
139    {
140  1 List list = createList(5);
141   
142  1 list.add(o1);
143  1 list.add(o2);
144  1 list.add(o3);
145  1 list.add(o4);
146  1 list.add(o5);
147   
148  1 return list;
149    }
150   
 
151  1 toggle public static List build(Object o1, Object o2, Object o3, Object o4, Object o5, Object o6)
152    {
153  1 List list = createList(6);
154   
155  1 list.add(o1);
156  1 list.add(o2);
157  1 list.add(o3);
158  1 list.add(o4);
159  1 list.add(o5);
160  1 list.add(o6);
161   
162  1 return list;
163    }
164   
 
165  1 toggle public static List build(Object o1, Object o2, Object o3, Object o4, Object o5, Object o6, Object o7)
166    {
167  1 List list = createList(7);
168   
169  1 list.add(o1);
170  1 list.add(o2);
171  1 list.add(o3);
172  1 list.add(o4);
173  1 list.add(o5);
174  1 list.add(o6);
175  1 list.add(o7);
176   
177  1 return list;
178    }
179   
 
180  1 toggle public static List build(Object o1, Object o2, Object o3, Object o4, Object o5, Object o6, Object o7, Object o8)
181    {
182  1 List list = createList(8);
183   
184  1 list.add(o1);
185  1 list.add(o2);
186  1 list.add(o3);
187  1 list.add(o4);
188  1 list.add(o5);
189  1 list.add(o6);
190  1 list.add(o7);
191  1 list.add(o8);
192   
193  1 return list;
194    }
195   
 
196  0 toggle public static List build(Object o1, Object o2, Object o3, Object o4, Object o5, Object o6, Object o7, Object o8, Object o9)
197    {
198  0 List list = createList(9);
199   
200  0 list.add(o1);
201  0 list.add(o2);
202  0 list.add(o3);
203  0 list.add(o4);
204  0 list.add(o5);
205  0 list.add(o6);
206  0 list.add(o7);
207  0 list.add(o8);
208  0 list.add(o9);
209   
210  0 return list;
211    }
212   
 
213  0 toggle public static List build(Object o1, Object o2, Object o3, Object o4, Object o5, Object o6, Object o7, Object o8, Object o9, Object o10)
214    {
215  0 List list = createList(10);
216   
217  0 list.add(o1);
218  0 list.add(o2);
219  0 list.add(o3);
220  0 list.add(o4);
221  0 list.add(o5);
222  0 list.add(o6);
223  0 list.add(o7);
224  0 list.add(o8);
225  0 list.add(o9);
226  0 list.add(o10);
227   
228  0 return list;
229    }
230   
 
231  0 toggle public static List build(Object o1, Object o2, Object o3, Object o4, Object o5, Object o6, Object o7, Object o8, Object o9, Object o10, Object o11)
232    {
233  0 List list = createList(11);
234   
235  0 list.add(o1);
236  0 list.add(o2);
237  0 list.add(o3);
238  0 list.add(o4);
239  0 list.add(o5);
240  0 list.add(o6);
241  0 list.add(o7);
242  0 list.add(o8);
243  0 list.add(o9);
244  0 list.add(o10);
245  0 list.add(o11);
246   
247  0 return list;
248    }
249   
 
250  0 toggle public static List build(Object o1, Object o2, Object o3, Object o4, Object o5, Object o6, Object o7, Object o8, Object o9, Object o10,
251    Object o11, Object o12)
252    {
253  0 List list = createList(12);
254   
255  0 list.add(o1);
256  0 list.add(o2);
257  0 list.add(o3);
258  0 list.add(o4);
259  0 list.add(o5);
260  0 list.add(o6);
261  0 list.add(o7);
262  0 list.add(o8);
263  0 list.add(o9);
264  0 list.add(o10);
265  0 list.add(o11);
266  0 list.add(o12);
267   
268  0 return list;
269    }
270   
 
271  0 toggle public static List build(Object o1, Object o2, Object o3, Object o4, Object o5, Object o6, Object o7, Object o8, Object o9, Object o10,
272    Object o11, Object o12, Object o13)
273    {
274  0 List list = createList(13);
275   
276  0 list.add(o1);
277  0 list.add(o2);
278  0 list.add(o3);
279  0 list.add(o4);
280  0 list.add(o5);
281  0 list.add(o6);
282  0 list.add(o7);
283  0 list.add(o8);
284  0 list.add(o9);
285  0 list.add(o10);
286  0 list.add(o11);
287  0 list.add(o12);
288  0 list.add(o13);
289   
290  0 return list;
291    }
292   
 
293  0 toggle public static List build(Object o1, Object o2, Object o3, Object o4, Object o5, Object o6, Object o7, Object o8, Object o9, Object o10,
294    Object o11, Object o12, Object o13, Object o14)
295    {
296  0 List list = createList(14);
297   
298  0 list.add(o1);
299  0 list.add(o2);
300  0 list.add(o3);
301  0 list.add(o4);
302  0 list.add(o5);
303  0 list.add(o6);
304  0 list.add(o7);
305  0 list.add(o8);
306  0 list.add(o9);
307  0 list.add(o10);
308  0 list.add(o11);
309  0 list.add(o12);
310  0 list.add(o13);
311  0 list.add(o14);
312   
313  0 return list;
314    }
315   
 
316  0 toggle public static List build(Object o1, Object o2, Object o3, Object o4, Object o5, Object o6, Object o7, Object o8, Object o9, Object o10,
317    Object o11, Object o12, Object o13, Object o14, Object o15, Object o16, Object o17, Object o18, Object o19, Object o20, Object o21,
318    Object o22, Object o23, Object o24, Object o25, Object o26)
319    {
320  0 List list = createList(26);
321   
322  0 list.add(o1);
323  0 list.add(o2);
324  0 list.add(o3);
325  0 list.add(o4);
326  0 list.add(o5);
327  0 list.add(o6);
328  0 list.add(o7);
329  0 list.add(o8);
330  0 list.add(o9);
331  0 list.add(o10);
332  0 list.add(o11);
333  0 list.add(o12);
334  0 list.add(o13);
335  0 list.add(o14);
336  0 list.add(o15);
337  0 list.add(o16);
338  0 list.add(o17);
339  0 list.add(o18);
340  0 list.add(o19);
341  0 list.add(o20);
342  0 list.add(o21);
343  0 list.add(o22);
344  0 list.add(o23);
345  0 list.add(o24);
346  0 list.add(o25);
347  0 list.add(o26);
348   
349  0 return list;
350    }
351   
 
352  0 toggle public static List build(Collection collection)
353    {
354  0 if (collection == null) return null;
355  0 return new ArrayList(collection);
356    }
357   
 
358  24 toggle public static List createList(int size)
359    {
360  24 return new ArrayList(size);
361    }
362   
363    /**
364    * Merge a maximum of three lists.
365    * Null lists passed in will be ignored.
366    *
367    * @param a The first list.
368    * @param b The second list.
369    * @param c The third list.
370    * @return A merged list containing the objects of all three passed in lists.
371    */
 
372  4 toggle public static List mergeLists(List a, List b, List c)
373    {
374  4 List d = EasyList.createList(0);
375  4 if (a != null)
376    {
377  2 d.addAll(a);
378    }
379  4 if (b != null)
380    {
381  3 d.addAll(b);
382    }
383  4 if (c != null)
384    {
385  1 d.addAll(c);
386    }
387  4 return d;
388    }
389   
390    /**
391    * Splits a list into a number of sublists of the correct length. Note this will create a 'shallow' split, in other
392    * words if you set/remove on the sublists, this will modify the parent list as well (same vice versa). Therefore,
393    * DO NOT publish the result of this method to clients as the you will be publishing read/write access to your
394    * underlying data and the results will be unpredictable, especially in a multi-threaded context.
395    *
396    * @param list
397    * The list to split
398    * @param sublength
399    * Length of the sublists
400    * @return A list of lists of the correct length
401    */
 
402  5 toggle public static List shallowSplit(List list, int sublength)
403    {
404    // if we have any remainder, then we will add one to our division to correctly size the result list
405  4 int overflow = ((list.size() % sublength) > 0) ? 1 : 0;
406  4 List result = new ArrayList((list.size() / sublength) + overflow);
407  4 int i = 0;
408  10 while (i < list.size())
409    {
410  6 int endIndex = (i + sublength) > list.size() ? list.size() : i + sublength;
411  6 result.add(list.subList(i, endIndex));
412  6 i += sublength;
413    }
414   
415  4 return result;
416    }
417    }