Example usage for org.springframework.data.domain Page getContent

List of usage examples for org.springframework.data.domain Page getContent

Introduction

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

Prototype

List<T> getContent();

Source Link

Document

Returns the page content as List .

Usage

From source file:org.springframework.data.neo4j.aspects.support.FinderTest.java

private void assertPage(Page<Person> page0, int pageNumber, int totalPages, final int totalElements,
        Person... people) {// w w w  . java 2  s .  c  o m
    assertEquals("content count", people.length, page0.getNumberOfElements());
    assertEquals("page number", pageNumber, page0.getNumber());
    assertEquals("page size", 2, page0.getSize());
    assertEquals("total elements", totalElements, page0.getTotalElements());
    assertEquals("page count", totalPages, page0.getTotalPages());
    assertEquals("next page", pageNumber < totalPages - 1, page0.hasNextPage());
    assertEquals("previous page", pageNumber > 0, page0.hasPreviousPage());
    assertEquals("page content", asList(people), page0.getContent());
}

From source file:org.weichart.quickstart.service.user.UserService.java

/**
 * getPageModel:.//from  w  ww  . java2 s.  c  o  m
 *
 * @param entity 
 * @return 
 * @since JDK 1.6
 */
public DataPage<User> getPageModel(User entity, Map<String, Object> searchParams, Integer iDisplayStart,
        Integer iDisplayLength, Sort sort) throws ServiceException {

    DataPage<User> page = new DataPage<User>();
    PageRequest pageRequest = new PageRequest(iDisplayStart / iDisplayLength, iDisplayLength, sort);
    Specification<User> spec = buildSpecification(searchParams);
    long total = userDao.count(spec);
    Page<User> rows = userDao.findAll(spec, pageRequest);
    List<User> users = rows.getContent();
    page = new DataPage<User>(total, total, users);
    return page;
}

From source file:piecework.export.concrete.ExportAsCommaSeparatedValuesProvider.java

@Override
public List<String> next() {
    Page<ProcessInstance> page = pager.nextPage();

    List<String> rows = page.hasContent() ? new ArrayList<String>(page.getNumberOfElements())
            : Collections.<String>emptyList();

    if (page.hasContent()) {
        List<ProcessInstance> instances = page.getContent();
        for (ProcessInstance instance : instances) {
            String row = convert(instance);
            if (row != null)
                rows.add(row);//  w  w  w  .  ja v  a 2s. co  m
        }
    }

    return rows;
}

From source file:piecework.export.concrete.ExportAsExcelWorkbookProvider.java

@Override
public List<Row> next() {
    Page<ProcessInstance> page = pager.nextPage();

    List<Row> rows = page.hasContent() ? new ArrayList<Row>(page.getNumberOfElements())
            : Collections.<Row>emptyList();

    if (page.hasContent()) {
        List<ProcessInstance> instances = page.getContent();
        for (ProcessInstance instance : instances) {
            rows.add(convert(instance));
        }//www.  j av  a  2s . c om
    }

    return rows;
}

From source file:piecework.persistence.concrete.SearchRepositoryProvider.java

