View Javadoc

1   package com.atlassian.user.search.page;
2   
3   import java.util.ArrayList;
4   import java.util.Iterator;
5   import java.util.List;
6   
7   public class PagerFactory
8   {
9       /**
10       * @param pagerOne
11       * @param pagerTwo
12       * @return a MergedPager if and only if both pagers passed in are not null
13       */
14      public static <T> Pager<T> getPager(Pager<T> pagerOne, Pager<T> pagerTwo)
15      {
16          if (pagerOne != null && pagerTwo != null)
17          {
18              List<Pager<T>> pagers = new ArrayList<Pager<T>>();
19              pagers.add(pagerOne);
20              pagers.add(pagerTwo);
21              return getPager(pagers);
22          }
23          else if (pagerOne != null)
24              return pagerOne;
25          else if (pagerTwo != null)
26              return pagerTwo;
27          else
28              return DefaultPager.emptyPager();
29      }
30  
31      public static <T> Pager<T> getPager(List<Pager<T>> pagers)
32      {
33          for (Iterator it = pagers.iterator(); it.hasNext();)
34          {
35              Pager pager = (Pager) it.next();
36              if (pager == null || pager.isEmpty())
37                  it.remove();
38          }
39  
40          if (pagers.size() == 0)
41              return DefaultPager.emptyPager();
42  
43          if (pagers.size() == 1)
44              return pagers.get(0);
45  
46          return new MergedListPager<T>(pagers);
47      }
48  }