public default List<T> list(int offset, int limit, boolean sortDir, String sortCol, PaginationFilter... filter) throws IOException { return list(x -> { }, offset, limit, sortDir, sortCol, filter); }
public static <M extends Identifiable, D, X extends RuntimeException> List<D> bulkSearch(Collection<String> names, PaginatedDataSource<M> service, Function<M, D> dto, Function<String, X> makeException) { return names.stream()// .filter(name -> !LimsUtils.isStringBlankOrNull(name))// .flatMap(WhineyFunction.flatRethrow(name -> { Collection<M> matches = service.list(0, 0, true, "id", exactQuery(name)); if (matches.isEmpty()) { throw makeException.apply(String.format("Cannot find \"%s\".", name)); } return matches; }))// .collect(Collectors.groupingBy(Identifiable::getId))// .values()// .stream()// .map(list -> list.get(0))// .map(dto).collect(Collectors.toList()); }
@Override public default List<T> list(Consumer<String> errorHandler, int offset, int limit, boolean sortDir, String sortCol, PaginationFilter... filter) throws IOException { return getAuthorizationManager() .filterUnreadable(getBackingPaginationSource().list(errorHandler, offset, limit, sortDir, sortCol, filter)); }