@SuppressWarnings("ConstantConditions") private static boolean evaluateExpression(SpelCriteria criteria, Object candidate) { try { return criteria.getExpression().getValue(criteria.getContext(), candidate, Boolean.class); } catch (SpelEvaluationException e) { criteria.getContext().setVariable("it", candidate); return criteria.getExpression().getValue(criteria.getContext()) == null ? false : criteria.getExpression().getValue(criteria.getContext(), Boolean.class); } } }
@Override public SpelCriteria resolve(KeyValueQuery<?> query) { if (query.getCriteria() == null) { return null; } if (query.getCriteria() instanceof SpelExpression) { return new SpelCriteria((SpelExpression) query.getCriteria()); } if (query.getCriteria() instanceof String) { return new SpelCriteria(parser.parseRaw((String) query.getCriteria())); } if (query.getCriteria() instanceof SpelCriteria) { return (SpelCriteria) query.getCriteria(); } throw new IllegalArgumentException("Cannot create SpelCriteria for " + query.getCriteria()); } }
private SpelExpression getSpelExpression(Object criteria) { if (criteria instanceof SpelExpression) { return (SpelExpression) criteria; } if (criteria instanceof SpelCriteria) { return getSpelExpression(((SpelCriteria) criteria).getExpression()); } throw new IllegalStateException(String.format("Cannot retrieve SpelExpression from %s", criteria)); }
@Override public SpelCriteria resolve(KeyValueQuery<?> query) { if (query.getCriteria() == null) { return null; } if (query.getCriteria() instanceof SpelExpression) { return new SpelCriteria((SpelExpression) query.getCriteria()); } if (query.getCriteria() instanceof String) { return new SpelCriteria(parser.parseRaw((String) query.getCriteria())); } if (query.getCriteria() instanceof SpelCriteria) { return (SpelCriteria) query.getCriteria(); } throw new IllegalArgumentException("Cannot create SpelCriteria for " + query.getCriteria()); } }
private SpelExpression getSpelExpression(Object criteria) { if (criteria instanceof SpelExpression) { return (SpelExpression) criteria; } if (criteria instanceof SpelCriteria) { return getSpelExpression(((SpelCriteria) criteria).getExpression()); } throw new IllegalStateException(String.format("Cannot retrieve SpelExpression from %s", criteria)); }
@SuppressWarnings("ConstantConditions") private static boolean evaluateExpression(SpelCriteria criteria, Object candidate) { try { return criteria.getExpression().getValue(criteria.getContext(), candidate, Boolean.class); } catch (SpelEvaluationException e) { criteria.getContext().setVariable("it", candidate); return criteria.getExpression().getValue(criteria.getContext()) == null ? false : criteria.getExpression().getValue(criteria.getContext(), Boolean.class); } } }
@Override public SpelCriteria resolve(KeyValueQuery<?> query) { if (query.getCriteria() == null) { return null; } if (query.getCriteria() instanceof SpelExpression) { return new SpelCriteria((SpelExpression) query.getCriteria()); } if (query.getCriteria() instanceof String) { return new SpelCriteria(parser.parseRaw((String) query.getCriteria())); } if (query.getCriteria() instanceof SpelCriteria) { return (SpelCriteria) query.getCriteria(); } throw new IllegalArgumentException("Cannot create SpelCriteria for " + query.getCriteria()); } }
private SpelExpression getSpelExpression(Object criteria) { if (criteria instanceof SpelExpression) { return (SpelExpression) criteria; } if (criteria instanceof SpelCriteria) { return getSpelExpression(((SpelCriteria) criteria).getExpression()); } throw new IllegalStateException(String.format("Cannot retrieve SpelExpression from %s", criteria)); }
@SuppressWarnings("ConstantConditions") private static boolean evaluateExpression(SpelCriteria criteria, Object candidate) { try { return criteria.getExpression().getValue(criteria.getContext(), candidate, Boolean.class); } catch (SpelEvaluationException e) { criteria.getContext().setVariable("it", candidate); return criteria.getExpression().getValue(criteria.getContext()) == null ? false : criteria.getExpression().getValue(criteria.getContext(), Boolean.class); } } }
@SuppressWarnings({ "rawtypes", "unchecked" }) protected KeyValueQuery<?> prepareQuery(KeyValueQuery<?> instance, Object[] parameters) { ParametersParameterAccessor accessor = new ParametersParameterAccessor(getQueryMethod().getParameters(), parameters); Object criteria = instance.getCriteria(); if (criteria instanceof SpelCriteria || criteria instanceof SpelExpression) { SpelExpression spelExpression = getSpelExpression(criteria); EvaluationContext context = this.evaluationContextProvider.getEvaluationContext(getQueryMethod().getParameters(), parameters); criteria = new SpelCriteria(spelExpression, context); } KeyValueQuery<?> query = new KeyValueQuery(criteria); Pageable pageable = accessor.getPageable(); Sort sort = accessor.getSort(); query.setOffset(pageable.toOptional().map(Pageable::getOffset).orElse(-1L)); if (pageable.isPaged()) { query.setRows(pageable.getPageSize()); } else if (instance.getRows() >= 0) { query.setRows(instance.getRows()); } query.setSort(sort.isUnsorted() ? instance.getSort() : sort); return query; }
@SuppressWarnings({ "rawtypes", "unchecked" }) protected KeyValueQuery<?> prepareQuery(KeyValueQuery<?> instance, Object[] parameters) { ParametersParameterAccessor accessor = new ParametersParameterAccessor(getQueryMethod().getParameters(), parameters); Object criteria = instance.getCriteria(); if (criteria instanceof SpelCriteria || criteria instanceof SpelExpression) { SpelExpression spelExpression = getSpelExpression(criteria); EvaluationContext context = this.evaluationContextProvider.getEvaluationContext(getQueryMethod().getParameters(), parameters); criteria = new SpelCriteria(spelExpression, context); } KeyValueQuery<?> query = new KeyValueQuery(criteria); Pageable pageable = accessor.getPageable(); Sort sort = accessor.getSort(); query.setOffset(pageable.toOptional().map(Pageable::getOffset).orElse(-1L)); if (pageable.isPaged()) { query.setRows(pageable.getPageSize()); } else if (instance.getRows() >= 0) { query.setRows(instance.getRows()); } query.setSort(sort.isUnsorted() ? instance.getSort() : sort); return query; }
@SuppressWarnings({ "rawtypes", "unchecked" }) protected KeyValueQuery<?> prepareQuery(KeyValueQuery<?> instance, Object[] parameters) { ParametersParameterAccessor accessor = new ParametersParameterAccessor(getQueryMethod().getParameters(), parameters); Object criteria = instance.getCriteria(); if (criteria instanceof SpelCriteria || criteria instanceof SpelExpression) { SpelExpression spelExpression = getSpelExpression(criteria); EvaluationContext context = this.evaluationContextProvider.getEvaluationContext(getQueryMethod().getParameters(), parameters); criteria = new SpelCriteria(spelExpression, context); } KeyValueQuery<?> query = new KeyValueQuery(criteria); Pageable pageable = accessor.getPageable(); Sort sort = accessor.getSort(); query.setOffset(pageable.toOptional().map(Pageable::getOffset).orElse(-1L)); if (pageable.isPaged()) { query.setRows(pageable.getPageSize()); } else if (instance.getRows() >= 0) { query.setRows(instance.getRows()); } query.setSort(sort.isUnsorted() ? instance.getSort() : sort); return query; }