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

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

Introduction

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

Prototype

private Sort(Direction direction, List<String> properties) 

Source Link

Document

Creates a new Sort instance.

Usage

From source file:org.fao.geonet.api.records.MetadataWorkflowApi.java

@ApiOperation(value = "Get record status history", notes = "", nickname = "getRecordStatusHistory")
@RequestMapping(value = "/{metadataUuid}/status", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)
@ResponseStatus(value = HttpStatus.OK)/* w  w w  .  j  a va  2 s.  com*/
@ResponseBody
public List<MetadataStatusResponse> getRecordStatusHistory(
        @ApiParam(value = API_PARAM_RECORD_UUID, required = true) @PathVariable String metadataUuid,
        @RequestParam(required = false) boolean details,
        @ApiParam(value = "Sort direction", required = false) @RequestParam(defaultValue = "DESC") Sort.Direction sortOrder,
        HttpServletRequest request) throws Exception {
    ServiceContext context = ApiUtils.createServiceContext(request);
    AbstractMetadata metadata = ApiUtils.canViewRecord(metadataUuid, request);
    MetadataStatusRepositoryCustom metadataStatusRepository = ApplicationContextHolder.get()
            .getBean(MetadataStatusRepository.class);

    String sortField = SortUtils.createPath(MetadataStatus_.id, MetadataStatusId_.changeDate);

    List<MetadataStatus> listOfStatus = ((MetadataStatusRepository) metadataStatusRepository)
            .findAllById_MetadataId(metadata.getId(), new Sort(sortOrder, sortField));

    List<MetadataStatusResponse> response = buildMetadataStatusResponses(listOfStatus, details,
            context.getLanguage());

    // TODO: Add paging
    return response;
}

From source file:org.fao.geonet.api.records.MetadataWorkflowApi.java

@ApiOperation(value = "Get record status history by type", notes = "", nickname = "getRecordStatusHistoryByType")
@RequestMapping(value = "/{metadataUuid}/status/{type}", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)
@ResponseStatus(value = HttpStatus.OK)// w ww .  j ava  2s .c o m
@ResponseBody
public List<MetadataStatusResponse> getRecordStatusHistoryByType(
        @ApiParam(value = API_PARAM_RECORD_UUID, required = true) @PathVariable String metadataUuid,
        @ApiParam(value = "Type", required = true) @PathVariable StatusValueType type,
        @RequestParam(required = false) boolean details,
        @ApiParam(value = "Sort direction", required = false) @RequestParam(defaultValue = "DESC") Sort.Direction sortOrder,
        HttpServletRequest request) throws Exception {
    ServiceContext context = ApiUtils.createServiceContext(request);
    AbstractMetadata metadata = ApiUtils.canViewRecord(metadataUuid, request);
    MetadataStatusRepositoryCustom metadataStatusRepository = ApplicationContextHolder.get()
            .getBean(MetadataStatusRepository.class);

    String sortField = SortUtils.createPath(MetadataStatus_.id, MetadataStatusId_.changeDate);

    List<MetadataStatus> listOfStatus = metadataStatusRepository.findAllByIdAndByType(metadata.getId(), type,
            new Sort(sortOrder, sortField));

    List<MetadataStatusResponse> response = buildMetadataStatusResponses(listOfStatus, details,
            context.getLanguage());

    // TODO: Add paging
    return response;
}

From source file:org.fao.geonet.services.reports.ReportDataDownloads.java