@Override
public SearchResponse forms(SearchCriteria criteria, ViewContext context, boolean excludeData)
        throws PieceworkException {
    long time = 0;
    if (LOG.isDebugEnabled())
        time = System.currentTimeMillis();

    Set<String> overseerProcessDefinitionKeys = principal.getProcessDefinitionKeys(AuthorizationRole.OVERSEER);
    Set<String> userProcessDefinitionKeys = principal.getProcessDefinitionKeys(AuthorizationRole.USER);

    Set<String> allProcessDefinitionKeys = Sets.union(overseerProcessDefinitionKeys, userProcessDefinitionKeys);
    Set<piecework.model.Process> allowedProcesses = processes(allProcessDefinitionKeys);

    SearchResponse response = new SearchResponse();

    if (allowedProcesses == null || allowedProcesses.isEmpty())
        return response;

    List<Process> alphabetical = new ArrayList<Process>(allowedProcesses);
    Collections.sort(alphabetical, new Comparator<Process>() {
        @Override//  w  w w . j a  v  a2  s. co  m
        public int compare(Process o1, Process o2) {
            if (org.apache.commons.lang.StringUtils.isEmpty(o1.getProcessDefinitionLabel()))
                return 0;
            if (org.apache.commons.lang.StringUtils.isEmpty(o2.getProcessDefinitionLabel()))
                return 1;
            return o1.getProcessDefinitionLabel().compareTo(o2.getProcessDefinitionLabel());
        }
    });

    List<Map<String, String>> metadata = new ArrayList<Map<String, String>>();
    Set<String> pgs = new HashSet<String>();
    for (Process allowedProcess : alphabetical) {
        if (allowedProcess.getProcessDefinitionKey() != null) {
            Process definition = allowedProcess;
            Form form = new Form.Builder().processDefinitionKey(definition.getProcessDefinitionKey())
                    .task(new Task.Builder().processDefinitionKey(definition.getProcessDefinitionKey())
                            .processDefinitionLabel(definition.getProcessDefinitionLabel()).build(context))
                    .build(context);
            Map<String, String> map = new HashMap<String, String>();
            map.put("processDefinitionKey", definition.getProcessDefinitionKey());
            map.put("processDefinitionLabel", definition.getProcessDefinitionLabel());
            map.put("link", form.getLink());
            metadata.add(map);
            if (StringUtils.isNotEmpty(allowedProcess.getProcessGroup())) {
                pgs.add(allowedProcess.getProcessGroup());
            }
        }
    }
    response.setMetadata(metadata);

    // bucket list stuff
    String pg = null;

    // get process group from allowed processes
    if (pgs.size() == 1) {
        pg = pgs.toArray()[0].toString();
    } else {
        // then try to get process group from query
        Map<String, List<String>> contentParameter = criteria.getContentParameters();
        if (contentParameter != null) {
            List<String> vlist = contentParameter.get("pg");
            if (vlist != null && vlist.size() > 0) {
                pg = vlist.get(0);
            }
        }
    }

    if (StringUtils.isNotEmpty(pg) && bucketListRepository != null) {
        BucketList bucketList = bucketListRepository.findOne(pg);
        if (bucketList != null) {
            response.setBucketList(bucketList);
        }
        response.setProcessGroup(pg);
    }

    String processStatus = criteria.getProcessStatus() != null ? sanitizer.sanitize(criteria.getProcessStatus())
            : Constants.ProcessStatuses.OPEN;
    String taskStatus = criteria.getTaskStatus() != null ? sanitizer.sanitize(criteria.getTaskStatus())
            : Constants.TaskStatuses.ALL;

    List<TaskDeployment> taskDeployments = new ArrayList<TaskDeployment>();
    Set<String> userIds = new HashSet<String>();

    List<Facet> facets = FacetFactory.facets(allowedProcesses);
    response.setFacets(facets);

    Map<DataFilterFacet, String> filterFacetParameters = criteria.getFilterFacetParameters();

    if (!excludeData) {
        Query query = new SearchQueryBuilder(criteria).build(allProcessDefinitionKeys, sanitizer);

        int instancePageNumber = 0;
        int instancePageSize = 1000;
        Sort sort = SearchUtility.sort(criteria, sanitizer);
        Pageable pageable = new PageRequest(instancePageNumber, instancePageSize, sort);
        Page<ProcessInstance> page = instanceRepository.findByQuery(query, pageable, true);

        int pageNumber = criteria.getPageNumber() != null ? criteria.getPageNumber().intValue() : 0;
        int pageSize = criteria.getPageSize() != null ? criteria.getPageSize() : 200;
        Pageable taskPageable = new PageRequest(pageNumber, pageSize);
        long total = page.getTotalElements();
        long taskCounter = 0;
        long instanceCounter = 0;
        long start = taskPageable.getOffset();
        long end = taskPageable.getOffset() + taskPageable.getPageSize();

        while (instanceCounter < total && page.hasContent()) {
            // Loop again through the list to get all user ids and build the intermediate object including
            // task, instance, and deployment
            for (ProcessInstance instance : page.getContent()) {
                String processDefinitionKey = instance.getProcessDefinitionKey();
                String processInstanceId = instance.getProcessInstanceId();

                instanceCounter++;

                ProcessDeployment processDeployment = null;

                Map<String, Object> instanceData = new HashMap<String, Object>();

                instanceData.put("processInstanceId", processInstanceId);
                instanceData.put("processInstanceLabel", instance.getProcessInstanceLabel());
                instanceData.put("processDefinitionLabel", instance.getProcessDefinitionLabel());
                instanceData.put("processStatus", instance.getProcessStatus());
                instanceData.put("applicationStatusExplanation", instance.getApplicationStatusExplanation());
                instanceData.put("startTime", instance.getStartTime());
                instanceData.put("lastModifiedTime", instance.getLastModifiedTime());
                instanceData.put("endTime", instance.getEndTime());

                String activation = context.getApplicationUri(ProcessInstance.Constants.ROOT_ELEMENT_NAME,
                        processDefinitionKey, processInstanceId, "activation");
                String attachment = context.getApplicationUri(ProcessInstance.Constants.ROOT_ELEMENT_NAME,
                        processDefinitionKey, processInstanceId, Attachment.Constants.ROOT_ELEMENT_NAME);
                String cancellation = context.getApplicationUri(ProcessInstance.Constants.ROOT_ELEMENT_NAME,
                        processDefinitionKey, processInstanceId, "cancellation");
                String history = context.getApplicationUri(ProcessInstance.Constants.ROOT_ELEMENT_NAME,
                        processDefinitionKey, processInstanceId, History.Constants.ROOT_ELEMENT_NAME);
                String restart = context.getApplicationUri(ProcessInstance.Constants.ROOT_ELEMENT_NAME,
                        processDefinitionKey, processInstanceId, "restart");
                String suspension = context.getApplicationUri(ProcessInstance.Constants.ROOT_ELEMENT_NAME,
                        processDefinitionKey, processInstanceId, "suspension");
                String bucketUrl = context.getApplicationUri(ProcessInstance.Constants.ROOT_ELEMENT_NAME,
                        processDefinitionKey, processInstanceId, "value/Bucket");

                instanceData.put("activation", activation);
                instanceData.put("attachment", attachment);
                instanceData.put("cancellation", cancellation);
                instanceData.put("history", history);
                instanceData.put("restart", restart);
                instanceData.put("suspension", suspension);
                instanceData.put("bucketUrl", bucketUrl);

                Map<String, List<Value>> valueData = instance.getData();
                if (valueData != null && !valueData.isEmpty()) {
                    for (Facet facet : facets) {
                        if (facet instanceof DataSearchFacet) {
                            DataSearchFacet dataSearchFacet = DataSearchFacet.class.cast(facet);
                            String name = dataSearchFacet.getName();
                            String value = ProcessInstanceUtility.firstString(name, valueData);
                            if (StringUtils.isNotEmpty(value))
                                instanceData.put(name, value);
                        }
                    }
                }

                Set<Task> tasks = instance.getTasks();
                if (tasks != null && !tasks.isEmpty()) {
                    for (Task task : tasks) {
                        if (include(task, processStatus, taskStatus, overseerProcessDefinitionKeys,
                                principal)) {
                            if (taskCounter >= start && taskCounter < end) {
                                taskDeployments.add(new TaskDeployment(taskCounter, processDeployment, instance,
                                        task, instanceData));
                                userIds.addAll(task.getAssigneeAndCandidateAssigneeIds());
                            }
                            taskCounter++;
                        }
                    }
                }
            }

            if (total > instanceCounter) {
                instancePageNumber++;
                Pageable nextPage = new PageRequest(instancePageNumber, instancePageSize, sort);
                page = instanceRepository.findByQuery(query, nextPage, false);
            }
        }

        response.setTotal((int) taskCounter);
        response.setPageNumber(taskPageable.getPageNumber());
        response.setPageSize(taskPageable.getPageSize());
    }

    Map<String, User> userMap = identityService.findUsers(userIds);

    List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();

    for (TaskDeployment taskDeployment : taskDeployments) {
        Map<String, Object> map = new HashMap<String, Object>();
        Map<String, Object> instanceData = taskDeployment.getInstanceData();

        if (instanceData != null && !instanceData.isEmpty())
            map.putAll(instanceData);

        Task task = TaskFactory.task(taskDeployment.getTask(), new PassthroughSanitizer(), userMap, context);
        String processDefinitionKey = task.getProcessDefinitionKey();

        if (!include(task, filterFacetParameters))
            continue;

        map.put("itemNumber", taskDeployment.getItemNumber());
        map.put("assignee", task.getAssignee());
        map.put("candidateAssignees", task.getCandidateAssignees());

        map.put("formInstanceId", task.getTaskInstanceId());
        map.put("taskId", task.getTaskInstanceId());
        map.put("taskClaimTime", task.getClaimTime());
        map.put("taskDueDate", task.getDueDate());
        map.put("taskStartTime", task.getStartTime());
        map.put("taskEndTime", task.getEndTime());
        map.put("taskLabel", task.getTaskLabel());
        map.put("taskDescription", task.getTaskDescription());
        map.put("taskStatus", task.getTaskStatus());
        map.put("active", task.isActive());

        String assignment = context != null && task != null && task.getTaskInstanceId() != null
                ? context.getApplicationUri(Task.Constants.ROOT_ELEMENT_NAME, processDefinitionKey,
                        task.getTaskInstanceId(), "assign")
                : null;

        map.put("assignment", assignment);
        map.put("link",
                context != null
                        ? context.getApplicationUri(Form.Constants.ROOT_ELEMENT_NAME, processDefinitionKey)
                                + "?taskId=" + task.getTaskInstanceId()
                        : null);
        data.add(map);
    }
    List<FacetSort> postQuerySortBy = criteria.getPostQuerySortBy();
    if (postQuerySortBy != null && !postQuerySortBy.isEmpty()) {
        Collections.reverse(postQuerySortBy);
        for (FacetSort facetSort : postQuerySortBy) {
            Collections.sort(data, new DataFilterFacetComparator(facetSort.getFacet()));
            if (facetSort.getDirection().equals(Sort.Direction.DESC))
                Collections.reverse(data);
        }
    }

    response.setData(data);

    List<FacetSort> facetSortList = criteria.getSortBy();
    List<String> sortBy = new ArrayList<String>();
    if (facetSortList != null) {
        for (FacetSort facetSort : facetSortList) {
            sortBy.add(facetSort.toString());
        }
    }
    response.setSortBy(sortBy);

    if (LOG.isDebugEnabled())
        LOG.debug("Retrieved forms in " + (System.currentTimeMillis() - time) + " ms");

    if (principal instanceof User)
        response.setCurrentUser(User.class.cast(principal));

    return response;
}

