@Override @SuppressWarnings("unchecked") protected Object doExecute(AbstractJpaQuery query, Object[] values) { ParametersParameterAccessor accessor = new ParametersParameterAccessor(parameters, values); Pageable pageable = accessor.getPageable(); Query createQuery = query.createQuery(values); int pageSize = pageable.getPageSize(); createQuery.setMaxResults(pageSize + 1); List<Object> resultList = createQuery.getResultList(); boolean hasNext = resultList.size() > pageSize; return new SliceImpl<Object>(hasNext ? resultList.subList(0, pageSize) : resultList, pageable, hasNext); } }
@Override public <U> Slice<U> map(Function<? super T, ? extends U> converter) { return new SliceImpl<>(getConvertedContent(converter), pageable, hasNext); }
@Override public String toString() { String contentType = "UNKNOWN"; List<T> content = getContent(); if (content.size() > 0) { contentType = content.get(0).getClass().getName(); } return String.format("Slice %d containing %s instances", getNumber(), contentType); }
content.add(entry.get(0)); return new SliceImpl(content, (Pageable)prmtrs[prmtrs.length - 1], true); case SLICE_OF_LISTS: return new SliceImpl(qryCursor.getAll(), (Pageable)prmtrs[prmtrs.length - 1], true); case LIST_OF_LISTS: return qryCursor.getAll(); content.add(entry.getValue()); return new SliceImpl(content, (Pageable)prmtrs[prmtrs.length - 1], true); case SLICE_OF_CACHE_ENTRIES: return new SliceImpl(qryCursor.getAll(), (Pageable)prmtrs[prmtrs.length - 1], true); case LIST_OF_CACHE_ENTRIES: return qryCursor.getAll();
content.add(entry.get(0)); return new SliceImpl(content, (Pageable)prmtrs[prmtrs.length - 1], true); case SLICE_OF_LISTS: return new SliceImpl(qryCursor.getAll(), (Pageable)prmtrs[prmtrs.length - 1], true); case LIST_OF_LISTS: return qryCursor.getAll(); content.add(entry.getValue()); return new SliceImpl(content, (Pageable)prmtrs[prmtrs.length - 1], true); case SLICE_OF_CACHE_ENTRIES: return new SliceImpl(qryCursor.getAll(), (Pageable)prmtrs[prmtrs.length - 1], true); case LIST_OF_CACHE_ENTRIES: return qryCursor.getAll();
@Override @SuppressWarnings({ "unchecked", "rawtypes" }) public Object execute(Query query) { int pageSize = pageable.getPageSize(); // Apply Pageable but tweak limit to peek into next page Query modifiedQuery = query.with(pageable).limit(pageSize + 1); List result = find.matching(modifiedQuery).all(); boolean hasNext = result.size() > pageSize; return new SliceImpl<Object>(hasNext ? result.subList(0, pageSize) : result, pageable, hasNext); } }
private Slice<Long> toSlice(ResourceHistoryTable theVersion) { Validate.notNull(theVersion); return new SliceImpl<>(Collections.singletonList(theVersion.getId())); }
@Override @SuppressWarnings({ "unchecked", "rawtypes" }) public Object execute(Query query) { int pageSize = pageable.getPageSize(); // Apply Pageable but tweak limit to peek into next page Query modifiedQuery = query.with(pageable).limit(pageSize + 1); List result = find.matching(modifiedQuery).all(); boolean hasNext = result.size() > pageSize; return new SliceImpl<Object>(hasNext ? result.subList(0, pageSize) : result, pageable, hasNext); } }
@Override public Object execute(Query query, Class<?> type) { int pageSize = pageable.getPageSize(); List<?> result; if (query.isFilterQuery()) { // For a slice, need one extra result to determine if there is a next page result = (List<?>) session.loadAll(type, query.getFilters(), accessor.getOgmSort(), query.getPagination(pageable, true), accessor.getDepth()); } else { String cypherQuery = query.getCypherQuery(pageable, true); if (type.getAnnotation(QueryResult.class) != null) { result = (List<?>) session.query(cypherQuery, query.getParameters()).queryResults(); } else { result = (List<?>) session.query(type, cypherQuery, query.getParameters()); } } boolean hasNext = result.size() > pageSize; return new SliceImpl(hasNext ? result.subList(0, pageSize) : result, pageable, hasNext); } }
@Override protected Slice doAdapt(Invocation invocation, Iterable iterable) { final List content = new ArrayList(); for (Object item : iterable) { //noinspection unchecked content.add(item); } //noinspection unchecked return new SliceImpl(content); }
@Override protected Slice doAdapt(Invocation invocation, Iterable iterable) { final List content = new ArrayList(); for (Object item : iterable) { //noinspection unchecked content.add(item); } //noinspection unchecked return new SliceImpl(content); }
private Slice<Long> toSlice(ResourceHistoryTable theVersion) { Validate.notNull(theVersion); return new SliceImpl<>(Collections.singletonList(theVersion.getId())); }
private Slice<T> readSlice(TypedQuery<T> query, Pageable pageable) { query.setFirstResult((int) pageable.getOffset()); query.setMaxResults(pageable.getPageSize() + 1); final List<T> content = query.getResultList(); boolean hasNext = content.size() == (pageable.getPageSize() + 1); if (hasNext) { content.remove(content.size() - 1); } return new SliceImpl<>(content, pageable, hasNext); } }
protected Object executeSliced(N1qlQuery query, N1qlQuery countQuery, Pageable pageable, Class<?> typeToRead) { Assert.notNull(pageable, "Pageable must not be null!"); logIfNecessary(query); List<?> result = couchbaseOperations.findByN1QL(query, typeToRead); int pageSize = pageable.getPageSize(); boolean hasNext = result.size() > pageSize; return new SliceImpl(hasNext ? result.subList(0, pageSize) : result, pageable, hasNext); }
protected Object executeSliced(N1qlQuery query, N1qlQuery countQuery, Pageable pageable, Class<?> typeToRead) { Assert.notNull(pageable, "Pageable must not be null!"); logIfNecessary(query); List<?> result = couchbaseOperations.findByN1QL(query, typeToRead); int pageSize = pageable.getPageSize(); boolean hasNext = result.size() > pageSize; return new SliceImpl(hasNext ? result.subList(0, pageSize) : result, pageable, hasNext); }
@Override @SuppressWarnings("unchecked") protected Object doExecute(AbstractJpaQuery query, Object[] values) { ParametersParameterAccessor accessor = new ParametersParameterAccessor(parameters, values); Pageable pageable = accessor.getPageable(); Query createQuery = query.createQuery(values); int pageSize = pageable.getPageSize(); createQuery.setMaxResults(pageSize + 1); List<Object> resultList = createQuery.getResultList(); boolean hasNext = resultList.size() > pageSize; return new SliceImpl<Object>(hasNext ? resultList.subList(0, pageSize) : resultList, pageable, hasNext); } }
/** * Read a {@link Slice} of data from the {@link Iterable} of {@link Row}s for a {@link Pageable}. * * @param rows must not be {@literal null}. * @param pagingState * @param mapper must not be {@literal null}. * @param page * @param pageSize * @return the resulting {@link Slice}. * @since 2.1 */ static <T> Slice<T> readSlice(Iterable<Row> rows, @Nullable PagingState pagingState, RowMapper<T> mapper, int page, int pageSize) { List<T> result = new ArrayList<>(pageSize); Iterator<Row> iterator = rows.iterator(); int index = 0; while (iterator.hasNext()) { T element = mapper.mapRow(iterator.next(), index++); result.add(element); } CassandraPageRequest pageRequest = CassandraPageRequest.of(PageRequest.of(page, pageSize), pagingState); return new SliceImpl<>(result, pageRequest, pagingState != null); }
@SuppressWarnings("unchecked") <E> Slice<E> findSlice(Pageable pageable) { List<E> resultList = null; int pageSize = pageable.getPageSize(); int offset = (int) pageable.getOffset(); if (queryType == QUERY) { resultList = ((Query<E>) queryInstance).setFirstRow(offset).setMaxRows(pageSize + 1).findList(); boolean hasNext = resultList.size() > pageSize; return new SliceImpl<E>(hasNext ? resultList.subList(0, pageSize) : resultList, pageable, hasNext); } throw new IllegalArgumentException("query not supported!"); }
@SuppressWarnings("unchecked") <E> Slice<E> findSlice(Pageable pageable) { List<E> resultList = null; int pageSize = pageable.getPageSize(); int offset = (int) pageable.getOffset(); if (queryType == QUERY) { resultList = ((Query<E>) queryInstance).setFirstRow(offset).setMaxRows(pageSize + 1).findList(); boolean hasNext = resultList.size() > pageSize; return new SliceImpl<E>(hasNext ? resultList.subList(0, pageSize) : resultList, pageable, hasNext); } throw new IllegalArgumentException("query not supported!"); }
@Override @Transactional public Dataset listConnectionURIs(final boolean deep) throws NoSuchConnectionException { List<URI> uris = new ArrayList<URI>(needInformationService.listConnectionURIs()); NeedInformationService.PagedResource<Dataset, URI> containerPage = toContainerPage( this.connectionResourceURIPrefix + "/", new SliceImpl<URI>(uris)); if (deep) { addDeepConnectionData(containerPage.getContent(), uris); } return containerPage.getContent(); }