1 package org.apache.torque.util;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 /***
20 * A typesafe enum of SQL string fragments. Used by Criteria and SqlExpression
21 * to build queries. Criteria also makes most of the constants available
22 * in order to specify a criterion.
23 *
24 * @author <a href="mailto:jmcnally@collab.net"></a>
25 * @author <a href="mailto:fischer@seitenbau.de">Thomas Fischer</a>
26 * @version $Id: SqlEnum.java 239639 2005-08-24 12:39:47Z henning $
27 * @since 3.0
28 */
29 public class SqlEnum implements java.io.Serializable
30 {
31 private final String s;
32
33 private SqlEnum(String s)
34 {
35 this.s = s;
36 }
37
38 public final String toString()
39 {
40 return s;
41 }
42
43 public static final SqlEnum EQUAL =
44 new SqlEnum("=");
45 public static final SqlEnum NOT_EQUAL =
46 new SqlEnum("<>");
47 public static final SqlEnum ALT_NOT_EQUAL =
48 new SqlEnum("!=");
49 public static final SqlEnum GREATER_THAN =
50 new SqlEnum(">");
51 public static final SqlEnum LESS_THAN =
52 new SqlEnum("<");
53 public static final SqlEnum GREATER_EQUAL =
54 new SqlEnum(">=");
55 public static final SqlEnum LESS_EQUAL =
56 new SqlEnum("<=");
57 public static final SqlEnum LIKE =
58 new SqlEnum(" LIKE ");
59 public static final SqlEnum NOT_LIKE =
60 new SqlEnum(" NOT LIKE ");
61 public static final SqlEnum ILIKE =
62 new SqlEnum(" ILIKE ");
63 public static final SqlEnum NOT_ILIKE =
64 new SqlEnum(" NOT ILIKE ");
65 public static final SqlEnum IN =
66 new SqlEnum(" IN ");
67 public static final SqlEnum NOT_IN =
68 new SqlEnum(" NOT IN ");
69 public static final SqlEnum CUSTOM =
70 new SqlEnum("CUSTOM");
71 public static final SqlEnum JOIN =
72 new SqlEnum("JOIN");
73 public static final SqlEnum DISTINCT =
74 new SqlEnum("DISTINCT ");
75 public static final SqlEnum ALL =
76 new SqlEnum("ALL ");
77 public static final SqlEnum ASC =
78 new SqlEnum("ASC");
79 public static final SqlEnum DESC =
80 new SqlEnum("DESC");
81 public static final SqlEnum ISNULL =
82 new SqlEnum(" IS NULL ");
83 public static final SqlEnum ISNOTNULL =
84 new SqlEnum(" IS NOT NULL ");
85 public static final SqlEnum CURRENT_DATE =
86 new SqlEnum("CURRENT_DATE");
87 public static final SqlEnum CURRENT_TIME =
88 new SqlEnum("CURRENT_TIME");
89 public static final SqlEnum LEFT_JOIN =
90 new SqlEnum(" LEFT JOIN ");
91 public static final SqlEnum RIGHT_JOIN =
92 new SqlEnum(" RIGHT JOIN ");
93 public static final SqlEnum INNER_JOIN =
94 new SqlEnum(" INNER JOIN ");
95 public static final SqlEnum ON =
96 new SqlEnum(" ON ");
97 public static final SqlEnum AS =
98 new SqlEnum(" AS ");
99
100 /***
101 * returns whether o is the same SqlEnum as this object.
102 * Two SqlEnums are considered equal if they contain the same String.
103 * @param o the object to compare the SqlEnum with.
104 */
105 public boolean equals(Object o)
106 {
107 if (o == null)
108 {
109 return false;
110 }
111
112 if (! (o instanceof SqlEnum))
113 {
114 return false;
115 }
116
117 SqlEnum otherEnum = (SqlEnum) o;
118
119
120
121
122
123 return (otherEnum.s == null)
124 ? (s == null)
125 : otherEnum.s.equals(s);
126 }
127
128 /***
129 * returns a hashcode for this object which is consistent with equals()
130 */
131 public int hashCode()
132 {
133 return (s == null)
134 ? 0
135 : s.hashCode();
136 }
137 }