private void applyFilters(SelectQuery query) { if (this.filters != null && this.filters.length > 0) { ComboCondition comboCondition = new ComboCondition(ComboCondition.Op.AND); if (filters.length > 0) { for (int i = 0; i < filters.length; i++) { Filter filter = filters[i]; FilterType filterType = filter.getFilterType(); DbColumn filterColumn = new DbColumn(dbTable, filter.getField(), "", null, null); if (filterType.equals(FilterType.EQ)) { comboCondition.addCondition(BinaryCondition.equalTo(filterColumn, filter.getValue())); } else if (filterType.equals(FilterType.GT)) { comboCondition.addCondition( BinaryCondition.greaterThan(filterColumn, filter.getValue(), false)); } else if (filterType.equals(FilterType.LT)) { comboCondition.addCondition( BinaryCondition.lessThan(filterColumn, filter.getValue(), false)); } else if (filterType.equals(FilterType.GTE)) { comboCondition.addCondition( BinaryCondition.greaterThan(filterColumn, filter.getValue(), true)); } else if (filterType.equals(FilterType.LTE)) { comboCondition.addCondition( BinaryCondition.lessThan(filterColumn, filter.getValue(), true)); } else if (filterType.equals(FilterType.NEQ)) { comboCondition.addCondition( BinaryCondition.notEqualTo(filterColumn, filter.getValue())); } else if (filterType.equals(FilterType.IN)) { ComboCondition comboConditionOR = new ComboCondition(ComboCondition.Op.OR); String[] condicion = filter.getValue().toString().split(","); for (int z = 0; z < condicion.length; z++) { comboConditionOR.addCondition(BinaryCondition.equalTo(filterColumn, condicion[z])); } comboCondition.addCondition(comboConditionOR); } else { throw new UnsupportedOperationException( "Currently, the filter operation " + filterType + " is not supported"); } } } query.addCondition(comboCondition); } }