@Override public List<Object> getSqlFiltersParams(final Properties ctx) { final List<ISqlQueryFilter> filters = getSqlFilters(); if (filters == null || filters.isEmpty()) { return Collections.emptyList(); } final List<Object> params = new ArrayList<Object>(); for (final ISqlQueryFilter sqlFilter : filters) { final String sqlFilterWhereClause = sqlFilter.getSql(); if (!Check.isEmpty(sqlFilterWhereClause, true)) { params.addAll(sqlFilter.getSqlParams(ctx)); } } return params; }
/** * Append <code>sqlFiltersToAppend</code> to given: * * <ul> * <li><code>resultSqlWhereClause</code> string builder/buffer * <li>and <code>resultSqlFilters</code> list. * </ul> * * @param resultSqlWhereClause * @param resultSqlFilters * @param sqlFiltersToAppend */ private final void appendSqlWhereClause( final StringBuilder resultSqlWhereClause, final List<ISqlQueryFilter> resultSqlFilters, final List<ISqlQueryFilter> sqlFiltersToAppend) { // // If there are no SQL filters to append, return right away if (sqlFiltersToAppend == null || sqlFiltersToAppend.isEmpty()) { return; } // // Iterate SQL Filters to Append and // * update "resultSqlWhereClause" string buffer // * append the filter to resultSqlFilters for (final ISqlQueryFilter sqlFilterToAppend : sqlFiltersToAppend) { // Make sure our sqlFilter to append is not null // NOTE: we cannot skip it because maybe other logic was rellying on if "sqlFiltersToAppend" // is empty or null Check.assumeNotNull(sqlFiltersToAppend, "sqlFiltersToAppend not null"); final String sqlFilterWhereClause = sqlFilterToAppend.getSql(); // // Skip filters which have an empty SQL // Shall not happen but we cannot control ISqlQueryFilter implementations if (Check.isEmpty(sqlFilterWhereClause, true)) { continue; } // // Append the SQL where clause to given string buffer if (resultSqlWhereClause.length() > 0) { resultSqlWhereClause.append(and ? SQL_AND : SQL_OR); } resultSqlWhereClause.append("(").append(sqlFilterWhereClause).append(")"); // // Append the SQL Filter to given SQL Filters current result resultSqlFilters.add(sqlFilterToAppend); } }