Example usage for org.springframework.data.domain PageImpl PageImpl

List of usage examples for org.springframework.data.domain PageImpl PageImpl

Introduction

In this page you can find the example usage for org.springframework.data.domain PageImpl PageImpl.

Prototype

public PageImpl(List<T> content, Pageable pageable, long total) 

Source Link

Document

Constructor of PageImpl .

Usage

From source file:edu.cmu.cs.lti.discoursedb.api.browsing.controller.BrowsingRestController.java

@RequestMapping(value = "/database/{databaseName}/bratExports", method = RequestMethod.GET)
@ResponseBody//ww w  . j av a 2  s  .c  om
PagedResources<Resource<BrowsingBratExportResource>> bratExports(
        @PathVariable("databaseName") String databaseName, HttpServletRequest hsr, HttpSession session) {
    registerDb(hsr, session, databaseName);

    String who = SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString();
    String bratDataDirectory = bratDataDirectory();
    List<BrowsingBratExportResource> exported = BrowsingBratExportResource
            .findPreviouslyExportedBrat(bratDataDirectory);
    Page<BrowsingBratExportResource> p = new PageImpl<BrowsingBratExportResource>(exported,
            new PageRequest(0, 100), exported.size());
    for (BrowsingBratExportResource bber : p) {
        bber.add(makeLink1Arg("/browsing/action/database/" + databaseName + "/importBrat", "Import BRAT markup",
                "bratDirectory", bber.getName()));
        bber.add(makeBratLink("/index.xhtml#/" + who + "/" + bber.getName(), "Edit BRAT markup"));
        bber.add(makeLink1Arg("/browsing/action/database/" + databaseName + "/deleteBrat", "Delete BRAT markup",
                "bratDirectory", bber.getName()));
    }
    return praBratAssembler.toResource(p);
}

From source file:edu.cmu.cs.lti.discoursedb.api.browsing.controller.BrowsingRestController.java

@RequestMapping(value = "/database/{databaseName}/usersInDiscoursePart/{dpId}", method = RequestMethod.GET)
@ResponseBody/*from  w  w w.  j a  v a 2s  .  com*/
PagedResources<Resource<BrowsingUserResource>> users(@RequestParam(value = "page", defaultValue = "0") int page,
        @RequestParam(value = "size", defaultValue = "20") int size,
        @PathVariable("databaseName") String databaseName, @PathVariable("dpId") Long dpId,
        HttpServletRequest hsr, HttpSession session) {
    registerDb(hsr, session, databaseName);

    PageRequest p = new PageRequest(page, size);

    Optional<DiscoursePart> parent = discoursePartRepository.findOne(dpId);

    if (parent.isPresent()) {
        List<User> lbcr1 = new ArrayList<User>();
        lbcr1.addAll(userService.findUsersUnderDiscoursePart(parent.get()));
        List<BrowsingUserResource> lbcr = lbcr1.subList(page * size, lbcr1.size()).stream()
                .map(BrowsingUserResource::new).map(b -> {
                    b.fillInDiscoursePartLinks(discoursePartService);
                    return b;
                }).collect(Collectors.toList());

        Page<BrowsingUserResource> pbcr = new PageImpl<BrowsingUserResource>(lbcr, p, lbcr.size());
        PagedResources<Resource<BrowsingUserResource>> response = praUserAssembler.toResource(pbcr);

        return response;
    } else {
        return null;
    }
}

From source file:od.providers.modeloutput.lap.LAPModelOutputProvider.java

