package be.drissamri.rest.resource; import javax.ws.rs.core.UriInfo; import java.util.Collection; import java.util.Collections; public class CollectionResource extends Resource { private static final int DEFAULT_LIMIT = 10; private static final int DEFAULT_OFFSET = 1; public CollectionResource(UriInfo info, Collection resources) { this(info, resources, DEFAULT_OFFSET, getLimit(resources)); } public CollectionResource(UriInfo uriInfo, Collection resources, int offset, int limit) { super(uriInfo); put("offset", offset); put("limit", limit); put("size", resources.size()); put("items", resources != null ? resources : Collections.emptyList()); } private static int getLimit(Collection c) { return getLimit(c != null ? c.size() : 0); } private static int getLimit(int limit) { return Math.max(DEFAULT_LIMIT, limit); } }