Example usage for org.springframework.data.domain Pageable getSort

List of usage examples for org.springframework.data.domain Pageable getSort

Introduction

In this page you can find the example usage for org.springframework.data.domain Pageable getSort.

Prototype

Sort getSort();

Source Link

Document

Returns the sorting parameters.

Usage

From source file:cn.guoyukun.spring.jpa.entity.search.SearchRequest.java

private void merge(Sort sort, Pageable page) {
    if (sort == null) {
        sort = this.sort;
    }/*from w ww  .ja v  a2s  .  c  o  m*/
    if (page == null) {
        page = this.page;
    }

    //??
    if (sort == null) {
        this.sort = page != null ? page.getSort() : null;
    } else {
        this.sort = (page != null ? sort.and(page.getSort()) : sort);
    }
    //??page
    if (page != null) {
        this.page = new PageRequest(page.getPageNumber(), page.getPageSize(), this.sort);
    } else {
        this.page = null;
    }
}

From source file:com.luna.common.web.bind.method.annotation.PageableMethodArgumentResolverTest.java

@Test
public void testParameterDefaultPageable() throws Exception {
    MethodParameter parameter = new MethodParameter(parameterDefaultPageable, 0);
    NativeWebRequest webRequest = new ServletWebRequest(request);
    Pageable pageable = (Pageable) new PageableMethodArgumentResolver().resolveArgument(parameter, null,
            webRequest, null);// w w  w .  jav  a  2 s  .  c o  m

    assertEquals(Controller.DEFAULT_PAGENUMBER, pageable.getPageNumber());
    assertEquals(Controller.DEFAULT_PAGESIZE, pageable.getPageSize());
    Sort expectedSort = new Sort(Sort.Direction.DESC, "id").and(new Sort(Sort.Direction.ASC, "name"));
    assertEquals(expectedSort, pageable.getSort());

}

From source file:com.luna.common.web.bind.method.annotation.PageableMethodArgumentResolverTest.java

@Test
public void testMethodDefaultPageable() throws Exception {
    MethodParameter parameter = new MethodParameter(methodDefaultPageable, 0);
    NativeWebRequest webRequest = new ServletWebRequest(request);
    Pageable pageable = (Pageable) new PageableMethodArgumentResolver().resolveArgument(parameter, null,
            webRequest, null);/*from ww  w  . jav a2  s. c o  m*/

    assertEquals(Controller.DEFAULT_PAGENUMBER, pageable.getPageNumber());
    assertEquals(Controller.DEFAULT_PAGESIZE, pageable.getPageSize());

    Sort expectedSort = new Sort(Sort.Direction.DESC, "id").and(new Sort(Sort.Direction.ASC, "name"));
    assertEquals(expectedSort, pageable.getSort());
}

From source file:org.ngrinder.user.controller.UserController.java

/**
 * Get user list on the given role.//from  w ww  .jav a 2s.c o  m
 *
 * @param model    model
 * @param role     role
 * @param pageable page info
 * @param keywords search keyword.
 * @return user/userList
 */
@PreAuthorize("hasAnyRole('A')")
@RequestMapping({ "", "/" })
public String getAll(ModelMap model, @RequestParam(required = false) Role role,
        @PageableDefaults Pageable pageable, @RequestParam(required = false) String keywords) {

    pageable = new PageRequest(pageable.getPageNumber(), pageable.getPageSize(),
            defaultIfNull(pageable.getSort(), new Sort(Direction.ASC, "userName")));
    Page<User> pagedUser;
    if (StringUtils.isEmpty(keywords)) {
        pagedUser = userService.getPagedAll(role, pageable);
    } else {
        pagedUser = userService.getPagedAll(keywords, pageable);
        model.put("keywords", keywords);
    }
    model.addAttribute("users", pagedUser);
    EnumSet<Role> roleSet = EnumSet.allOf(Role.class);
    model.addAttribute("roleSet", roleSet);
    model.addAttribute("role", role);
    putPageIntoModelMap(model, pageable);
    return "user/list";
}

From source file:com.drillmap.crm.repository.extensions.invoker.ReflectionRepositoryInvoker.java

private Object[] prepareParameters(Method method, Map<String, String[]> rawParameters, Pageable pageable,
        Sort sort) {/*from ww w .  j  a  v  a2  s .co  m*/

    List<MethodParameter> parameters = new MethodParameters(method, PARAM_ANNOTATION).getParameters();

    if (parameters.isEmpty()) {
        return new Object[0];
    }

    Object[] result = new Object[parameters.size()];
    Sort sortToUse = pageable == null ? sort : pageable.getSort();

    for (int i = 0; i < result.length; i++) {

        MethodParameter param = parameters.get(i);
        Class<?> targetType = param.getParameterType();

        if (Pageable.class.isAssignableFrom(targetType)) {
            result[i] = pageable;
        } else if (Sort.class.isAssignableFrom(targetType)) {
            result[i] = sortToUse;
        } else {

            String parameterName = param.getParameterName();

            if (!StringUtils.hasText(parameterName)) {
                throw new IllegalArgumentException("No @Param annotation found on query method "
                        + method.getName() + " for parameter " + parameterName);
            }

            String[] parameterValue = rawParameters.get(parameterName);
            Object value = parameterValue == null ? null
                    : parameterValue.length == 1 ? parameterValue[0] : parameterValue;

            result[i] = conversionService.convert(value, TypeDescriptor.forObject(value),
                    new TypeDescriptor(param));
        }
    }

    return result;
}

From source file:org.ngrinder.user.controller.UserController.java