private PageImpl<ModelOutput> fetch(ProviderData providerData, String tenantId,
        Map<String, String> urlVariables, Pageable pageable, String uri) {

    log.debug("{}", urlVariables);
    log.debug("{}", uri);

    String url = getUrl(providerData.findValueForKey("base_url"), uri, pageable);

    ClientCredentialsResourceDetails resourceDetails = new ClientCredentialsResourceDetails();
    resourceDetails.setClientId(providerData.findValueForKey("key"));
    resourceDetails.setClientSecret(providerData.findValueForKey("secret"));
    resourceDetails//  w  w w . j a v  a 2s . c  o m
            .setAccessTokenUri(getUrl(providerData.findValueForKey("base_url"), LAP_OAUTH_TOKEN_URI, null));
    DefaultOAuth2ClientContext clientContext = new DefaultOAuth2ClientContext();

    OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(resourceDetails, clientContext);
    MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
    converter.setSupportedMediaTypes(
            Arrays.asList(MediaType.APPLICATION_JSON, MediaType.valueOf("text/javascript")));
    restTemplate.setMessageConverters(Arrays.<HttpMessageConverter<?>>asList(converter));
    ParameterizedTypeReference<PageWrapper<ModelOutputImpl>> responseType = new ParameterizedTypeReference<PageWrapper<ModelOutputImpl>>() {
    };

    PageWrapper<ModelOutputImpl> pageWrapper = restTemplate
            .exchange(url, HttpMethod.GET, null, responseType, urlVariables).getBody();
    log.debug(pageWrapper.toString());
    List<ModelOutput> output;
    if (pageWrapper != null && pageWrapper.getContent() != null && !pageWrapper.getContent().isEmpty()) {
        output = new LinkedList<ModelOutput>(pageWrapper.getContent());
    } else {
        output = new ArrayList<>();
    }

    return new PageImpl<ModelOutput>(output, pageable, pageWrapper.getPage().getTotalElements());
}

From source file:org.dspace.app.rest.link.search.SearchFacetEntryHalLinkFactory.java

@Override
protected void addLinks(SearchFacetEntryResource halResource, Pageable pageable, LinkedList<Link> list)
        throws Exception {

    SearchFacetEntryRest facetData = halResource.getFacetData();
    DiscoveryResultsRest searchData = halResource.getSearchData();

    String query = searchData == null ? null : searchData.getQuery();
    String dsoType = searchData == null ? null : searchData.getDsoType();
    String scope = searchData == null ? null : searchData.getScope();

    UriComponentsBuilder uriBuilder = uriBuilder(
            getMethodOn().getFacetValues(facetData.getName(), null, query, dsoType, scope, null, null));

    addFilterParams(uriBuilder, searchData);

    //If our rest data contains a list of values, construct the page links. Otherwise, only add a self link
    if (CollectionUtils.isNotEmpty(facetData.getValues())) {
        PageImpl page = new PageImpl<>(facetData.getValues(), new PageRequest(0, facetData.getFacetLimit()),
                facetData.getValues().size() + (BooleanUtils.isTrue(facetData.isHasMore()) ? 1 : 0));

        halResource.setPageHeader(new EmbeddedPageHeader(uriBuilder, page, false));

    } else {//from w  w  w  . j  a  v a 2  s  . c  o m
        list.add(buildLink(Link.REL_SELF, uriBuilder.build().toUriString()));
    }

}

From source file:org.dspace.app.rest.model.hateoas.SearchResultsResource.java

private void embedSearchResults(final SearchResultsRest data, final Utils utils, Pageable pageable) {
    entryResources = new LinkedList<>();
    for (SearchResultEntryRest searchResultEntry : CollectionUtils.emptyIfNull(data.getSearchResults())) {
        entryResources.add(new SearchResultEntryResource(searchResultEntry, utils));
    }/*w  w  w  . ja  va  2  s  .com*/

    Page page = new PageImpl<>(entryResources, pageable, data.getTotalNumberOfResults());

    SearchResultsResourceHalLinkFactory linkFactory = new SearchResultsResourceHalLinkFactory();
    EmbeddedPage embeddedPage = new EmbeddedPage(linkFactory.buildSearchBaseLink(data).toUriString(), page,
            entryResources, "objects");
    embedResource("searchResult", embeddedPage);
}

From source file:org.dspace.app.rest.repository.BrowseEntryLinkRepository.java