From source file:piecework.service.ProcessInstanceService.java

public SearchResults search(MultivaluedMap<String, String> rawQueryParameters, Entity principal)
        throws StatusCodeError {
    Set<String> processDefinitionKeys = principal.getProcessDefinitionKeys(AuthorizationRole.OVERSEER);
    Set<Process> allowedProcesses = processService.findProcesses(processDefinitionKeys);

    SearchCriteria.Builder executionCriteriaBuilder = new SearchCriteria.Builder(rawQueryParameters,
            allowedProcesses, FacetFactory.facetMap(allowedProcesses), sanitizer);

    ViewContext context = new ViewContext(settings, VERSION);

    SearchResults.Builder resultsBuilder = new SearchResults.Builder().resourceLabel("Workflows")
            .resourceName(ProcessInstance.Constants.ROOT_ELEMENT_NAME).link(context.getApplicationUri());

    if (!allowedProcesses.isEmpty()) {
        for (Process allowedProcess : allowedProcesses) {
            String allowedProcessDefinitionKey = allowedProcess.getProcessDefinitionKey();

            if (allowedProcessDefinitionKey != null) {
                executionCriteriaBuilder.processDefinitionKey(allowedProcessDefinitionKey);
                resultsBuilder.definition(
                        new Process.Builder(allowedProcess, new PassthroughSanitizer()).build(context));
            }/*from  ww  w  .j  a  v  a 2  s. c o m*/
        }
        SearchCriteria searchCriteria = executionCriteriaBuilder.build();

        if (searchCriteria.getSanitizedParameters() != null) {
            for (Map.Entry<String, List<String>> entry : searchCriteria.getSanitizedParameters().entrySet()) {
                resultsBuilder.parameter(entry.getKey(), entry.getValue());
            }
        }

        Pageable pageable = SearchUtility.pageable(searchCriteria, sanitizer);
        Page<ProcessInstance> page = processInstanceRepository.findByCriteria(processDefinitionKeys,
                searchCriteria, pageable, sanitizer);

        if (page.hasContent()) {
            for (ProcessInstance instance : page.getContent()) {
                resultsBuilder.item(new ProcessInstance.Builder(instance).build(context));
            }
        }

        resultsBuilder.page(page, pageable);
    }
    return resultsBuilder.build();
}

