01: /*
02: * ContainsComparator.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 ContainsComparator implements ColumnComparator {
18: public ContainsComparator() {
19: }
20:
21: public String getValueExpression(Object value) {
22: return (value == null ? "" : value.toString());
23: }
24:
25: public String getName() {
26: return "Contains";
27: }
28:
29: public String getOperator() {
30: return "contains";
31: }
32:
33: public boolean evaluate(Object reference, Object value,
34: boolean ignoreCase) {
35: if (reference == null && value == null)
36: return true;
37: if (reference == null || value == null)
38: return false;
39: try {
40: String v = value.toString();
41: String ref = reference.toString();
42: if (ignoreCase)
43: return (v.toLowerCase().indexOf(ref.toLowerCase()) > -1);
44: else
45: return (v.indexOf(ref) > -1);
46: } catch (Exception e) {
47: return false;
48: }
49: }
50:
51: public boolean supportsType(Class valueClass) {
52: return (CharSequence.class.isAssignableFrom(valueClass));
53: }
54:
55: public boolean supportsIgnoreCase() {
56: return true;
57: }
58:
59: public boolean needsValue() {
60: return true;
61: }
62:
63: public boolean validateInput(Object value) {
64: return true;
65: }
66:
67: public boolean comparesEquality() {
68: return false;
69: }
70:
71: public boolean equals(Object other) {
72: return (other instanceof ContainsComparator);
73: }
74:
75: }
|