public Page<BrowseEntryRest> listBrowseEntries(HttpServletRequest request, String browseName, Pageable pageable,
        String projection) throws BrowseException, SQLException {
    // FIXME this should be bind automatically and available as method
    // argument/*from w w w  . ja  v a  2  s . c  om*/
    String scope = null;
    if (request != null) {
        scope = request.getParameter("scope");
    }

    Context context = obtainContext();
    BrowseEngine be = new BrowseEngine(context);
    BrowserScope bs = new BrowserScope(context);
    DSpaceObject scopeObj = null;
    if (scope != null) {
        UUID uuid = UUID.fromString(scope);
        scopeObj = communityService.find(context, uuid);
        if (scopeObj == null) {
            scopeObj = collectionService.find(context, uuid);
        }
    }

    // process the input, performing some inline validation
    final BrowseIndex bi;
    if (StringUtils.isNotEmpty(browseName)) {
        bi = BrowseIndex.getBrowseIndex(browseName);
    } else {
        bi = null;
    }
    if (bi == null) {
        throw new IllegalArgumentException("Unknown browse index");
    }
    if (!bi.isMetadataIndex()) {
        throw new IllegalStateException("The requested browse haven't metadata entries");
    }

    // set up a BrowseScope and start loading the values into it
    bs.setBrowseIndex(bi);
    Sort sort = null;
    if (pageable != null) {
        sort = pageable.getSort();
    }
    if (sort != null) {
        Iterator<Order> orders = sort.iterator();
        while (orders.hasNext()) {
            bs.setOrder(orders.next().getDirection().name());
        }
    }
    // bs.setFilterValue(value != null?value:authority);
    // bs.setFilterValueLang(valueLang);
    // bs.setJumpToItem(focus);
    // bs.setJumpToValue(valueFocus);
    // bs.setJumpToValueLang(valueFocusLang);
    // bs.setStartsWith(startsWith);
    if (pageable != null) {
        bs.setOffset(pageable.getOffset());
        bs.setResultsPerPage(pageable.getPageSize());
    }
    // bs.setEtAl(etAl);
    // bs.setAuthorityValue(authority);

    if (scopeObj != null) {
        bs.setBrowseContainer(scopeObj);
    }

    BrowseInfo binfo = be.browse(bs);
    Pageable pageResultInfo = new PageRequest((binfo.getStart() - 1) / binfo.getResultsPerPage(),
            binfo.getResultsPerPage());
    Page<BrowseEntryRest> page = new PageImpl<String[]>(Arrays.asList(binfo.getStringResults()), pageResultInfo,
            binfo.getTotal()).map(converter);
    page.forEach(new Consumer<BrowseEntryRest>() {
        @Override
        public void accept(BrowseEntryRest t) {
            t.setBrowseIndex(bixConverter.convert(bi));
        }
    });
    return page;
}

From source file:org.dspace.app.rest.repository.BrowseItemLinkRepository.java