From source file:piecework.task.TaskPageHandler.java

public SearchResults handle(Page<ProcessInstance> page, Pageable pageable, Set<Process> allowedProcesses) {
    SearchResults.Builder resultsBuilder = new SearchResults.Builder().resourceLabel("Tasks")
            .resourceName(Form.Constants.ROOT_ELEMENT_NAME).link(version.getApplicationUri());

    if (allowedProcesses == null || allowedProcesses.isEmpty())
        return resultsBuilder.build(version);

    List<Process> alphabetical = new ArrayList<Process>(allowedProcesses);
    Collections.sort(alphabetical, new Comparator<Process>() {
        @Override//  w w w .j av a2s .  c om
        public int compare(Process o1, Process o2) {
            if (org.apache.commons.lang.StringUtils.isEmpty(o1.getProcessDefinitionLabel()))
                return 0;
            if (org.apache.commons.lang.StringUtils.isEmpty(o2.getProcessDefinitionLabel()))
                return 1;
            return o1.getProcessDefinitionLabel().compareTo(o2.getProcessDefinitionLabel());
        }
    });
    for (Process allowedProcess : alphabetical) {
        if (allowedProcess.getProcessDefinitionKey() != null) {
            Process definition = new Process.Builder(allowedProcess, sanitizer).build(version);
            if (taskFilter.isWrapWithForm()) {
                resultsBuilder.definition(new Form.Builder()
                        .processDefinitionKey(definition.getProcessDefinitionKey())
                        .task(new Task.Builder().processDefinitionKey(definition.getProcessDefinitionKey())
                                .processDefinitionLabel(definition.getProcessDefinitionLabel()).build(version))
                        .build(version));
            } else {
                resultsBuilder.definition(definition);
            }
        }
    }

    if (page.hasContent()) {
        int count = 0;

        // Loop once through list to get the deployment ids
        Set<String> deploymentIds = taskFilter.getDeploymentIds(page.getContent());

        // Retrieve a map of deployment objects from Mongo
        //            Map<String, ProcessDeployment> deploymentMap = getDeploymentMap(deploymentIds);

        List<TaskDeployment> rawTasks = new ArrayList<TaskDeployment>();
        Set<String> userIds = new HashSet<String>();

        // Loop again through the list to get all user ids and build the intermediate object including
        // task, instance, and deployment
        for (ProcessInstance instance : page.getContent()) {
            ProcessDeployment processDeployment = null;
            //                if (taskFilter.isWrapWithForm())
            //                    processDeployment = deploymentMap.get(instance.getDeploymentId());

            Set<Task> tasks = instance.getTasks();
            if (tasks != null && !tasks.isEmpty()) {
                for (Task task : tasks) {
                    if (taskFilter.include(task, processStatus, taskStatus)) {
                        rawTasks.add(new TaskDeployment(0, processDeployment, instance, task));
                        userIds.addAll(task.getAssigneeAndCandidateAssigneeIds());
                    }
                }
            }
        }

        Map<String, User> userMap = getUserMap(userIds);

        for (TaskDeployment rawTask : rawTasks) {
            resultsBuilder.item(taskFilter.result(rawTask, userMap, version));
            count++;
        }

        resultsBuilder.firstResult(pageable.getOffset());
        resultsBuilder.maxResults(pageable.getPageSize());
        resultsBuilder.total(Long.valueOf(count));
    }
    if (taskFilter.getPrincipal() != null && taskFilter.getPrincipal() instanceof User)
        resultsBuilder.currentUser(User.class.cast(taskFilter.getPrincipal()));

    return resultsBuilder.build(version);
}

