1 package com.atlassian.user.search.page;
2
3 import java.util.ArrayList;
4 import java.util.Iterator;
5 import java.util.List;
6 import java.util.Arrays;
7
8 public class PagerFactory
9 {
10
11
12
13 public static <T> Pager<T> getPager(Pager<T> pagerOne, Pager<T> pagerTwo)
14 {
15 return getPager(Arrays.asList(pagerOne, pagerTwo));
16 }
17
18 public static <T> Pager<T> getPager(List<Pager<T>> pagers)
19 {
20 final List<Pager<T>> pagersCopy = new ArrayList<Pager<T>>(pagers);
21 for (Iterator it = pagersCopy.iterator(); it.hasNext();)
22 {
23 Pager pager = (Pager) it.next();
24 if (pager == null || pager.isEmpty())
25 it.remove();
26 }
27
28 if (pagersCopy.size() == 0)
29 return DefaultPager.emptyPager();
30
31 if (pagersCopy.size() == 1)
32 return pagersCopy.get(0);
33
34 return new MergedListPager<T>(pagersCopy);
35 }
36 }