svn commit: r1936826 - in db/torque/trunk/torque-runtime/src/main/java/org/apache/torque: criteria sql sql/whereclausebuilder
[email protected] Mon, 03 Aug 2026 13:40:52 -0000
| Newsgroups | gmane.comp.jakarta.turbine.torque.devel |
|---|---|
| Message-ID | <178576445230.1863416.7063867675188416607@svn03-he-fi> |
Author: tv
Date: Mon Aug 3 13:40:51 2026
New Revision: 1936826
Log:
Make SqlEnum a proper enum
Modified:
db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/criteria/SqlEnum.java
db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/sql/SqlBuilder.java
db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/sql/whereclausebuilder/EnumValueBuilder.java
Modified: db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/criteria/SqlEnum.java
==============================================================================
--- db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/criteria/SqlEnum.java Mon Aug 3 13:33:07 2026 (r1936825)
+++ db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/criteria/SqlEnum.java Mon Aug 3 13:40:51 2026 (r1936826)
@@ -29,179 +29,108 @@ package org.apache.torque.criteria;
* @version $Id$
* @since 3.0
*/
-public final class SqlEnum implements java.io.Serializable
+public enum SqlEnum
{
- /**
- * Serial version
- */
- private static final long serialVersionUID = 5963149836513364800L;
-
- /** The SQL expression. */
- private final String s;
-
- /**
- * The number of operands, if the SqlEnum is a comparison operator.
- * -1 if the SqlEnum is no comparison operator.
- * A Set operand (e.g. in IN) is counted as one operand.
- */
- private final int numberOfCompareOperands;
-
- private SqlEnum(final String s, final int numberOfCompareOperands)
- {
- this.s = s;
- this.numberOfCompareOperands = numberOfCompareOperands;
- }
-
- @Override
- public String toString()
- {
- return s;
- }
-
- /**
- * Returns the number of operands, if the SqlEnum is a comparison operator.
- * A Set operand (e.g. in IN) is counted as one operand.
- *
- * @return the number of compare operands, or -1 if the SqlEnum
- * is no comparison operator.
- */
- public int getNumberOfCompareOperands()
- {
- return numberOfCompareOperands;
- }
-
/** SQL Expression "=". */
- public static final SqlEnum EQUAL =
- new SqlEnum("=", 2);
+ EQUAL("=", 2),
/** SQL Expression "<>". */
- public static final SqlEnum NOT_EQUAL =
- new SqlEnum("<>", 2);
+ NOT_EQUAL("<>", 2),
/** SQL Expression "!=". */
- public static final SqlEnum ALT_NOT_EQUAL =
- new SqlEnum("!=", 2);
+ ALT_NOT_EQUAL("!=", 2),
/** SQL Expression ">". */
- public static final SqlEnum GREATER_THAN =
- new SqlEnum(">", 2);
+ GREATER_THAN(">", 2),
/** SQL Expression "<". */
- public static final SqlEnum LESS_THAN =
- new SqlEnum("<", 2);
+ LESS_THAN("<", 2),
/** SQL Expression ">=". */
- public static final SqlEnum GREATER_EQUAL =
- new SqlEnum(">=", 2);
+ GREATER_EQUAL(">=", 2),
/** SQL Expression "<=". */
- public static final SqlEnum LESS_EQUAL =
- new SqlEnum("<=", 2);
+ LESS_EQUAL("<=", 2),
/** SQL Expression " LIKE ". */
- public static final SqlEnum LIKE =
- new SqlEnum(" LIKE ", 2);
+ LIKE(" LIKE ", 2),
/** SQL Expression " NOT LIKE ". */
- public static final SqlEnum NOT_LIKE =
- new SqlEnum(" NOT LIKE ", 2);
+ NOT_LIKE(" NOT LIKE ", 2),
/** SQL Expression " ILIKE ". */
- public static final SqlEnum ILIKE =
- new SqlEnum(" ILIKE ", 2);
+ ILIKE(" ILIKE ", 2),
/** SQL Expression " NOT ILIKE ". */
- public static final SqlEnum NOT_ILIKE =
- new SqlEnum(" NOT ILIKE ", 2);
+ NOT_ILIKE(" NOT ILIKE ", 2),
/** SQL Expression " IN ". */
- public static final SqlEnum IN =
- new SqlEnum(" IN ", 2);
+ IN(" IN ", 2),
/** SQL Expression " NOT IN ". */
- public static final SqlEnum NOT_IN =
- new SqlEnum(" NOT IN ", 2);
+ NOT_IN(" NOT IN ", 2),
/** SQL Expression "JOIN". */
- public static final SqlEnum JOIN =
- new SqlEnum("JOIN", -1);
+ JOIN("JOIN", -1),
/** SQL Expression "DISTINCT ". */
- public static final SqlEnum DISTINCT =
- new SqlEnum("DISTINCT ", -1);
+ DISTINCT("DISTINCT ", -1),
/** SQL Expression "ALL ". */
- public static final SqlEnum ALL =
- new SqlEnum("ALL ", -1);
+ ALL("ALL ", -1),
/** SQL Expression "ASC". */
- public static final SqlEnum ASC =
- new SqlEnum("ASC", -1);
+ ASC("ASC", -1),
/** SQL Expression "DESC". */
- public static final SqlEnum DESC =
- new SqlEnum("DESC", -1);
+ DESC("DESC", -1),
/** SQL Expression " IS NULL". */
- public static final SqlEnum ISNULL =
- new SqlEnum(" IS NULL", 1);
+ ISNULL(" IS NULL", 1),
/** SQL Expression " IS NOT NULL". */
- public static final SqlEnum ISNOTNULL =
- new SqlEnum(" IS NOT NULL", 1);
+ ISNOTNULL(" IS NOT NULL", 1),
/** SQL Expression "CURRENT_DATE". */
- public static final SqlEnum CURRENT_DATE =
- new SqlEnum("CURRENT_DATE", -1);
+ CURRENT_DATE("CURRENT_DATE", -1),
/** SQL Expression "CURRENT_TIME". */
- public static final SqlEnum CURRENT_TIME =
- new SqlEnum("CURRENT_TIME", -1);
+ CURRENT_TIME("CURRENT_TIME", -1),
/** SQL Expression "CURRENT_TIMESTAMP". */
- public static final SqlEnum CURRENT_TIMESTAMP =
- new SqlEnum("CURRENT_TIMESTAMP", -1);
+ CURRENT_TIMESTAMP("CURRENT_TIMESTAMP", -1),
/** SQL Expression " ON ". */
- public static final SqlEnum ON =
- new SqlEnum(" ON ", -1);
+ ON(" ON ", -1),
/** SQL Expression " AS ". */
- public static final SqlEnum AS =
- new SqlEnum(" AS ", -1);
+ AS(" AS ", -1),
/** SQL Expression " ESCAPE ". */
- public static final SqlEnum ESCAPE =
- new SqlEnum(" ESCAPE ", -1);
+ ESCAPE(" ESCAPE ", -1),
/** SQL Expression " UNION ". */
- public static final SqlEnum UNION =
- new SqlEnum(" UNION ", -1);
+ UNION(" UNION ", -1),
/** SQL Expression " UNION ALL ". */
- public static final SqlEnum UNION_ALL =
- new SqlEnum(" UNION ALL ", -1);
+ UNION_ALL(" UNION ALL ", -1),
/** SQL Expression " INTERSECT ". */
- public static final SqlEnum INTERSECT =
- new SqlEnum(" INTERSECT ", -1);
+ INTERSECT(" INTERSECT ", -1),
/** SQL Expression " INTERSECT ALL ". */
- public static final SqlEnum INTERSECT_ALL =
- new SqlEnum(" INTERSECT ALL ", -1);
+ INTERSECT_ALL(" INTERSECT ALL ", -1),
/** SQL Expression " EXCEPT ". */
- public static final SqlEnum EXCEPT =
- new SqlEnum(" EXCEPT ", -1);
+ EXCEPT(" EXCEPT ", -1),
/** SQL Expression " EXCEPT ALL ". */
- public static final SqlEnum EXCEPT_ALL =
- new SqlEnum(" EXCEPT ALL ", -1);
+ EXCEPT_ALL(" EXCEPT ALL ", -1),
/** SQL Expression " MINUS ". */
- public static final SqlEnum MINUS =
- new SqlEnum(" MINUS ", -1);
+ MINUS(" MINUS ", -1),
/** SQL Expression " MINUS ALL ". */
- public static final SqlEnum MINUS_ALL =
- new SqlEnum(" MINUS ALL ", -1);
+ MINUS_ALL(" MINUS ALL ", -1);
+
+ /** The SQL expression. */
+ private final String s;
/**
- * returns whether o is the same SqlEnum as this object.
- * Two SqlEnums are considered equal if they contain the same String.
- * @param o the object to compare the SqlEnum with.
+ * The number of operands, if the SqlEnum is a comparison operator.
+ * -1 if the SqlEnum is no comparison operator.
+ * A Set operand (e.g. in IN) is counted as one operand.
*/
- @Override
- public boolean equals(final Object o)
+ private final int numberOfCompareOperands;
+
+ private SqlEnum(final String s, final int numberOfCompareOperands)
{
- if (o != null && o instanceof SqlEnum otherEnum)
- {
- // both null: true
- // other null, this not null: false
- // else compare
- return (otherEnum.s == null)
- ? (s == null)
- : otherEnum.s.equals(s);
- }
+ this.s = s;
+ this.numberOfCompareOperands = numberOfCompareOperands;
+ }
- return false;
+ @Override
+ public String toString()
+ {
+ return s;
}
/**
- * returns a hashcode for this object which is consistent with equals()
+ * Returns the number of operands, if the SqlEnum is a comparison operator.
+ * A Set operand (e.g. in IN) is counted as one operand.
+ *
+ * @return the number of compare operands, or -1 if the SqlEnum
+ * is no comparison operator.
*/
- @Override
- public int hashCode()
+ public int getNumberOfCompareOperands()
{
- return (s == null)
- ? 0
- : s.hashCode();
+ return numberOfCompareOperands;
}
}
Modified: db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/sql/SqlBuilder.java
==============================================================================
--- db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/sql/SqlBuilder.java Mon Aug 3 13:33:07 2026 (r1936825)
+++ db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/sql/SqlBuilder.java Mon Aug 3 13:40:51 2026 (r1936826)
@@ -19,7 +19,6 @@ package org.apache.torque.sql;
* under the License.
*/
-import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -75,19 +74,14 @@ public final class SqlBuilder
/**
* The list of WhereClausePsPartBuilders which can build the where clause.
*/
- private static List<WhereClausePsPartBuilder> whereClausePsPartBuilders
- = new ArrayList<>();
-
- static
- {
- whereClausePsPartBuilders.add(new EnumValueBuilder());
- whereClausePsPartBuilders.add(new VerbatimSqlConditionBuilder());
- whereClausePsPartBuilders.add(new CurrentDateTimePsPartBuilder());
- whereClausePsPartBuilders.add(new NullValueBuilder());
- whereClausePsPartBuilders.add(new LikeBuilder());
- whereClausePsPartBuilders.add(new InBuilder());
- whereClausePsPartBuilders.add(new StandardBuilder());
- }
+ private static final List<WhereClausePsPartBuilder> whereClausePsPartBuilders = List.of(
+ new EnumValueBuilder(),
+ new VerbatimSqlConditionBuilder(),
+ new CurrentDateTimePsPartBuilder(),
+ new NullValueBuilder(),
+ new LikeBuilder(),
+ new InBuilder(),
+ new StandardBuilder());
/**
* Private constructor to prevent instantiation.
Modified: db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/sql/whereclausebuilder/EnumValueBuilder.java
==============================================================================
--- db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/sql/whereclausebuilder/EnumValueBuilder.java Mon Aug 3 13:33:07 2026 (r1936825)
+++ db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/sql/whereclausebuilder/EnumValueBuilder.java Mon Aug 3 13:40:51 2026 (r1936826)
@@ -25,6 +25,7 @@ import java.lang.reflect.Method;
import org.apache.torque.TorqueException;
import org.apache.torque.adapter.Adapter;
import org.apache.torque.criteria.PreparedStatementPart;
+import org.apache.torque.criteria.SqlEnum;
import org.apache.torque.sql.Query;
import org.apache.torque.sql.SqlBuilder;
import org.apache.torque.sql.WhereClauseExpression;
@@ -134,7 +135,7 @@ public class EnumValueBuilder extends Ab
final WhereClauseExpression whereClauseExpression,
final Adapter adapter)
{
- return (whereClauseExpression.getLValue() instanceof Enum
- || whereClauseExpression.getRValue() instanceof Enum);
+ return ((whereClauseExpression.getLValue() instanceof Enum && !(whereClauseExpression.getLValue() instanceof SqlEnum))
+ || (whereClauseExpression.getRValue() instanceof Enum) && !(whereClauseExpression.getRValue() instanceof SqlEnum));
}
}