public Element exec(Element params, ServiceContext context) throws Exception {

    // Process parameters
    String beginDate = Util.getParam(params, "dateFrom");
    String endDate = Util.getParam(params, "dateTo");

    beginDate = beginDate + "T00:00:00";
    endDate = endDate + "T23:59:59";

    ISODate beginDateIso = new ISODate(beginDate);
    ISODate endDateIso = new ISODate(endDate);
    Set<Integer> groupList = ReportUtils.groupsForFilter(context, params);

    // Retrieve metadata file downloads
    final Sort sort = new Sort(Sort.Direction.ASC, SortUtils.createPath(MetadataFileDownload_.downloadDate));
    final List<MetadataFileDownload> records = context.getBean(MetadataFileDownloadRepository.class).findAll(
            MetadataFileDownloadSpecs.downloadDateBetweenAndByGroups(beginDateIso, endDateIso, groupList),
            sort);/*from  w w  w  .j  a va  2s .  c o m*/

    // Process metadata results for the report
    Element response = new Element(Jeeves.Elem.RESPONSE);

    MetadataFileUploadRepository uploadRepo = context.getBean(MetadataFileUploadRepository.class);
    for (MetadataFileDownload fileDownload : records) {
        // User should be the user that uploaded the file
        int fileUploadId = fileDownload.getFileUploadId();
        MetadataFileUpload metadataFileUpload = uploadRepo.findOne(MetadataFileUploadSpecs.hasId(fileUploadId));

        User user = context.getBean(UserRepository.class).findOneByUsername(metadataFileUpload.getUserName());

        String username = user.getUsername();
        String name = (user.getName() != null ? user.getName() : "");
        String surname = (user.getSurname() != null ? user.getSurname() : "");
        String email = (user.getEmail() != null ? user.getEmail() : "");
        String profile = user.getProfile().name();

        String requesterName = fileDownload.getRequesterName();
        String requesterMail = fileDownload.getRequesterMail();
        if (StringUtils.isEmpty(requesterName) && StringUtils.isNotEmpty(fileDownload.getUserName())) {
            User userDownload = context.getBean(UserRepository.class)
                    .findOneByUsername(fileDownload.getUserName());

            requesterName = userDownload.getName() + " " + userDownload.getSurname();
            requesterMail = userDownload.getEmail();
        }

        // Get metadata title/uuid from index
        String metadataTitle = ReportUtils.retrieveMetadataTitle(context, fileDownload.getMetadataId());
        String metadataUuid = ReportUtils.retrieveMetadataUuid(context, fileDownload.getMetadataId());

        // Build the record element with the information for the report
        Element metadataEl = new Element("record");
        metadataEl.addContent(new Element("uuid").setText(metadataUuid))
                .addContent(new Element("recordName").setText(metadataTitle))
                .addContent(new Element("filename").setText(fileDownload.getFileName()))
                .addContent(new Element("downloaddate").setText(fileDownload.getDownloadDate()))
                .addContent(new Element("requestername").setText(requesterName))
                .addContent(new Element("requestermail").setText(requesterMail))
                .addContent(new Element("requesterorg").setText(fileDownload.getRequesterOrg()))
                .addContent(new Element("requestercomments").setText(fileDownload.getRequesterComments()))
                .addContent(new Element("username").setText(username))
                .addContent(new Element("surname").setText(surname))
                .addContent(new Element("name").setText(name)).addContent(new Element("email").setText(email))
                .addContent(new Element("profile").setText(profile))
                .addContent(new Element("expiry_datetime").setText(metadataFileUpload.getDeletedDate()));

        response.addContent(metadataEl);
    }

    return response;
}

From source file:org.georchestra.console.ws.backoffice.log.LogController.java

/**
 * Returns array of logs using json syntax.
 * <pre>/*ww w  .j  a va 2s.c  o m*/
 *     {"logs": [
 *      {
 *         "admin": "testadmin",
  *         "date": "2016-03-22T15:26:21.087+0100",
 *         "target": "testeditor",
 *         "type": "Email sent"
 *      },
 *      {
 *         "admin": "testadmin",
 *         "date": "2016-03-21T17:50:09.258+0100",
 *         "target": "joe",
 *         "type": "Email sent"
 *      },
 *      {
 *         "admin": "testadmin",
 *         "date": "2016-03-21T17:50:09.258+0100",
 *         "target": "marie",
 *         "type": "Email sent"
 *      }
 *   ]}
 * </pre>
 *
 */
@RequestMapping(value = REQUEST_MAPPING
        + "/{target}/{limit}/{page}", method = RequestMethod.GET, produces = "application/json; charset=utf-8")
@ResponseBody
public List<AdminLogEntry> find(@PathVariable String target, @PathVariable int limit, @PathVariable int page) {

    Authentication auth = SecurityContextHolder.getContext().getAuthentication();

    // Filter logs by orgs users if user is not SUPERUSER
    if (!auth.getAuthorities().contains(ROLE_SUPERUSER)) {
        List<String> users = new ArrayList<String>();
        DelegationEntry delegation = this.delegationDao.findOne(auth.getName());
        String[] orgs = delegation.getOrgs();
        for (String org : orgs)
            users.addAll(this.orgsDao.findByCommonName(org).getMembers());
        if (!users.contains(target))
            throw new AccessDeniedException("User not under delegation");
    }

    return this.logDao.findByTarget(target,
            new PageRequest(page, limit, new Sort(Sort.Direction.DESC, "date")));
}

From source file:org.georchestra.console.ws.backoffice.log.LogController.java

@RequestMapping(value = REQUEST_MAPPING
        + "/{limit}/{page}", method = RequestMethod.GET, produces = "application/json; charset=utf-8")
@ResponseBody/*ww  w .  j  a  va 2  s .c  o m*/
public List<AdminLogEntry> find(HttpServletRequest request, @PathVariable int limit, @PathVariable int page) {
    Authentication auth = SecurityContextHolder.getContext().getAuthentication();

    // Filter logs by orgs users if user is not SUPERUSER
    if (!auth.getAuthorities().contains(ROLE_SUPERUSER)) {
        Set<String> users = this.advancedDelegationDao.findUsersUnderDelegation(auth.getName());
        return this.logDao.myFindByTargets(users,
                new PageRequest(page, limit, new Sort(Sort.Direction.DESC, "date")));
    } else {
        return this.logDao.findAll(new PageRequest(page, limit, new Sort(Sort.Direction.DESC, "date")))
                .getContent();
    }

}