From source file:pl.edu.pwr.szlagor.masterthesis.linguisticsummary.semantic.integrator.integrator.job.reader.SemanticRepositoryItemReader.java

/**
 * Performs the actual reading of a page via the repository.
 * Available for overriding as needed.//ww w. j ava2s  .  c  om
 *
 * @return the list of items that make up the page
 * @throws Exception
 */
@SuppressWarnings("unchecked")
protected List<T> doPageRead() throws Exception {
    if (page < endPage) {
        Pageable pageRequest = sort != null ? new PageRequest(page, pageSize, sort)
                : new PageRequest(page, pageSize);

        MethodInvoker invoker = createMethodInvoker(repository, methodName);

        List<Object> parameters = new ArrayList<Object>();

        if (arguments != null && arguments.size() > 0) {
            parameters.addAll(arguments);
        }

        parameters.add(pageRequest);

        invoker.setArguments(parameters.toArray());

        Page<T> curPage = (Page<T>) doInvoke(invoker);
        System.out.println("current Page no.:" + curPage.getNumber() + " of total: " + curPage.getTotalPages());
        return curPage.getContent();
    } else {
        return Collections.emptyList();
    }
}

From source file:uk.co.jassoft.markets.api.StoryController.java

@PreAuthorize("permitAll")
@RequestMapping(value = "latest/published/{limit}", method = RequestMethod.GET)
public @ResponseBody List<Story> getLatestPublishedStories(final HttpServletResponse response,
        @PathVariable int limit) throws UnknownHostException {
    Page<Story> stories = storyRepository
            .findAll(new PageRequest(0, limit, Sort.Direction.DESC, "datePublished"));

    response.setHeader("Cache-Control", "max-age=" + CacheTimeout.FIFTEEN_MINUTES);
    return stories.getContent();
}

From source file:uk.co.jassoft.markets.api.StoryController.java

@PreAuthorize("permitAll")
@RequestMapping(value = "latest/found/{limit}", method = RequestMethod.GET)
public @ResponseBody List<Story> getLatestFoundStories(final HttpServletResponse response,
        @PathVariable int limit) throws UnknownHostException {
    Page<Story> stories = storyRepository.findAll(new PageRequest(0, limit, Sort.Direction.DESC, "dateFound"));

    response.setHeader("Cache-Control", "max-age=" + CacheTimeout.FIFTEEN_MINUTES);
    return stories.getContent();
}