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());
}
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);
}
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));
}
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));
}
}
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);
}
Aggregations