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)
|
||||
public Slice<Target> findTargetsAll(@NotNull final TargetFilterQuery targetFilterQuery,
|
||||
@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)
|
||||
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(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<>();
|
||||
specList.add(spec);
|
||||
|
||||
@@ -1057,7 +1057,7 @@ public class TargetManagement {
|
||||
*/
|
||||
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_TARGET)
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -1070,7 +1070,7 @@ public class TargetManagement {
|
||||
*/
|
||||
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_TARGET)
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ import java.util.stream.Collectors;
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.criteria.CriteriaBuilder;
|
||||
import javax.persistence.criteria.CriteriaQuery;
|
||||
import javax.persistence.criteria.Expression;
|
||||
import javax.persistence.criteria.MapJoin;
|
||||
import javax.persistence.criteria.Path;
|
||||
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,
|
||||
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());
|
||||
}
|
||||
|
||||
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) {
|
||||
if (!enumField.isMap()) {
|
||||
return null;
|
||||
@@ -515,10 +517,11 @@ public final class RSQLUtility {
|
||||
final String[] graph = node.getSelector().split("\\" + FieldNameProvider.SUB_ATTRIBUTE_SEPERATOR);
|
||||
final String keyValue = graph[graph.length - 1];
|
||||
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) {
|
||||
|
||||
@@ -348,9 +348,8 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button
|
||||
}
|
||||
}
|
||||
|
||||
private void onQueryChange(final String text) {
|
||||
if (!Strings.isNullOrEmpty(text)) {
|
||||
final String input = text.toLowerCase();
|
||||
private void onQueryChange(final String input) {
|
||||
if (!Strings.isNullOrEmpty(input)) {
|
||||
final ValidationResult validationResult = FilterQueryValidation.getExpectedTokens(input);
|
||||
if (!validationResult.getIsValidationFailed()) {
|
||||
filterManagementUIState.setFilterQueryValue(input);
|
||||
@@ -369,7 +368,7 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button
|
||||
filterManagementUIState.setFilterQueryValue(null);
|
||||
filterManagementUIState.setIsFilterByInvalidFilterQuery(Boolean.TRUE);
|
||||
}
|
||||
queryTextField.setValue(text);
|
||||
queryTextField.setValue(input);
|
||||
}
|
||||
|
||||
private void enableDisableSaveButton(final boolean validationFailed, final String query) {
|
||||
|
||||
@@ -111,7 +111,7 @@ public class CreateOrUpdateFilterTable extends Table {
|
||||
filterManagementUIState.setFilterQueryValue(null);
|
||||
} else {
|
||||
filterManagementUIState.getTfQuery().ifPresent(
|
||||
value -> filterManagementUIState.setFilterQueryValue(value.getQuery().toLowerCase()));
|
||||
value -> filterManagementUIState.setFilterQueryValue(value.getQuery()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user