/**
 * Search user list on the given keyword.
 *
 * @param pageable page info/*from  w  ww . j ava2s  .c  o m*/
 * @param keywords search keyword.
 * @return json message
 */
@RestAPI
@RequestMapping(value = "/api/search", method = RequestMethod.GET)
public HttpEntity<String> search(User user, @PageableDefaults Pageable pageable,
        @RequestParam(required = true) String keywords) {
    pageable = new PageRequest(pageable.getPageNumber(), pageable.getPageSize(),
            defaultIfNull(pageable.getSort(), new Sort(Direction.ASC, "userName")));
    Page<User> pagedUser = userService.getPagedAll(keywords, pageable);
    List<UserSearchResult> result = newArrayList();
    for (User each : pagedUser) {
        result.add(new UserSearchResult(each));
    }

    final String currentUserId = user.getUserId();
    CollectionUtils.filter(result, new Predicate() {
        @Override
        public boolean evaluate(Object object) {
            UserSearchResult each = (UserSearchResult) object;
            return !(each.getId().equals(currentUserId)
                    || each.getId().equals(ControllerConstants.NGRINDER_INITIAL_ADMIN_USERID));
        }
    });

    return toJsonHttpEntity(result);
}

From source file:com.luna.common.web.bind.method.annotation.PageableMethodArgumentResolverTest.java

@Test
public void testParameterDefaultPageableAndOverrideSort() throws Exception {

    request.setParameter("sort2.id", "desc");
    request.setParameter("sort1.baseInfo.realname", "asc");

    MethodParameter parameter = new MethodParameter(parameterDefaultPageable, 0);
    NativeWebRequest webRequest = new ServletWebRequest(request);
    Pageable pageable = (Pageable) new PageableMethodArgumentResolver().resolveArgument(parameter, null,
            webRequest, null);// w  ww .j av a  2s  .  c  o m

    assertEquals(Controller.DEFAULT_PAGENUMBER, pageable.getPageNumber());
    assertEquals(Controller.DEFAULT_PAGESIZE, pageable.getPageSize());
    Sort expectedSort = new Sort(Sort.Direction.ASC, "baseInfo.realname")
            .and(new Sort(Sort.Direction.DESC, "id"));
    assertEquals(expectedSort, pageable.getSort());
}

From source file:com.luna.common.web.bind.method.annotation.PageableMethodArgumentResolverTest.java

@Test
public void testCustomNamePrefixPageableAndSort() throws Exception {
    int pn = 1;// www .j a  v a  2s .  c  o  m
    int pageSize = 10;
    request.setParameter("foo_page.pn", String.valueOf(pn));
    request.setParameter("foo_page.size", String.valueOf(pageSize));
    request.setParameter("foo_sort2.id", "desc");
    request.setParameter("foo_sort1.baseInfo.realname", "asc");

    MethodParameter parameter = new MethodParameter(customNamePrefixPageableAndSort, 0);
    NativeWebRequest webRequest = new ServletWebRequest(request);
    Pageable pageable = (Pageable) new PageableMethodArgumentResolver().resolveArgument(parameter, null,
            webRequest, null);

    //-10
    assertEquals(pn - 1, pageable.getPageNumber());
    assertEquals(pageSize, pageable.getPageSize());
    Sort expectedSort = new Sort(Sort.Direction.ASC, "baseInfo.realname")
            .and(new Sort(Sort.Direction.DESC, "id"));
    assertEquals(expectedSort, pageable.getSort());
}

From source file:com.luna.common.web.bind.method.annotation.PageableMethodArgumentResolverTest.java

@Test
public void testPageableAndUnOrderedSort() throws Exception {

    int pn = 1;//from www.j  a  v a 2s.  co  m
    int pageSize = 10;
    request.setParameter("page.pn", String.valueOf(pn));
    request.setParameter("page.size", String.valueOf(pageSize));
    request.setParameter("sort.id", "desc");
    request.setParameter("sort.baseInfo.realname", "asc");

    MethodParameter parameter = new MethodParameter(pageableAndSort, 0);
    NativeWebRequest webRequest = new ServletWebRequest(request);
    Pageable pageable = (Pageable) new PageableMethodArgumentResolver().resolveArgument(parameter, null,
            webRequest, null);

    //-10
    assertEquals(pn - 1, pageable.getPageNumber());
    assertEquals(pageSize, pageable.getPageSize());
    Sort expectedSort = new Sort(Sort.Direction.ASC, "baseInfo.realname")
            .and(new Sort(Sort.Direction.DESC, "id"));
    assertEquals(expectedSort, pageable.getSort());
}

From source file:com.luna.common.web.bind.method.annotation.PageableMethodArgumentResolverTest.java

@Test
public void testPageableAndOrderedSort() throws Exception {

    int pn = 1;/*from  w ww  .  j a  v  a2s .  co  m*/
    int pageSize = 10;
    request.setParameter("page.pn", String.valueOf(pn));
    request.setParameter("page.size", String.valueOf(pageSize));
    request.setParameter("sort1.baseInfo.realname", "asc");
    request.setParameter("sort2.id", "desc");

    MethodParameter parameter = new MethodParameter(pageableAndSort, 0);
    NativeWebRequest webRequest = new ServletWebRequest(request);
    Pageable pageable = (Pageable) new PageableMethodArgumentResolver().resolveArgument(parameter, null,
            webRequest, null);

    //-10
    assertEquals(pn - 1, pageable.getPageNumber());
    assertEquals(pageSize, pageable.getPageSize());
    Sort expectedSort = new Sort(Sort.Direction.ASC, "baseInfo.realname")
            .and(new Sort(Sort.Direction.DESC, "id"));
    assertEquals(expectedSort, pageable.getSort());
}