Search in sources :

Example 21 with Order

use of org.springframework.data.domain.Sort.Order in project CzechIdMng by bcvsolutions.

the class DefaultWorkflowProcessInstanceService method find.

@Override
public Page<WorkflowProcessInstanceDto> find(WorkflowFilterDto filter, Pageable pageable, BasePermission... permission) {
    // we must call original method search because is there check flag checkRight
    if (pageable != null) {
        filter.setPageNumber(pageable.getPageNumber());
        filter.setPageSize(pageable.getPageSize());
        // 
        String fieldForSort = null;
        boolean ascSort = false;
        boolean descSort = false;
        if (pageable != null) {
            Sort sort = pageable.getSort();
            if (sort != null) {
                for (Order order : sort) {
                    if (!StringUtils.isEmpty(order.getProperty())) {
                        // TODO: now is implemented only one property sort
                        fieldForSort = order.getProperty();
                        if (order.getDirection() == Direction.ASC) {
                            ascSort = true;
                        } else if (order.getDirection() == Direction.DESC) {
                            descSort = true;
                        }
                        break;
                    }
                }
            }
        }
        filter.setSortAsc(ascSort);
        filter.setSortDesc(descSort);
        filter.setSortByFields(fieldForSort);
    }
    ResourcesWrapper<WorkflowProcessInstanceDto> search = this.search(filter);
    // 
    ResourcePage pages = search.getPage();
    List<WorkflowProcessInstanceDto> processes = (List<WorkflowProcessInstanceDto>) search.getResources();
    // 
    return new PageImpl<WorkflowProcessInstanceDto>(processes, pageable, pages.getTotalElements());
}
Also used : Order(org.springframework.data.domain.Sort.Order) PageImpl(org.springframework.data.domain.PageImpl) Sort(org.springframework.data.domain.Sort) ArrayList(java.util.ArrayList) List(java.util.List) WorkflowProcessInstanceDto(eu.bcvsolutions.idm.core.workflow.model.dto.WorkflowProcessInstanceDto) ResourcePage(eu.bcvsolutions.idm.core.api.rest.domain.ResourcePage)

Example 22 with Order

use of org.springframework.data.domain.Sort.Order in project spring-data-mongodb by spring-projects.

the class SortOperation method toDocument.

/*
	 * (non-Javadoc)
	 * @see org.springframework.data.mongodb.core.aggregation.AggregationOperation#toDocument(org.springframework.data.mongodb.core.aggregation.AggregationOperationContext)
	 */
@Override
public Document toDocument(AggregationOperationContext context) {
    Document object = new Document();
    for (Order order : sort) {
        // Check reference
        FieldReference reference = context.getReference(order.getProperty());
        object.put(reference.getRaw(), order.isAscending() ? 1 : -1);
    }
    return new Document("$sort", object);
}
Also used : Order(org.springframework.data.domain.Sort.Order) FieldReference(org.springframework.data.mongodb.core.aggregation.ExposedFields.FieldReference) Document(org.bson.Document)

Example 23 with Order

use of org.springframework.data.domain.Sort.Order in project spring-data-mongodb by spring-projects.

the class IndexEnsuringQueryCreationListener method onCreation.

/*
	 * (non-Javadoc)
	 * @see org.springframework.data.repository.core.support.QueryCreationListener#onCreation(org.springframework.data.repository.query.RepositoryQuery)
	 */
public void onCreation(PartTreeMongoQuery query) {
    PartTree tree = query.getTree();
    if (!tree.hasPredicate()) {
        return;
    }
    Index index = new Index();
    index.named(query.getQueryMethod().getName());
    Sort sort = tree.getSort();
    for (Part part : tree.getParts()) {
        if (GEOSPATIAL_TYPES.contains(part.getType())) {
            return;
        }
        String property = part.getProperty().toDotPath();
        Direction order = toDirection(sort, property);
        index.on(property, order);
    }
    // Add fixed sorting criteria to index
    if (sort.isSorted()) {
        for (Order order : sort) {
            index.on(order.getProperty(), order.getDirection());
        }
    }
    MongoEntityMetadata<?> metadata = query.getQueryMethod().getEntityInformation();
    indexOperationsProvider.indexOps(metadata.getCollectionName()).ensureIndex(index);
    LOG.debug(String.format("Created %s!", index));
}
Also used : Order(org.springframework.data.domain.Sort.Order) Part(org.springframework.data.repository.query.parser.Part) Sort(org.springframework.data.domain.Sort) Index(org.springframework.data.mongodb.core.index.Index) PartTree(org.springframework.data.repository.query.parser.PartTree) Direction(org.springframework.data.domain.Sort.Direction)

