View Javadoc

1   package com.atlassian.plugins.rest.common.expand.entity;
2   
3   import com.atlassian.plugins.rest.common.expand.parameter.Indexes;
4   import com.google.common.collect.Lists;
5   
6   import java.util.List;
7   
8   public class ListWrapperCallBacks {
9       public static <T> ListWrapperCallback<T> identity(final List<T> items) {
10          return new ListWrapperCallback<T>() {
11              public List<T> getItems(Indexes indexes) {
12                  return items;
13              }
14          };
15      }
16  
17      public static <T> ListWrapperCallback<T> ofList(final List<T> items) {
18          return ofList(items, Integer.MAX_VALUE);
19      }
20  
21      public static <T> ListWrapperCallback<T> ofList(final List<T> items, final int maxResults) {
22          return new ListWrapperCallback<T>() {
23              public List<T> getItems(Indexes indexes) {
24                  final List<T> toReturn = Lists.newLinkedList();
25                  for (Integer i : indexes.getIndexes(items.size())) {
26                      if (i < items.size()) {
27                          toReturn.add(items.get(i));
28                      }
29                      if (toReturn.size() == maxResults) {
30                          break;
31                      }
32                  }
33                  return toReturn;
34              }
35          };
36      }
37  }