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