Package ubic.gemma.rest.util
Class Responder
- java.lang.Object
-
- ubic.gemma.rest.util.Responder
-
public class Responder extends Object
Handles setting of the response status code and composing a proper payload structure.- Author:
- tesarst
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
Responder.FilterMethod<T>
A functional interface matching the signature of a paginating service method.
-
Constructor Summary
Constructors Constructor Description Responder()
-
Method Summary
-
-
-
Method Detail
-
respond
public static <T> ResponseDataObject<T> respond(@Nullable T payload) throws javax.ws.rs.NotFoundException
Produce aResponseDataObject
that wraps the given argument.- Parameters:
payload
- an object to be wrapped and published to the API- Returns:
- a
ResponseDataObject
containing the argument - Throws:
javax.ws.rs.NotFoundException
- if the argument is null, a suitableResponseErrorObject
will be subsequently produced byNotFoundExceptionMapper
-
limit
public static <T> LimitedResponseDataObject<T> limit(List<T> payload, @Nullable String query, @Nullable Filters filters, String[] groupBy, @Nullable Sort sort, @Nullable Integer limit)
-
paginate
public static <T extends IdentifiableValueObject<?>> PaginatedResponseDataObject<T> paginate(Slice<T> payload, String[] groupBy) throws javax.ws.rs.NotFoundException
Produce aPaginatedResponseDataObject
for a given unfilteredSlice
.- Throws:
javax.ws.rs.NotFoundException
-
filter
public static <T> FilteredResponseDataObject<T> filter(List<T> payload, @Nullable Filters filters)
Produce aFilteredResponseDataObject
for a given filteredList
.
-
queryAndFilter
public static <T> QueriedAndFilteredResponseDataObject<T> queryAndFilter(List<T> payload, String query, @Nullable Filters filters, String[] groupBy, @Nullable Sort sort)
-
paginate
public static <T extends IdentifiableValueObject<?>> FilteredAndPaginatedResponseDataObject<T> paginate(Slice<T> payload, @Nullable Filters filters, String[] groupBy) throws javax.ws.rs.NotFoundException
Produce aFilteredAndPaginatedResponseDataObject
for a givenSlice
- Throws:
javax.ws.rs.NotFoundException
-
paginate
public static <T extends IdentifiableValueObject<?>> FilteredAndPaginatedResponseDataObject<T> paginate(Responder.FilterMethod<T> filterMethod, @Nullable Filters filters, String[] groupBy, @Nullable Sort sort, int offset, int limit) throws javax.ws.rs.NotFoundException
Paginate using an arbitrary filtering method.- Throws:
javax.ws.rs.NotFoundException
-
queryAndPaginate
public static <T extends IdentifiableValueObject<?>> QueriedAndFilteredAndPaginatedResponseDataObject<T> queryAndPaginate(Slice<T> payload, String query, @Nullable Filters filters, String[] groupBy)
-
-