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 }