001: package org.apache.torque.util;
002:
003: /*
004: * Licensed to the Apache Software Foundation (ASF) under one
005: * or more contributor license agreements. See the NOTICE file
006: * distributed with this work for additional information
007: * regarding copyright ownership. The ASF licenses this file
008: * to you under the Apache License, Version 2.0 (the
009: * "License"); you may not use this file except in compliance
010: * with the License. You may obtain a copy of the License at
011: *
012: * http://www.apache.org/licenses/LICENSE-2.0
013: *
014: * Unless required by applicable law or agreed to in writing,
015: * software distributed under the License is distributed on an
016: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017: * KIND, either express or implied. See the License for the
018: * specific language governing permissions and limitations
019: * under the License.
020: */
021:
022: /**
023: * A typesafe enum of SQL string fragments. Used by Criteria and SqlExpression
024: * to build queries. Criteria also makes most of the constants available
025: * in order to specify a criterion.
026: *
027: * @author <a href="mailto:jmcnally@collab.net"></a>
028: * @author <a href="mailto:fischer@seitenbau.de">Thomas Fischer</a>
029: * @version $Id: SqlEnum.java 473821 2006-11-11 22:37:25Z tv $
030: * @since 3.0
031: */
032: public class SqlEnum implements java.io.Serializable {
033: /**
034: * Serial version
035: */
036: private static final long serialVersionUID = 5963149836513364800L;
037:
038: private final String s;
039:
040: private SqlEnum(String s) {
041: this .s = s;
042: }
043:
044: public final String toString() {
045: return s;
046: }
047:
048: public static final SqlEnum EQUAL = new SqlEnum("=");
049: public static final SqlEnum NOT_EQUAL = new SqlEnum("<>");
050: public static final SqlEnum ALT_NOT_EQUAL = new SqlEnum("!=");
051: public static final SqlEnum GREATER_THAN = new SqlEnum(">");
052: public static final SqlEnum LESS_THAN = new SqlEnum("<");
053: public static final SqlEnum GREATER_EQUAL = new SqlEnum(">=");
054: public static final SqlEnum LESS_EQUAL = new SqlEnum("<=");
055: public static final SqlEnum LIKE = new SqlEnum(" LIKE ");
056: public static final SqlEnum NOT_LIKE = new SqlEnum(" NOT LIKE ");
057: public static final SqlEnum ILIKE = new SqlEnum(" ILIKE ");
058: public static final SqlEnum NOT_ILIKE = new SqlEnum(" NOT ILIKE ");
059: public static final SqlEnum IN = new SqlEnum(" IN ");
060: public static final SqlEnum NOT_IN = new SqlEnum(" NOT IN ");
061: public static final SqlEnum CUSTOM = new SqlEnum("CUSTOM");
062: public static final SqlEnum JOIN = new SqlEnum("JOIN");
063: public static final SqlEnum DISTINCT = new SqlEnum("DISTINCT ");
064: public static final SqlEnum ALL = new SqlEnum("ALL ");
065: public static final SqlEnum ASC = new SqlEnum("ASC");
066: public static final SqlEnum DESC = new SqlEnum("DESC");
067: public static final SqlEnum ISNULL = new SqlEnum(" IS NULL ");
068: public static final SqlEnum ISNOTNULL = new SqlEnum(" IS NOT NULL ");
069: public static final SqlEnum CURRENT_DATE = new SqlEnum(
070: "CURRENT_DATE");
071: public static final SqlEnum CURRENT_TIME = new SqlEnum(
072: "CURRENT_TIME");
073: public static final SqlEnum LEFT_JOIN = new SqlEnum(" LEFT JOIN ");
074: public static final SqlEnum RIGHT_JOIN = new SqlEnum(" RIGHT JOIN ");
075: public static final SqlEnum INNER_JOIN = new SqlEnum(" INNER JOIN ");
076: public static final SqlEnum ON = new SqlEnum(" ON ");
077: public static final SqlEnum AS = new SqlEnum(" AS ");
078: public static final SqlEnum ESCAPE = new SqlEnum(" ESCAPE ");
079:
080: /**
081: * returns whether o is the same SqlEnum as this object.
082: * Two SqlEnums are considered equal if they contain the same String.
083: * @param o the object to compare the SqlEnum with.
084: */
085: public boolean equals(Object o) {
086: if (o == null) {
087: return false;
088: }
089:
090: if (!(o instanceof SqlEnum)) {
091: return false;
092: }
093:
094: SqlEnum otherEnum = (SqlEnum) o;
095:
096: // both null: true
097: // other null, this not null: false
098: // else compare
099: return (otherEnum.s == null) ? (s == null) : otherEnum.s
100: .equals(s);
101: }
102:
103: /**
104: * returns a hashcode for this object which is consistent with equals()
105: */
106: public int hashCode() {
107: return (s == null) ? 0 : s.hashCode();
108: }
109: }
|