01: /*
02: * ComparatorFactory.java
03: *
04: * This file is part of SQL Workbench/J, http://www.sql-workbench.net
05: *
06: * Copyright 2002-2008, Thomas Kellerer
07: * No part of this code maybe reused without the permission of the author
08: *
09: * To contact the author please send an email to: support@sql-workbench.net
10: *
11: */
12: package workbench.storage.filter;
13:
14: /**
15: * @author support@sql-workbench.net
16: */
17: public class ComparatorFactory {
18: private ColumnComparator[] comparatorList;
19:
20: public ComparatorFactory() {
21: comparatorList = new ColumnComparator[] {
22: new ContainsComparator(), new StartsWithComparator(),
23: new NotStartsWithComparator(),
24: new ContainsNotComparator(),
25: new StringEqualsComparator(),
26: new StringNotEqualsComparator(),
27: new NumberEqualsComparator(),
28: new DateEqualsComparator(),
29: new NumberNotEqualsComparator(),
30: new LessThanComparator(), new LessOrEqualComparator(),
31: new GreaterThanComparator(),
32: new GreaterOrEqualComparator(), new IsNullComparator(),
33: new IsNotNullComparator(), new RegExComparator() };
34: }
35:
36: public ColumnComparator[] getAvailableComparators() {
37: return comparatorList;
38: }
39:
40: public ColumnComparator findEqualityComparatorFor(Class clz) {
41: for (int i = 0; i < comparatorList.length; i++) {
42: if (comparatorList[i].supportsType(clz)
43: && comparatorList[i].comparesEquality()) {
44: return comparatorList[i];
45: }
46: }
47: return null;
48: }
49:
50: public ColumnComparator findComparatorFor(Class clz) {
51: for (int i = 0; i < comparatorList.length; i++) {
52: if (comparatorList[i].supportsType(clz))
53: return comparatorList[i];
54: }
55: return null;
56: }
57: }
|