From source file:org.jbb.security.impl.lockout.DefaultMemberLockoutService.java

@Override
@Transactional(readOnly = true)/*from  w  ww.j av  a 2 s  . c  o  m*/
public Page<MemberLock> getLocksWithCriteria(LockSearchCriteria criteria) {
    Validate.notNull(criteria);
    PageRequest pageRequest = PageRequest.of(criteria.getPageRequest().getPageNumber(),
            criteria.getPageRequest().getPageSize(), new Sort(Direction.DESC, "createDateTime"));
    return lockRepository.findAll(specificationCreator.createSpecification(criteria), pageRequest)
            .map(memberLockDomainTranslator::toModel);
}

From source file:org.opentestsystem.delivery.testreg.persistence.AssessmentRepositoryImpl.java

@Override
public Assessment findMaxOpportunities() {
    Query query = new Query();
    query.with(new Sort(Direction.DESC, "numGlobalOpportunities")).limit(1);
    return mongoOperations.findOne(query, Assessment.class);
}

From source file:org.opentestsystem.delivery.testreg.service.impl.UserChangeEventExportServiceImpl.java

@Override
@Scheduled(initialDelayString = "${testreg.user.export.frequency.milliseconds:120000}", fixedDelayString = "${testreg.user.export.frequency.milliseconds:120000}")
public void exportUserChangeEvents() {
    int userChangeEventsAddedToXML = 0;
    List<UserChangeEvent> userChangeEvents = userChangeEventService
            .findAll(new Sort(Sort.Direction.ASC, "timestamp"));
    if (userChangeEvents.size() > 0) {
        userChangeEventService.delete(userChangeEvents);
        long changeEventsUpToTimestamp = userChangeEvents.get(userChangeEvents.size() - 1).getTimestamp();
        String exportFileName = "accounts_" + changeEventsUpToTimestamp + "_" + UUID.randomUUID().toString()
                + fileNameSuffix + ".xml";
        try {//from  www.  java2s .c  o m
            LOGGER.debug("exporting " + userChangeEvents.size() + " user change events");
            StringBuilder userChangeEventsAsXML = new StringBuilder();
            userChangeEventsAsXML.append("<?xml version='1.0' encoding='" + UTF8 + "'?>\n");
            userChangeEventsAsXML.append("<Users>\n");
            for (UserChangeEvent userChangeEvent : userChangeEvents) {
                try {
                    LOGGER.debug("processing user change event id: " + userChangeEvent.getId() + " (user id: "
                            + userChangeEvent.getModifiedUserId() + ")");
                    userChangeEventsAsXML.append(convertToXML(userChangeEvent)).append("\n");
                    userChangeEventsAddedToXML++;
                } catch (CannotExportUserChangeEventException ex) {
                    LOGGER.warn("Skipping user change event for user (" + userChangeEvent.getModifiedUserId()
                            + "): Action: (" + userChangeEvent.getAction() + "): " + ex.getMessage());
                }
            }
            userChangeEventsAsXML.append("</Users>");
            if (userChangeEventsAddedToXML > 0) {
                LOGGER.debug("\n\n" + userChangeEventsAsXML.toString() + "\n");
                fileTransferService.writeFile(exportFileName, userChangeEventsAsXML.toString());
                alertBeacon.sendAlert(MnaSeverity.INFO, MnaAlertType.SSO_USER_EXPORT.name(),
                        "user change event export successful");
            }
        } catch (Exception ex) {
            userChangeEventService.saveUserChangeEvents(userChangeEvents);
            String errorMessage = "problem processing user change events to export!";
            LOGGER.error(errorMessage, ex);
            alertBeacon.sendAlert(MnaSeverity.ERROR, MnaAlertType.SSO_USER_EXPORT.name(),
                    errorMessage + ": " + ex.getMessage());
        }
    }
}

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

@Test
@Transactional//from   w w  w . j av a 2  s .c om
public void testFindSortedDescending() {
    final Sort sort = new Sort(Sort.Direction.DESC, "member.name");
    Iterable<Person> teamMembers = personRepository.findAllTeamMembersSorted(testTeam.sdg, sort);
    assertEquals(asList(testTeam.michael, testTeam.emil, testTeam.david), asCollection(teamMembers));
}

From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java

@Test
public void testWithSortDescOnSingleField() {
    SimpleStringCriteria criteria = new SimpleStringCriteria("field_1:value_1");
    Query query = new SimpleQuery(criteria);
    query.addSort(new Sort(Sort.Direction.DESC, "field_2"));
    SolrQuery solrQuery = queryParser.constructSolrQuery(query);
    Assert.assertEquals("field_2 desc", solrQuery.getSortField());
    Assert.assertEquals(1, solrQuery.getSorts().size());
}