Example 24 with Order

use of org.springframework.data.domain.Sort.Order in project plumdo-work by wengwh.

the class BaseResource method getPageable.

public Pageable getPageable(Map<String, String> requestParams) {
    int page = RequestUtil.getInteger(requestParams, "pageNum", 1) - 1;
    int size = RequestUtil.getInteger(requestParams, "pageSize", 10);
    String[] orders = RequestUtil.getArray(requestParams, "sortOrder");
    String[] sorts = RequestUtil.getArray(requestParams, "sortName");
    List<Order> sortOrders = new ArrayList<Order>();
    for (int i = 0; i < sorts.length; i++) {
        String sort = sorts[i];
        String order = orders[i];
        if (order.equals("asc")) {
            sortOrders.add(new Order(Direction.ASC, sort));
        } else if (order.equals("desc")) {
            sortOrders.add(new Order(Direction.DESC, sort));
        } else {
            throw new IllegalArgumentException("Value for param 'order' is not valid : '" + order + "', must be 'asc' or 'desc'");
        }
    }
    if (sortOrders.isEmpty()) {
        return new PageRequest(page, size);
    } else {
        return new PageRequest(page, size, new Sort(sortOrders));
    }
}
Also used : Order(org.springframework.data.domain.Sort.Order) PageRequest(org.springframework.data.domain.PageRequest) ArrayList(java.util.ArrayList) Sort(org.springframework.data.domain.Sort)

Example 25 with Order

use of org.springframework.data.domain.Sort.Order in project spring-data-commons by spring-projects.

the class OrderAdapter method unmarshal.

/*
	 * (non-Javadoc)
	 * @see javax.xml.bind.annotation.adapters.XmlAdapter#unmarshal(java.lang.Object)
	 */
@Nullable
@Override
public Order unmarshal(@Nullable OrderDto source) {
    if (source == null) {
        return null;
    }
    Direction direction = source.direction;
    String property = source.property;
    if (direction == null || property == null) {
        return null;
    }
    return new Order(direction, property);
}
Also used : Order(org.springframework.data.domain.Sort.Order) Direction(org.springframework.data.domain.Sort.Direction) Nullable(org.springframework.lang.Nullable)

Aggregations

Order (org.springframework.data.domain.Sort.Order)38 Sort (org.springframework.data.domain.Sort)20 PageRequest (org.springframework.data.domain.PageRequest)14 Test (org.junit.Test)13 Direction (org.springframework.data.domain.Sort.Direction)9 PageImpl (org.springframework.data.domain.PageImpl)8 ArrayList (java.util.ArrayList)6 IdentifiableTestEntity (ca.corefacility.bioinformatics.irida.utils.model.IdentifiableTestEntity)4 IdentifiableTestEntitySpecification (ca.corefacility.bioinformatics.irida.utils.model.IdentifiableTestEntitySpecification)4 Pageable (org.springframework.data.domain.Pageable)4 Specification (org.springframework.data.jpa.domain.Specification)4 Document (org.bson.Document)2 OrderSpecifier (com.querydsl.core.types.OrderSpecifier)1 PathBuilderFactory (com.querydsl.core.types.dsl.PathBuilderFactory)1 StringPath (com.querydsl.core.types.dsl.StringPath)1 ResourcePage (eu.bcvsolutions.idm.core.api.rest.domain.ResourcePage)1 WorkflowHistoricProcessInstanceDto (eu.bcvsolutions.idm.core.workflow.model.dto.WorkflowHistoricProcessInstanceDto)1 WorkflowHistoricTaskInstanceDto (eu.bcvsolutions.idm.core.workflow.model.dto.WorkflowHistoricTaskInstanceDto)1 WorkflowProcessInstanceDto (eu.bcvsolutions.idm.core.workflow.model.dto.WorkflowProcessInstanceDto)1 Comparator (java.util.Comparator)1