1 package com.quantum.sql;
3 import java.util.ArrayList;
5 public class FilterSort {
6 private ArrayList filterList = new ArrayList();
7 private ArrayList sortList = new ArrayList();
8 private ArrayList ascDescList = new ArrayList();
9 public void addFilter(String column, String operator, String value, boolean isString) {
10 FilterRow row = new FilterRow();
12 row.operator = operator;
14 row.isString = isString;
17 public void clearFilters() {
20 public void addSort(String column, String ascDesc) {
21 int ind = sortList.indexOf(column);
24 ascDescList.add(ascDesc);
27 if (ind < ascDescList.size()) {
28 ascDescList.remove(ind);
30 ascDescList.add(ind, ascDesc);
32 public void removeSort(String column) {
33 int ind = sortList.indexOf(column);
36 ascDescList.remove(ind);
38 public String toString() {
39 StringBuffer text = new StringBuffer();
40 if (filterList.size() > 0) {
41 text.append(" WHERE "); //$NON-NLS-1$
42 for (int i = 0; i < filterList.size(); i++) {
43 FilterRow row = (FilterRow) filterList.get(i);
44 text.append(row.column);
45 text.append(" "); //$NON-NLS-1$
46 text.append(row.operator);
47 text.append(" "); //$NON-NLS-1$
49 text.append(escape(row.value));
51 text.append(row.value);
53 text.append(" "); //$NON-NLS-1$
54 if (i < filterList.size() - 1) {
55 text.append("AND "); //$NON-NLS-1$
59 if (sortList.size() > 0) {
60 text.append(" ORDER BY "); //$NON-NLS-1$
61 for (int i = 0; i < sortList.size(); i++) {
62 String value = (String) sortList.get(i);
65 text.append(ascDescList.get(i));
66 if (i < sortList.size() - 1) {
67 text.append(", "); //$NON-NLS-1$
71 return text.toString();
73 public static String escape(String original) {
74 return '\'' + original + '\'';
80 public String operator;
82 public boolean isString;