Example usage for org.springframework.data.domain Sort getOrderFor

List of usage examples for org.springframework.data.domain Sort getOrderFor

Introduction

In this page you can find the example usage for org.springframework.data.domain Sort getOrderFor.

Prototype

@Nullable
public Order getOrderFor(String property) 

Source Link

Document

Returns the order registered for the given property.

Usage

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;
}