Jordi:
Me gustaría construir un Sort
objeto utilizando este Optional
código -como:
private Sort buildSort(Collection<String> fields) {
fields.stream()
.map(this::buildOrder)
.collect(Sort.unsorted(), ????, ????);
}
buildOrder
es:
private Order buildOrder(String field) {
if (field.startsWith("-")) {
return Order.desc(field.substring(1));
}
else {
return Order.asc(field);
}
}
Tengo que devolver un Sort.unsorted()
caso corriente está vacía, o combinar cada Sort
objeto.
Ordenar objeto tiene un and
método que significa la construcción y las órdenes de concatenar.
Sort.by(sort1)
.and(sort2)...
Así que necesito que:
if (stream is empty) then
return Sort.unsorted
else
return foreach item in stream:
Sort.by(item).and(item2).and(item3)...
clases:
org.springframework.data.domain.Sort
org.springframework.data.domain.Sort.Order
NOTA
Necesito uso corriente-api!
Miguel :
Creo que esto debería funcionar. El segundo map
convertidos cada uno Order
a sí mismo Sort
. El acumulador y combinador continuación, sólo tiene que añadir Sorts
juntos.
return fields.stream()
.map(this::buildOrder)
.map(Sort::by)
.collect(Sort::unsorted, Sort::and, Sort::and);