Class StandardDataQueryTransformerServiceImpl
java.lang.Object
com.flowable.indexing.query.builder.standard.StandardDataQueryTransformerServiceImpl
- All Implemented Interfaces:
StandardDataQueryTransformerService
public class StandardDataQueryTransformerServiceImpl
extends Object
implements StandardDataQueryTransformerService
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final intprotected Stringprotected StandardDataQueryInputValuesTransformerprotected tools.jackson.databind.ObjectMapperprotected StandardDataQuerySafeQueryTransformer -
Constructor Summary
ConstructorsConstructorDescriptionStandardDataQueryTransformerServiceImpl(StandardDataQueryInputValuesTransformer inputValuesTransformer, StandardDataQuerySafeQueryTransformer standardDataQuerySafeQueryTransformer, tools.jackson.databind.ObjectMapper objectMapper) -
Method Summary
Modifier and TypeMethodDescriptionprotected StandardDataQueryBuildercreateQueryBuilder(QueryDefinitionModel queryDefinitionModel, Map<String, tools.jackson.databind.JsonNode> queryPayload) protected StringgetGroupByOptionValue(Map<String, tools.jackson.databind.JsonNode> queryPayload) protected StringmapSortableField(QueryDefinitionModel queryDefinitionModel, String fieldName) protected voidprocessFilter(Map<String, tools.jackson.databind.JsonNode> queryPayload, StandardDataQueryBuilder queryBuilder, StandardDataQueryConfiguration.Filter filter, StandardDataQueryBuilder.FilterList filterList) protected voidprotected voidprotected voidprotected voidprotected voidrequirePercent(StandardDataQueryConfiguration.Aggregation aggregation) protected voidprotected voidtransformAdditionalBooleanFieldFilter(StandardDataQueryBuilder.FilterList root, tools.jackson.databind.JsonNode member, String field, String operator) protected voidtransformAdditionalFieldFilter(StandardDataQueryBuilder.FilterList root, tools.jackson.databind.JsonNode member) protected voidtransformAdditionalFilters(StandardDataQueryBuilder.FilterList root, tools.jackson.databind.JsonNode members) protected voidtransformAdditionalFiltersDefinition(Map<String, tools.jackson.databind.JsonNode> queryPayload, StandardDataQueryBuilder queryBuilder) Reads the optionaladditionalFiltersblock and ANDs it on top of the declared query.protected voidtransformAdditionalNumericFieldFilter(StandardDataQueryBuilder.FilterList root, tools.jackson.databind.JsonNode member, String field, String operator) protected voidtransformAdditionalStringFieldFilter(StandardDataQueryBuilder.FilterList root, tools.jackson.databind.JsonNode member, String field, String operator) protected voidtransformAdditionalVariableFilter(StandardDataQueryBuilder.FilterList root, tools.jackson.databind.JsonNode member) protected voidtransformAggregations(StandardDataQueryBuilder queryBuilder, Map<String, tools.jackson.databind.JsonNode> queryPayload, StandardDataQueryConfiguration standardDataQueryConfiguration) protected voidtransformPagingParameters(Map<String, tools.jackson.databind.JsonNode> queryPayload, StandardDataQueryBuilder queryBuilder, StandardDataQueryConfiguration standardDataQueryConfiguration) protected voidtransformProcessFilterDefinition(Map<String, tools.jackson.databind.JsonNode> queryPayload, StandardDataQueryBuilder queryBuilder, StandardDataQueryConfiguration standardDataQueryConfiguration) protected voidtransformResponseDefinition(StandardDataQueryBuilder queryBuilder, StandardDataQueryConfiguration standardDataQueryConfiguration) protected voidtransformSortingParameters(QueryDefinitionModel queryDefinitionModel, Map<String, tools.jackson.databind.JsonNode> queryPayload, StandardDataQueryBuilder queryBuilder, StandardDataQueryConfiguration standardDataQueryConfiguration) tools.jackson.databind.JsonNodetransformToElasticsearchQuery(QueryDefinitionModel queryDefinitionModel, Map<String, tools.jackson.databind.JsonNode> queryPayload) Transforms the givenQueryDefinitionModelto an Elasticsearch JSON query, using the provided payload.transformToElasticsearchQueryBuilder(QueryDefinitionModel queryDefinitionModel, Map<String, tools.jackson.databind.JsonNode> queryPayload) Similar toStandardDataQueryTransformerService.transformToElasticsearchQuery(QueryDefinitionModel, Map), but doesn't yet build the JSON for the query.protected booleantransformVariableValueFilter(StandardDataQueryBuilder.FilterList filterList, tools.jackson.databind.JsonNode variableValueFilter) protected booleantransformVariableValueFilterOperation(StandardDataQueryBuilder.Filter filter, tools.jackson.databind.JsonNode filterEntry) protected StringvalidateOrder(String order, String aggregationName, boolean hasSubAggregation) Verifies that anordervalue is one ofcountAsc,countDesc,valueAscorvalueDesc.protected StandardDataQueryConfigurationvalidateQueryDefinitionModel(QueryDefinitionModel queryDefinitionModel)
-
Field Details
-
GROUP_BY_DATE_FIELD_OPTIONS
-
GROUP_BY_DATE_DEFAULT_VALUE
-
DEFAULT_DISTRIBUTION_SIZE
protected static final int DEFAULT_DISTRIBUTION_SIZE- See Also:
-
inputValuesTransformer
-
standardDataQuerySafeQueryTransformer
-
objectMapper
protected tools.jackson.databind.ObjectMapper objectMapper
-
-
Constructor Details
-
StandardDataQueryTransformerServiceImpl
public StandardDataQueryTransformerServiceImpl(StandardDataQueryInputValuesTransformer inputValuesTransformer, StandardDataQuerySafeQueryTransformer standardDataQuerySafeQueryTransformer, tools.jackson.databind.ObjectMapper objectMapper)
-
-
Method Details
-
transformToElasticsearchQueryBuilder
public StandardDataQueryBuilder transformToElasticsearchQueryBuilder(QueryDefinitionModel queryDefinitionModel, Map<String, tools.jackson.databind.JsonNode> queryPayload) Description copied from interface:StandardDataQueryTransformerServiceSimilar toStandardDataQueryTransformerService.transformToElasticsearchQuery(QueryDefinitionModel, Map), but doesn't yet build the JSON for the query. This is useful if changes need to be done to the returnedStandardDataQueryBuilder. For example, when exporting all data of a query, this method is used to reuse the filter part, but change the paging until all data is returned.- Specified by:
transformToElasticsearchQueryBuilderin interfaceStandardDataQueryTransformerService
-
transformToElasticsearchQuery
public tools.jackson.databind.JsonNode transformToElasticsearchQuery(QueryDefinitionModel queryDefinitionModel, Map<String, tools.jackson.databind.JsonNode> queryPayload) Description copied from interface:StandardDataQueryTransformerServiceTransforms the givenQueryDefinitionModelto an Elasticsearch JSON query, using the provided payload.- Specified by:
transformToElasticsearchQueryin interfaceStandardDataQueryTransformerService
-
createQueryBuilder
protected StandardDataQueryBuilder createQueryBuilder(QueryDefinitionModel queryDefinitionModel, Map<String, tools.jackson.databind.JsonNode> queryPayload) -
validateQueryDefinitionModel
protected StandardDataQueryConfiguration validateQueryDefinitionModel(QueryDefinitionModel queryDefinitionModel) -
transformPagingParameters
protected void transformPagingParameters(Map<String, tools.jackson.databind.JsonNode> queryPayload, StandardDataQueryBuilder queryBuilder, StandardDataQueryConfiguration standardDataQueryConfiguration) -
transformSortingParameters
protected void transformSortingParameters(QueryDefinitionModel queryDefinitionModel, Map<String, tools.jackson.databind.JsonNode> queryPayload, StandardDataQueryBuilder queryBuilder, StandardDataQueryConfiguration standardDataQueryConfiguration) -
mapSortableField
-
transformProcessFilterDefinition
protected void transformProcessFilterDefinition(Map<String, tools.jackson.databind.JsonNode> queryPayload, StandardDataQueryBuilder queryBuilder, StandardDataQueryConfiguration standardDataQueryConfiguration) -
processFilter
protected void processFilter(Map<String, tools.jackson.databind.JsonNode> queryPayload, StandardDataQueryBuilder queryBuilder, StandardDataQueryConfiguration.Filter filter, StandardDataQueryBuilder.FilterList filterList) -
transformVariableValueFilter
protected boolean transformVariableValueFilter(StandardDataQueryBuilder.FilterList filterList, tools.jackson.databind.JsonNode variableValueFilter) -
transformVariableValueFilterOperation
protected boolean transformVariableValueFilterOperation(StandardDataQueryBuilder.Filter filter, tools.jackson.databind.JsonNode filterEntry) -
transformAdditionalFiltersDefinition
protected void transformAdditionalFiltersDefinition(Map<String, tools.jackson.databind.JsonNode> queryPayload, StandardDataQueryBuilder queryBuilder) Reads the optionaladditionalFiltersblock and ANDs it on top of the declared query. Meant to be used for e.g., datatable column filtering where the column matches an exposed document field. The frontend is the sole producer, so an unrecognizedkind/fieldType/operatormeans the two have drifted: throw rather than silently return a wider result set than the filter asked for. A blank field or value carries nothing to filter on and is skipped. -
transformAdditionalFilters
protected void transformAdditionalFilters(StandardDataQueryBuilder.FilterList root, tools.jackson.databind.JsonNode members) -
transformAdditionalVariableFilter
protected void transformAdditionalVariableFilter(StandardDataQueryBuilder.FilterList root, tools.jackson.databind.JsonNode member) -
transformAdditionalFieldFilter
protected void transformAdditionalFieldFilter(StandardDataQueryBuilder.FilterList root, tools.jackson.databind.JsonNode member) -
transformAdditionalStringFieldFilter
protected void transformAdditionalStringFieldFilter(StandardDataQueryBuilder.FilterList root, tools.jackson.databind.JsonNode member, String field, String operator) -
transformAdditionalNumericFieldFilter
protected void transformAdditionalNumericFieldFilter(StandardDataQueryBuilder.FilterList root, tools.jackson.databind.JsonNode member, String field, String operator) -
transformAdditionalBooleanFieldFilter
protected void transformAdditionalBooleanFieldFilter(StandardDataQueryBuilder.FilterList root, tools.jackson.databind.JsonNode member, String field, String operator) -
transformResponseDefinition
protected void transformResponseDefinition(StandardDataQueryBuilder queryBuilder, StandardDataQueryConfiguration standardDataQueryConfiguration) -
transformAggregations
protected void transformAggregations(StandardDataQueryBuilder queryBuilder, Map<String, tools.jackson.databind.JsonNode> queryPayload, StandardDataQueryConfiguration standardDataQueryConfiguration) -
requireFieldName
-
requireNestedPath
-
requireSubAggregationFieldName
protected void requireSubAggregationFieldName(StandardDataQueryConfiguration.Aggregation aggregation) -
validateOrder
Verifies that anordervalue is one ofcountAsc,countDesc,valueAscorvalueDesc. The converter normalises legacyasc/descinto the count-prefixed forms, so they should never reach this method. Returns the validated value (ornullfor the default).- Parameters:
hasSubAggregation- whenfalse, value-based orderings are rejected because there is no sub-agg to order by.
-
requireFilterField
-
requireFilterValue
-
requirePercent
-
getGroupByOptionValue
-