List of usage examples for org.springframework.data.domain Sort getOrderFor
@Nullable
public Order getOrderFor(String property)
From source file:me.doshou.admin.maintain.editor.web.controller.utils.OnlineEditorUtils.java
public static void sort(final List<Map<Object, Object>> files, final Sort sort) { Collections.sort(files, new Comparator<Map<Object, Object>>() { @Override/*from w w w .ja va 2 s . c om*/ public int compare(Map<Object, Object> o1, Map<Object, Object> o2) { if (sort == null) { return 0; } Sort.Order nameOrder = sort.getOrderFor("name"); if (nameOrder != null) { String n1 = (String) o1.get("name"); String n2 = (String) o2.get("name"); Boolean n1IsDirecoty = (Boolean) o1.get("isDirectory"); Boolean n2IsDirecoty = (Boolean) o2.get("isDirectory"); if (n1IsDirecoty.equals(Boolean.TRUE) && n2IsDirecoty.equals(Boolean.FALSE)) { return -1; } else if (n1IsDirecoty.equals(Boolean.FALSE) && n2IsDirecoty.equals(Boolean.TRUE)) { return 1; } if (nameOrder.getDirection() == Sort.Direction.ASC) { return n1.compareTo(n2); } else { return -n1.compareTo(n2); } } Sort.Order lastModifiedOrder = sort.getOrderFor("lastModified"); if (lastModifiedOrder != null) { Long l1 = (Long) o1.get("lastModifiedForLong"); Long l2 = (Long) o2.get("lastModifiedForLong"); if (lastModifiedOrder.getDirection() == Sort.Direction.ASC) { return l1.compareTo(l2); } else { return -l1.compareTo(l2); } } Sort.Order sizeOrder = sort.getOrderFor("size"); if (sizeOrder != null) { Long s1 = (Long) o1.get("size"); Long s2 = (Long) o2.get("size"); if (sizeOrder.getDirection() == Sort.Direction.ASC) { return s1.compareTo(s2); } else { return -s1.compareTo(s2); } } return 0; } }); }
From source file:com.github.vineey.rql.querydsl.spring.SpringUtilTest.java
@Test public void convertToPageable() { String rqlFilter = "(employee.number=='1' and employee.names =size= 1) or (employee.number=='2' and employee.names =size= 2)"; String limit = "limit(0, 10)"; String sort = "sort(+employee.number)"; RqlInput rqlInput = new RqlInput().setFilter(rqlFilter).setLimit(limit).setSort(sort); Map<String, Path> pathMapping = ImmutableMap.<String, Path>builder() .put("employee.number", QEmployee.employee.employeeNumber) .put("employee.names", QEmployee.employee.names).build(); QuerydslMappingResult querydslMappingResult = querydslRqlParser.parse(rqlInput, new QuerydslMappingParam().setRootPath(QEmployee.employee).setPathMapping(pathMapping)); Pageable pageable = SpringUtil.toPageable(querydslMappingResult.getOrderSpecifiers(), querydslMappingResult.getPage()); Assert.assertEquals(0, pageable.getOffset()); Assert.assertEquals(10, pageable.getPageSize()); Sort pageableSort = pageable.getSort(); Assert.assertEquals(Sort.Direction.ASC, pageableSort.getOrderFor("employeeNumber").getDirection()); }
From source file:org.openlmis.fulfillment.util.CustomSortDeserializerTest.java
@Test public void shouldDeserializeArraySort() throws IOException { ObjectMapper mapper = new ObjectMapper(); ObjectNode order = mapper.createObjectNode(); order.put("direction", "DESC"); order.put("property", "startDate"); order.put("ignoreCase", false); order.put("nullHandling", "NATIVE"); order.put("ascending", false); order.put("descending", true); ArrayNode arrayNode = mapper.createArrayNode(); arrayNode.add(order);//from w w w .j a va 2 s.c o m ObjectNode testObject = mapper.createObjectNode(); testObject.set("sort", arrayNode); Sort sort = deserialize(testObject.toString()); assertEquals(Sort.Direction.DESC, sort.getOrderFor("startDate").getDirection()); }
From source file:org.springframework.data.mongodb.repository.support.IndexEnsuringQueryCreationListener.java
private static Order toOrder(Sort sort, String property) { if (sort == null) { return Order.DESCENDING; }// w w w . j av a 2 s . c om org.springframework.data.domain.Sort.Order order = sort.getOrderFor(property); return order == null ? Order.DESCENDING : order.isAscending() ? Order.ASCENDING : Order.DESCENDING; }