public Page<ItemRest> listBrowseItems(HttpServletRequest request, String browseName, Pageable pageable,
        String projection) throws BrowseException, SQLException {
    //FIXME these should be bind automatically and available as method arguments
    String scope = null;/*  w ww  .j a v a  2 s  .c o  m*/
    String filterValue = null;
    String filterAuthority = null;

    if (request != null) {
        scope = request.getParameter("scope");
        filterValue = request.getParameter("filterValue");
        filterAuthority = request.getParameter("filterAuthority");
    }
    Context context = obtainContext();
    BrowseEngine be = new BrowseEngine(context);
    BrowserScope bs = new BrowserScope(context);
    DSpaceObject scopeObj = null;
    if (scope != null) {
        UUID uuid = UUID.fromString(scope);
        scopeObj = communityService.find(context, uuid);
        if (scopeObj == null) {
            scopeObj = collectionService.find(context, uuid);
        }
    }

    // process the input, performing some inline validation
    BrowseIndex bi = null;
    if (StringUtils.isNotEmpty(browseName)) {
        bi = BrowseIndex.getBrowseIndex(browseName);
    }
    if (bi == null) {
        throw new IllegalArgumentException("Unknown browse index");
    }
    if (!bi.isItemIndex() && (filterAuthority == null && filterValue == null)) {
        throw new IllegalStateException(
                "The requested browse doesn't provide direct access to items you must specify a filter");
    }

    if (!bi.isMetadataIndex() && (filterAuthority != null || filterValue != null)) {
        throw new IllegalStateException("The requested browse doesn't support filtering");
    }

    // set up a BrowseScope and start loading the values into it
    bs.setBrowseIndex(bi);
    Sort sort = null;
    if (pageable != null) {
        sort = pageable.getSort();
    }
    if (sort != null) {
        Iterator<Order> orders = sort.iterator();
        while (orders.hasNext()) {
            Order order = orders.next();
            bs.setOrder(order.getDirection().name());
            String sortBy;
            if (!StringUtils.equals("default", order.getProperty())) {
                sortBy = order.getProperty();
            } else {
                sortBy = bi.getDefaultOrder();
            }

            try {
                SortOption so = SortOption.getSortOption(sortBy);
                if (so != null) {
                    bs.setSortBy(so.getNumber());
                }
            } catch (SortException e) {
                throw new RuntimeException(e.getMessage(), e);
            }
        }
    }

    if (filterValue != null || filterAuthority != null) {
        bs.setFilterValue(filterValue);
        bs.setAuthorityValue(filterAuthority);
        bs.setBrowseLevel(1);
    }
    // bs.setFilterValueLang(valueLang);
    // bs.setJumpToItem(focus);
    // bs.setJumpToValue(valueFocus);
    // bs.setJumpToValueLang(valueFocusLang);
    // bs.setStartsWith(startsWith);
    if (pageable != null) {
        bs.setOffset(pageable.getOffset());
        bs.setResultsPerPage(pageable.getPageSize());
    }

    if (scopeObj != null) {
        bs.setBrowseContainer(scopeObj);
    }

    // For second level browses on metadata indexes, we need to adjust the default sorting
    if (bi != null && bi.isMetadataIndex() && bs.isSecondLevel() && bs.getSortBy() <= 0) {
        bs.setSortBy(1);
    }

    BrowseInfo binfo = be.browse(bs);

    Pageable pageResultInfo = new PageRequest((binfo.getStart() - 1) / binfo.getResultsPerPage(),
            binfo.getResultsPerPage());
    Page<ItemRest> page = new PageImpl<Item>(binfo.getBrowseItemResults(), pageResultInfo, binfo.getTotal())
            .map(converter);
    return page;
}

From source file:org.dspace.app.rest.repository.CollectionRestRepository.java

@Override
public Page<CollectionRest> findAll(Context context, Pageable pageable) {
    List<Collection> it = null;
    List<Collection> collections = new ArrayList<Collection>();
    int total = 0;
    try {//  www  .  ja  va2  s.c  om
        total = cs.countTotal(context);
        it = cs.findAll(context, pageable.getPageSize(), pageable.getOffset());
        for (Collection c : it) {
            collections.add(c);
        }
    } catch (SQLException e) {
        throw new RuntimeException(e.getMessage(), e);
    }
    Page<CollectionRest> page = new PageImpl<Collection>(collections, pageable, total).map(dsoConverter);
    return page;
}

From source file:org.dspace.app.rest.repository.CommunityRestRepository.java

@Override
public Page<CommunityRest> findAll(Context context, Pageable pageable) {
    List<Community> it = null;
    List<Community> communities = new ArrayList<Community>();
    int total = 0;
    try {/*from   www.j  av a  2 s. c  o m*/
        total = cs.countTotal(context);
        it = cs.findAll(context, pageable.getPageSize(), pageable.getOffset());
        for (Community c : it) {
            communities.add(c);
        }
    } catch (SQLException e) {
        throw new RuntimeException(e.getMessage(), e);
    }
    Page<CommunityRest> page = new PageImpl<Community>(communities, pageable, total).map(dsoConverter);
    return page;
}

From source file:org.dspace.app.rest.repository.EPersonRestRepository.java

@Override
public Page<EPersonRest> findAll(Context context, Pageable pageable) {
    List<EPerson> epersons = null;
    int total = 0;
    try {//w  ww.jav  a  2s  .  com
        if (!authorizeService.isAdmin(context)) {
            throw new RESTAuthorizationException(
                    "The EPerson collection endpoint is reserved to system administrators");
        }
        total = es.countTotal(context);
        epersons = es.findAll(context, EPerson.ID, pageable.getPageSize(), pageable.getOffset());
    } catch (SQLException e) {
        throw new RuntimeException(e.getMessage(), e);
    }
    Page<EPersonRest> page = new PageImpl<EPerson>(epersons, pageable, total).map(converter);
    return page;
}