Skip to content
Snippets Groups Projects

Split the sort field into sort and order for better usage

2 files
+ 7
6
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -70,16 +70,16 @@ public class RDBMSQuery<T extends BareNode> {
// get fields that make up the required fields to enable pagination and check
String sortVal = params.getFirst(PersistenceUrlParameterNames.SORT.getName());
String orderValRaw = params.getFirst(PersistenceUrlParameterNames.ORDER.getName());
String orderVal = orderValRaw == null ? SortOrder.ASCENDING.name(): orderValRaw;
if (sortVal != null) {
SortOrder ord = SortOrder.getOrderFromValue(sortVal);
// split sort string of `<fieldName> <SortOrder>`
int idx = sortVal.indexOf(' ');
SortOrder ord = SortOrder.getOrderFromValue(orderVal);
// check if the sort string matches the RANDOM sort order
if (SortOrder.RANDOM.equals(ord)) {
filter.setOrder(SortOrder.RANDOM);
this.order = SortOrder.RANDOM;
} else if (ord != SortOrder.NONE) {
setSort(sortVal.substring(0, idx), sortVal.substring(idx + 1));
setSort(sortVal, ord);
}
}
}
@@ -114,11 +114,11 @@ public class RDBMSQuery<T extends BareNode> {
return -1;
}
private void setSort(String sortField, String sortOrder) {
private void setSort(String sortField, SortOrder sortOrder) {
List<Sortable<?>> fields = SortableHelper.getSortableFields(getDocType());
Optional<Sortable<?>> fieldContainer = SortableHelper.getSortableFieldByName(fields, sortField);
if (fieldContainer.isPresent()) {
this.order = SortOrder.getOrderByName(sortOrder);
this.order = sortOrder;
// add sorting query if the sortOrder matches a defined order
switch (order) {
case ASCENDING:
Loading