Я хотел бы построить Sort
объект, используя этот Optional
-подобный код:
private Sort buildSort(Collection<String> fields) {
fields.stream()
.map(this::buildOrder)
.collect(Sort.unsorted(), ????, ????);
}
buildOrder
:
private Order buildOrder(String field) {
if (field.startsWith("-")) {
return Order.desc(field.substring(1));
}
else {
return Order.asc(field);
}
}
Мне нужно вернутьSort.unsorted()
, если поток пустой, или объединить каждый Sort
объект.
У объекта сортировки есть метод and
, который обозначает построение и объединение заказов.
Sort.by(sort1)
.and(sort2)...
Так что янужно что:
if (stream is empty) then
return Sort.unsorted
else
return foreach item in stream:
Sort.by(item).and(item2).and(item3)...
Классы:
org.springframework.data.domain.Sort
org.springframework.data.domain.Sort.Order
NOTE
Мне нужно использовать stream-api!