|
|
|
@ -18,7 +18,7 @@ package org.thingsboard.server.dao; |
|
|
|
import org.springframework.data.domain.Page; |
|
|
|
import org.springframework.data.domain.PageRequest; |
|
|
|
import org.springframework.data.domain.Pageable; |
|
|
|
import org.springframework.data.domain.Sort; |
|
|
|
|
|
|
|
import org.thingsboard.server.common.data.id.UUIDBased; |
|
|
|
import org.thingsboard.server.common.data.page.PageData; |
|
|
|
import org.thingsboard.server.common.data.page.PageLink; |
|
|
|
@ -32,13 +32,9 @@ import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Optional; |
|
|
|
import java.util.UUID; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
public abstract class DaoUtil { |
|
|
|
|
|
|
|
public static final String DEFAULT_SORT_PROPERTY = "id"; |
|
|
|
public static final Sort DEFAULT_SORT = Sort.by(Sort.Direction.ASC, DEFAULT_SORT_PROPERTY); |
|
|
|
|
|
|
|
private DaoUtil() { |
|
|
|
} |
|
|
|
|
|
|
|
@ -56,7 +52,7 @@ public abstract class DaoUtil { |
|
|
|
} |
|
|
|
|
|
|
|
public static Pageable toPageable(PageLink pageLink, Map<String,String> columnMap) { |
|
|
|
return PageRequest.of(pageLink.getPage(), pageLink.getPageSize(), toSort(pageLink.getSortOrder(), columnMap)); |
|
|
|
return PageRequest.of(pageLink.getPage(), pageLink.getPageSize(), pageLink.toSort(pageLink.getSortOrder(), columnMap)); |
|
|
|
} |
|
|
|
|
|
|
|
public static Pageable toPageable(PageLink pageLink, List<SortOrder> sortOrders) { |
|
|
|
@ -64,43 +60,7 @@ public abstract class DaoUtil { |
|
|
|
} |
|
|
|
|
|
|
|
public static Pageable toPageable(PageLink pageLink, Map<String,String> columnMap, List<SortOrder> sortOrders) { |
|
|
|
return PageRequest.of(pageLink.getPage(), pageLink.getPageSize(), toSort(sortOrders, columnMap)); |
|
|
|
} |
|
|
|
|
|
|
|
public static Sort toSort(SortOrder sortOrder) { |
|
|
|
return toSort(sortOrder, Collections.emptyMap()); |
|
|
|
} |
|
|
|
|
|
|
|
public static Sort toSort(SortOrder sortOrder, Map<String,String> columnMap) { |
|
|
|
if (sortOrder == null) { |
|
|
|
return DEFAULT_SORT; |
|
|
|
} else { |
|
|
|
String property = sortOrder.getProperty(); |
|
|
|
if (columnMap.containsKey(property)) { |
|
|
|
property = columnMap.get(property); |
|
|
|
} |
|
|
|
return Sort.by(Sort.Direction.fromString(sortOrder.getDirection().name()), property); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public static Sort toSort(List<SortOrder> sortOrders) { |
|
|
|
return toSort(sortOrders, Collections.emptyMap()); |
|
|
|
} |
|
|
|
|
|
|
|
public static Sort toSort(List<SortOrder> sortOrders, Map<String,String> columnMap) { |
|
|
|
return toSort(sortOrders, columnMap, Sort.NullHandling.NULLS_LAST); |
|
|
|
} |
|
|
|
|
|
|
|
public static Sort toSort(List<SortOrder> sortOrders, Map<String,String> columnMap, Sort.NullHandling nullHandlingHint) { |
|
|
|
return Sort.by(sortOrders.stream().map(s -> toSortOrder(s, columnMap, nullHandlingHint)).collect(Collectors.toList())); |
|
|
|
} |
|
|
|
|
|
|
|
public static Sort.Order toSortOrder(SortOrder sortOrder, Map<String,String> columnMap, Sort.NullHandling nullHandlingHint) { |
|
|
|
String property = sortOrder.getProperty(); |
|
|
|
if (columnMap.containsKey(property)) { |
|
|
|
property = columnMap.get(property); |
|
|
|
} |
|
|
|
return new Sort.Order(Sort.Direction.fromString(sortOrder.getDirection().name()), property, nullHandlingHint); |
|
|
|
return PageRequest.of(pageLink.getPage(), pageLink.getPageSize(), pageLink.toSort(sortOrders, columnMap)); |
|
|
|
} |
|
|
|
|
|
|
|
public static <T> List<T> convertDataList(Collection<? extends ToData<T>> toDataList) { |
|
|
|
|