public static FilterOption rightParenthesis() { return new FilterOption(FilterOperationType.R_PARENTHESIS); }
private String getInValues(final FilterOption filterOption) { final StringBuilder stb = new StringBuilder(); for (final Object element : filterOption.getIn()) { stb.append(element).append(","); } final String inValues = stb.toString(); return inValues.substring(0, inValues.length() - 1); }
private <T extends PersistentObject> String getQueryName(final String prefix, final String suffix, final Class<T> entityClass, final List<FilterOption> filters) { final SortedSet<String> query = new TreeSet<String>(); for (final FilterOption filter : filters) { // if filter is just an operator, PersistentClass is not defined: if (filter.getPersistentClass() != null) { query.add(filter.getPersistentClass().getSimpleName()); } } final String searchOnClassName = entityClass.getSimpleName(); query.remove(searchOnClassName); final StringBuilder builder = new StringBuilder(prefix); builder.append(searchOnClassName); if (!query.isEmpty()) { builder.append("with"); } for (final String entity : query) { builder.append(entity); } if (suffix != null) { builder.append(suffix); } return builder.toString(); }
private List<SCustomUserInfoValue> searchCorrespondingValues(final long userId, final List<SCustomUserInfoDefinition> definitions) throws SBonitaReadException { return service.searchCustomUserInfoValue(new QueryOptions( 0, definitions.size(), Collections.<OrderByOption> emptyList(), Arrays.asList( new FilterOption(SCustomUserInfoValue.class, "userId", userId), new FilterOption(SCustomUserInfoValue.class, "definitionId") .in(getIds(definitions))), null)); }
private StringBuilder appendFilterClause(final StringBuilder clause, final FilterOption filterOption) { final FilterOperationType type = filterOption.getFilterOperationType(); StringBuilder completeField = null; if (filterOption.getPersistentClass() != null) { completeField = new StringBuilder(classAliasMappings.get(filterOption.getPersistentClass().getName())).append('.').append( filterOption.getFieldName()); Object fieldValue = filterOption.getValue(); fieldValue = processValue(fieldValue); switch (type) { break; case BETWEEN: final Object from = filterOption.getFrom() instanceof String ? "'" + escapeString((String) filterOption.getFrom()) + "'" : filterOption.getFrom(); final Object to = filterOption.getTo() instanceof String ? "'" + escapeString((String) filterOption.getTo()) + "'" : filterOption.getTo(); clause.append("(").append(from).append(" <= ").append(completeField); clause.append(" AND ").append(completeField).append(" <= ").append(to).append(")"); break; case LIKE: clause.append(completeField).append(" LIKE '%").append(escapeTerm((String) filterOption.getValue())).append("%'"); break; case L_PARENTHESIS:
void appendFilters(List<FilterOption> filters, SearchFields multipleFilter, boolean enableWordSearch) { final Set<String> specificFilters = new HashSet<>(filters.size()); if (!filters.isEmpty()) { FilterOption previousFilter = null; if (!this.stringQueryBuilder.toString().contains("WHERE")) { stringQueryBuilder.append(" WHERE ("); } else { stringQueryBuilder.append(" AND ("); } for (final FilterOption filterOption : filters) { if (previousFilter != null) { final FilterOperationType prevOp = previousFilter.getFilterOperationType(); final FilterOperationType currOp = filterOption.getFilterOperationType(); // Auto add AND if previous operator was normal op or ')' and that current op is normal op or '(' : if ((isNormalOperator(prevOp) || prevOp == R_PARENTHESIS) && (isNormalOperator(currOp) || currOp == L_PARENTHESIS)) { stringQueryBuilder.append(" AND "); } } final StringBuilder aliasBuilder = appendFilterClause(stringQueryBuilder, filterOption); if (aliasBuilder != null) { specificFilters.add(aliasBuilder.toString()); } previousFilter = filterOption; } stringQueryBuilder.append(")"); } if (multipleFilter != null && multipleFilter.getTerms() != null && !multipleFilter.getTerms().isEmpty()) { handleMultipleFilters(stringQueryBuilder, multipleFilter, specificFilters, enableWordSearch); } }
private List<SCustomUserInfoValue> searchCorrespondingValues(final long userId, final List<SCustomUserInfoDefinition> definitions) throws SBonitaReadException { return service.searchCustomUserInfoValue(new QueryOptions( 0, definitions.size(), Collections.<OrderByOption> emptyList(), Arrays.asList( new FilterOption(SCustomUserInfoValue.class, "userId", userId), new FilterOption(SCustomUserInfoValue.class, "definitionId") .in(getIds(definitions))), null)); }
private StringBuilder appendFilterClause(final StringBuilder clause, final FilterOption filterOption) { final FilterOperationType type = filterOption.getFilterOperationType(); StringBuilder completeField = null; if (filterOption.getPersistentClass() != null) { completeField = new StringBuilder(classAliasMappings.get(filterOption.getPersistentClass().getName())).append('.').append( filterOption.getFieldName()); Object fieldValue = filterOption.getValue(); fieldValue = processValue(fieldValue); switch (type) { break; case BETWEEN: final Object from = filterOption.getFrom() instanceof String ? "'" + escapeString((String) filterOption.getFrom()) + "'" : filterOption.getFrom(); final Object to = filterOption.getTo() instanceof String ? "'" + escapeString((String) filterOption.getTo()) + "'" : filterOption.getTo(); clause.append("(").append(from).append(" <= ").append(completeField); clause.append(" AND ").append(completeField).append(" <= ").append(to).append(")"); break; case LIKE: clause.append(completeField).append(" LIKE '%").append(escapeTerm((String) filterOption.getValue())).append("%'"); break; case L_PARENTHESIS:
void appendFilters(List<FilterOption> filters, SearchFields multipleFilter, boolean enableWordSearch) { final Set<String> specificFilters = new HashSet<>(filters.size()); if (!filters.isEmpty()) { FilterOption previousFilter = null; if (!this.stringQueryBuilder.toString().contains("WHERE")) { stringQueryBuilder.append(" WHERE ("); } else { stringQueryBuilder.append(" AND ("); } for (final FilterOption filterOption : filters) { if (previousFilter != null) { final FilterOperationType prevOp = previousFilter.getFilterOperationType(); final FilterOperationType currOp = filterOption.getFilterOperationType(); // Auto add AND if previous operator was normal op or ')' and that current op is normal op or '(' : if ((isNormalOperator(prevOp) || prevOp == R_PARENTHESIS) && (isNormalOperator(currOp) || currOp == L_PARENTHESIS)) { stringQueryBuilder.append(" AND "); } } final StringBuilder aliasBuilder = appendFilterClause(stringQueryBuilder, filterOption); if (aliasBuilder != null) { specificFilters.add(aliasBuilder.toString()); } previousFilter = filterOption; } stringQueryBuilder.append(")"); } if (multipleFilter != null && multipleFilter.getTerms() != null && !multipleFilter.getTerms().isEmpty()) { handleMultipleFilters(stringQueryBuilder, multipleFilter, specificFilters, enableWordSearch); } }
public static FilterOption or() { return new FilterOption(FilterOperationType.OR); }
public QueryOptions buildQueryOptions() { final SApplicationBuilderFactory factory = BuilderFactory.get(SApplicationBuilderFactory.class); final List<OrderByOption> orderByOptions = Collections.singletonList(new OrderByOption(SApplication.class, factory.getIdKey(), OrderByType.ASC)); final FilterOption filterOption = new FilterOption(SApplication.class, factory.getIdKey()); filterOption.in((Object[]) applicationIds); final List<FilterOption> filters = Collections.singletonList(filterOption); return new QueryOptions(0, applicationIds.length, orderByOptions, filters, null); }
private String getInValues(final FilterOption filterOption) { final StringBuilder stb = new StringBuilder(); for (final Object element : filterOption.getIn()) { stb.append(element).append(","); } final String inValues = stb.toString(); return inValues.substring(0, inValues.length() - 1); }
private <T extends PersistentObject> String getQueryName(final String prefix, final String suffix, final Class<T> entityClass, final List<FilterOption> filters) { final SortedSet<String> query = new TreeSet<String>(); for (final FilterOption filter : filters) { // if filter is just an operator, PersistentClass is not defined: if (filter.getPersistentClass() != null) { query.add(filter.getPersistentClass().getSimpleName()); } } final String searchOnClassName = entityClass.getSimpleName(); query.remove(searchOnClassName); final StringBuilder builder = new StringBuilder(prefix); builder.append(searchOnClassName); if (!query.isEmpty()) { builder.append("with"); } for (final String entity : query) { builder.append(entity); } if (suffix != null) { builder.append(suffix); } return builder.toString(); }
public static FilterOption and() { return new FilterOption(FilterOperationType.AND); }
public QueryOptions buildQueryOptions() { final SApplicationBuilderFactory factory = BuilderFactory.get(SApplicationBuilderFactory.class); final List<OrderByOption> orderByOptions = Collections.singletonList(new OrderByOption(SApplication.class, factory.getIdKey(), OrderByType.ASC)); final FilterOption filterOption = new FilterOption(SApplication.class, factory.getIdKey()); filterOption.in((Object[]) applicationIds); final List<FilterOption> filters = Collections.singletonList(filterOption); return new QueryOptions(0, applicationIds.length, orderByOptions, filters, null); }
public static FilterOption or() { return new FilterOption(FilterOperationType.OR); }
public static FilterOption and() { return new FilterOption(FilterOperationType.AND); }
public static FilterOption leftParenthesis() { return new FilterOption(FilterOperationType.L_PARENTHESIS); }
public static FilterOption rightParenthesis() { return new FilterOption(FilterOperationType.R_PARENTHESIS); }
public static FilterOption leftParenthesis() { return new FilterOption(FilterOperationType.L_PARENTHESIS); }