RSQLUtility : convert query to lower case before parsing
Signed-off-by: asharani-murugesh <asharani.murugesh@in.bosch.com>
This commit is contained in:
@@ -205,7 +205,7 @@ public class TargetManagement {
|
|||||||
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_TARGET)
|
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_TARGET)
|
||||||
public Slice<Target> findTargetsAll(@NotNull final TargetFilterQuery targetFilterQuery,
|
public Slice<Target> findTargetsAll(@NotNull final TargetFilterQuery targetFilterQuery,
|
||||||
@NotNull final Pageable pageable) {
|
@NotNull final Pageable pageable) {
|
||||||
return findTargetsAll(RSQLUtility.parse(targetFilterQuery.getQuery().toLowerCase(), TargetFields.class), pageable);
|
return findTargetsAll(RSQLUtility.parse(targetFilterQuery.getQuery(), TargetFields.class), pageable);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -219,7 +219,7 @@ public class TargetManagement {
|
|||||||
*/
|
*/
|
||||||
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_TARGET)
|
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_TARGET)
|
||||||
public Slice<Target> findTargetsAll(@NotNull final String targetFilterQuery, @NotNull final Pageable pageable) {
|
public Slice<Target> findTargetsAll(@NotNull final String targetFilterQuery, @NotNull final Pageable pageable) {
|
||||||
return findTargetsAll(RSQLUtility.parse(targetFilterQuery.toLowerCase(), TargetFields.class), pageable);
|
return findTargetsAll(RSQLUtility.parse(targetFilterQuery, TargetFields.class), pageable);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -883,7 +883,7 @@ public class TargetManagement {
|
|||||||
targetRoot.get(Target_.controllerId), targetRoot.get(Target_.name),
|
targetRoot.get(Target_.controllerId), targetRoot.get(Target_.name),
|
||||||
targetRoot.get(pageRequest.getSort().iterator().next().getProperty()));
|
targetRoot.get(pageRequest.getSort().iterator().next().getProperty()));
|
||||||
|
|
||||||
final Specification<Target> spec = RSQLUtility.parse(targetFilterQuery.getQuery().toLowerCase(), TargetFields.class);
|
final Specification<Target> spec = RSQLUtility.parse(targetFilterQuery.getQuery(), TargetFields.class);
|
||||||
final List<Specification<Target>> specList = new ArrayList<>();
|
final List<Specification<Target>> specList = new ArrayList<>();
|
||||||
specList.add(spec);
|
specList.add(spec);
|
||||||
|
|
||||||
@@ -1057,7 +1057,7 @@ public class TargetManagement {
|
|||||||
*/
|
*/
|
||||||
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_TARGET)
|
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_TARGET)
|
||||||
public Long countTargetByTargetFilterQuery(@NotNull final TargetFilterQuery targetFilterQuery) {
|
public Long countTargetByTargetFilterQuery(@NotNull final TargetFilterQuery targetFilterQuery) {
|
||||||
final Specification<Target> specs = RSQLUtility.parse(targetFilterQuery.getQuery().toLowerCase(), TargetFields.class);
|
final Specification<Target> specs = RSQLUtility.parse(targetFilterQuery.getQuery(), TargetFields.class);
|
||||||
return targetRepository.count(specs);
|
return targetRepository.count(specs);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1070,7 +1070,7 @@ public class TargetManagement {
|
|||||||
*/
|
*/
|
||||||
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_TARGET)
|
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_TARGET)
|
||||||
public Long countTargetByTargetFilterQuery(@NotNull final String targetFilterQuery) {
|
public Long countTargetByTargetFilterQuery(@NotNull final String targetFilterQuery) {
|
||||||
final Specification<Target> specs = RSQLUtility.parse(targetFilterQuery.toLowerCase(), TargetFields.class);
|
final Specification<Target> specs = RSQLUtility.parse(targetFilterQuery, TargetFields.class);
|
||||||
return targetRepository.count(specs);
|
return targetRepository.count(specs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import java.util.stream.Collectors;
|
|||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
import javax.persistence.criteria.CriteriaBuilder;
|
import javax.persistence.criteria.CriteriaBuilder;
|
||||||
import javax.persistence.criteria.CriteriaQuery;
|
import javax.persistence.criteria.CriteriaQuery;
|
||||||
|
import javax.persistence.criteria.Expression;
|
||||||
import javax.persistence.criteria.MapJoin;
|
import javax.persistence.criteria.MapJoin;
|
||||||
import javax.persistence.criteria.Path;
|
import javax.persistence.criteria.Path;
|
||||||
import javax.persistence.criteria.Predicate;
|
import javax.persistence.criteria.Predicate;
|
||||||
@@ -101,7 +102,7 @@ public final class RSQLUtility {
|
|||||||
*/
|
*/
|
||||||
public static <A extends Enum<A> & FieldNameProvider, T> Specification<T> parse(final String rsql,
|
public static <A extends Enum<A> & FieldNameProvider, T> Specification<T> parse(final String rsql,
|
||||||
final Class<A> fieldNameProvider) {
|
final Class<A> fieldNameProvider) {
|
||||||
return new RSQLSpecification<>(rsql, fieldNameProvider);
|
return new RSQLSpecification<>(rsql.toLowerCase(), fieldNameProvider);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -507,7 +508,8 @@ public final class RSQLUtility {
|
|||||||
return fieldPath.get(enumField.getValueFieldName());
|
return fieldPath.get(enumField.getValueFieldName());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Predicate mapToMapPredicate(final ComparisonNode node, final Path<Object> fieldPath,
|
@SuppressWarnings("unchecked")
|
||||||
|
private Predicate mapToMapPredicate(final ComparisonNode node, final Path<Object> fieldPath,
|
||||||
final A enumField) {
|
final A enumField) {
|
||||||
if (!enumField.isMap()) {
|
if (!enumField.isMap()) {
|
||||||
return null;
|
return null;
|
||||||
@@ -515,10 +517,11 @@ public final class RSQLUtility {
|
|||||||
final String[] graph = node.getSelector().split("\\" + FieldNameProvider.SUB_ATTRIBUTE_SEPERATOR);
|
final String[] graph = node.getSelector().split("\\" + FieldNameProvider.SUB_ATTRIBUTE_SEPERATOR);
|
||||||
final String keyValue = graph[graph.length - 1];
|
final String keyValue = graph[graph.length - 1];
|
||||||
if (fieldPath instanceof MapJoin) {
|
if (fieldPath instanceof MapJoin) {
|
||||||
return cb.equal(((MapJoin<?, ?, ?>) fieldPath).key(), keyValue);
|
//Currently we support only string key .So below cast is safe.
|
||||||
|
return cb.equal(cb.upper((Expression<String>) (((MapJoin<?, ?, ?>) fieldPath).key())), keyValue.toUpperCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
return cb.equal(fieldPath.get(enumField.getKeyFieldName()), keyValue);
|
return cb.equal(cb.upper(fieldPath.get(enumField.getKeyFieldName())), keyValue.toUpperCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Predicate getEqualToPredicate(final Object transformedValue, final Path<Object> fieldPath) {
|
private Predicate getEqualToPredicate(final Object transformedValue, final Path<Object> fieldPath) {
|
||||||
|
|||||||
@@ -348,9 +348,8 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onQueryChange(final String text) {
|
private void onQueryChange(final String input) {
|
||||||
if (!Strings.isNullOrEmpty(text)) {
|
if (!Strings.isNullOrEmpty(input)) {
|
||||||
final String input = text.toLowerCase();
|
|
||||||
final ValidationResult validationResult = FilterQueryValidation.getExpectedTokens(input);
|
final ValidationResult validationResult = FilterQueryValidation.getExpectedTokens(input);
|
||||||
if (!validationResult.getIsValidationFailed()) {
|
if (!validationResult.getIsValidationFailed()) {
|
||||||
filterManagementUIState.setFilterQueryValue(input);
|
filterManagementUIState.setFilterQueryValue(input);
|
||||||
@@ -369,7 +368,7 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button
|
|||||||
filterManagementUIState.setFilterQueryValue(null);
|
filterManagementUIState.setFilterQueryValue(null);
|
||||||
filterManagementUIState.setIsFilterByInvalidFilterQuery(Boolean.TRUE);
|
filterManagementUIState.setIsFilterByInvalidFilterQuery(Boolean.TRUE);
|
||||||
}
|
}
|
||||||
queryTextField.setValue(text);
|
queryTextField.setValue(input);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void enableDisableSaveButton(final boolean validationFailed, final String query) {
|
private void enableDisableSaveButton(final boolean validationFailed, final String query) {
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ public class CreateOrUpdateFilterTable extends Table {
|
|||||||
filterManagementUIState.setFilterQueryValue(null);
|
filterManagementUIState.setFilterQueryValue(null);
|
||||||
} else {
|
} else {
|
||||||
filterManagementUIState.getTfQuery().ifPresent(
|
filterManagementUIState.getTfQuery().ifPresent(
|
||||||
value -> filterManagementUIState.setFilterQueryValue(value.getQuery().toLowerCase()));
|
value -> filterManagementUIState.setFilterQueryValue(value.getQuery()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user