return new RecoverableDataAccessException(buildMessage(task, sql, ex), ex);
@Override public int getListSize(Object parent, ListParams params) throws DataAccessException { try { return listFilteredAndOrdered(parent, params).size(); } catch (Exception e) { throw new RecoverableDataAccessException(e.getMessage(), e); } }
@Override public Collection<?> list(Object parent, ListParams params) throws DataAccessException { try { List<?> items = listFilteredAndOrdered(parent, params); if (params.getPageSize() > 0) { int end = params.getOffset() + params.getPageSize(); if (end > items.size()) { end = items.size(); } return items.subList(params.getOffset(), end); } return items; } catch (Exception e) { throw new RecoverableDataAccessException(e.getMessage(), e); } }
protected List<?> listFilteredAndOrdered(Object parent, ListParams params) throws DataAccessException { try { Collection<?> items = listInternal(parent); List<Object> list = Generics.newArrayList(items.size()); for (Object item : items) { if (filterMatches(item, params) && searchMatches(item, params)) { list.add(item); } } if (params.getOrder() != null && params.getOrder().size() > 0) { Order order = params.getOrder().get(0); PropertyComparator.sort(list, order); } return list; } catch (Exception e) { throw new RecoverableDataAccessException(e.getMessage(), e); } }
return new RecoverableDataAccessException(msg, cause);
return new RecoverableDataAccessException(buildMessage(task, sql, ex), ex);
return new RecoverableDataAccessException(buildMessage(task, sql, ex), ex);