mpoeschl 2003/05/27 09:28:22 Modified: src/test/org/apache/torque/util Tag: TORQUE_3_0_BRANCH CriteriaTest.java src/java/org/apache/torque/util Tag: TORQUE_3_0_BRANCH Criteria.java xdocs Tag: TORQUE_3_0_BRANCH changes.xml Log: TRQ18: Criteria.addDate is broken Revision Changes Path No revision No revision 1.15.2.1 +22 -2 db-torque/src/test/org/apache/torque/util/CriteriaTest.java Index: CriteriaTest.java =================================================================== RCS file: /home/cvs/db-torque/src/test/org/apache/torque/util/CriteriaTest.java,v retrieving revision 1.15 retrieving revision 1.15.2.1 diff -u -r1.15 -r1.15.2.1 --- CriteriaTest.java 28 Nov 2002 16:32:36 -0000 1.15 +++ CriteriaTest.java 27 May 2003 16:28:12 -0000 1.15.2.1 @@ -312,6 +312,27 @@ assertEquals("TABLE.COLUMN=1", cc.toString()); } + public void testAddDate() + { + Criteria c = new Criteria(); + c.addDate("TABLE.DATE_COLUMN", 2003, 0, 22); + + String expect = "SELECT FROM TABLE WHERE TABLE.DATE_COLUMN='20030122000000'"; + + String result = null; + try + { + result = BasePeer.createQueryString(c); + } + catch (TorqueException e) + { + e.printStackTrace(); + fail("TorqueException thrown in BasePeer.createQueryString()"); + } + System.out.println(result); + assertEquals(expect, result); + } + public void testCurrentDate() { Criteria c = new Criteria() @@ -332,7 +353,6 @@ } assertEquals(expect,result); - } public void testCountAster() No revision No revision 1.35.2.1 +78 -115 db-torque/src/java/org/apache/torque/util/Criteria.java Index: Criteria.java =================================================================== RCS file: /home/cvs/db-torque/src/java/org/apache/torque/util/Criteria.java,v retrieving revision 1.35 retrieving revision 1.35.2.1 diff -u -r1.35 -r1.35.2.1 --- Criteria.java 28 Nov 2002 16:32:36 -0000 1.35 +++ Criteria.java 27 May 2003 16:28:12 -0000 1.35.2.1 @@ -900,7 +900,7 @@ */ public ObjectKey getObjectKey(String name) { - return (ObjectKey)getCriterion(name).getValue(); + return (ObjectKey) getCriterion(name).getValue(); } /** @@ -1108,8 +1108,8 @@ * @param table Name of table which contains the column * @param column The column to run the comparison on * @param value An Object. - * @param comparison String describing how to compare the column with the value - * + * @param comparison String describing how to compare the column with + * the value * @return A modified Criteria object. */ public Criteria add(String table, @@ -1117,11 +1117,13 @@ Object value, SqlEnum comparison) { - StringBuffer sb = new StringBuffer(table.length() + column.length() + 1); + StringBuffer sb = new StringBuffer(table.length() + + column.length() + 1); sb.append(table); sb.append('.'); sb.append(column); - super.put(sb.toString(),new Criterion(table, column, value, comparison)); + super.put(sb.toString(), + new Criterion(table, column, value, comparison)); return this; } @@ -1156,8 +1158,8 @@ * * @param column The column to run the comparison on * @param value A Boolean. - * @param comparison String describing how to compare the column with the value - * + * @param comparison String describing how to compare the column with + * the value * @return A modified Criteria object. */ public Criteria add(String column, boolean value, SqlEnum comparison) @@ -1175,10 +1177,8 @@ * add(column, new Integer(value), EQUAL); * * - * * @param column The column to run the comparison on * @param value An int. - * * @return A modified Criteria object. */ public Criteria add(String column, int value) @@ -1198,8 +1198,8 @@ * * @param column The column to run the comparison on * @param value An int. - * @param comparison String describing how to compare the column with the value - * + * @param comparison String describing how to compare the column with + * the value * @return A modified Criteria object. */ public Criteria add(String column, int value, SqlEnum comparison) @@ -1219,7 +1219,6 @@ * * @param column The column to run the comparison on * @param value A long. - * * @return A modified Criteria object. */ public Criteria add(String column, long value) @@ -1237,11 +1236,10 @@ * add(column, new Long(value), comparison); * * - * * @param column The column to run the comparison on * @param value A long. - * @param comparison String describing how to compare the column with the value - * + * @param comparison String describing how to compare the column with + * the value * @return A modified Criteria object. */ public Criteria add(String column, long value, SqlEnum comparison) @@ -1280,8 +1278,8 @@ * * @param column The column to run the comparison on * @param value A float. - * @param comparison String describing how to compare the column with the value - * + * @param comparison String describing how to compare the column with + * the value * @return A modified Criteria object. */ public Criteria add(String column, float value, SqlEnum comparison) @@ -1301,7 +1299,6 @@ * * @param column The column to run the comparison on * @param value A double. - * * @return A modified Criteria object. */ public Criteria add(String column, double value) @@ -1321,8 +1318,8 @@ * * @param column The column to run the comparison on * @param value A double. - * @param comparison String describing how to compare the column with the value - * + * @param comparison String describing how to compare the column with + * the value * @return A modified Criteria object. */ public Criteria add(String column, double value, SqlEnum comparison) @@ -1362,13 +1359,14 @@ * * @param column A String value to use as column. * @param year An int with the year. - * @param month An int with the month. + * @param month An int with the month. Month value is 0-based. + * e.g., 0 for January * @param date An int with the date. * @return A modified Criteria object. */ public Criteria addDate(String column, int year, int month, int date) { - add(column, new GregorianCalendar(year, month, date)); + add(column, new GregorianCalendar(year, month, date).getTime()); return this; } @@ -1384,32 +1382,20 @@ * * @param column The column to run the comparison on * @param year An int with the year. - * @param month An int with the month. + * @param month An int with the month. Month value is 0-based. + * e.g., 0 for January * @param date An int with the date. - * @param comparison String describing how to compare the column with the value + * @param comparison String describing how to compare the column with + * the value * @return A modified Criteria object. */ public Criteria addDate(String column, int year, int month, int date, SqlEnum comparison) { - add(column, new GregorianCalendar(year, month, date), comparison); - return this; - } - - /* * - * Convenience method to add a Key to Criteria. - * - * @param key A String value to use as key. - * @param value A Key. - * @return A modified Criteria object. - * / - public Criteria add (String key, - Key value) - { - add(key, value.getInternalObject()); + add(column, new GregorianCalendar(year, month, date).getTime(), + comparison); return this; } - */ /** * This is the way that you should add a join of two tables. For @@ -1877,7 +1863,9 @@ sb.append("\nCurrent Query SQL (may not be complete or applicable): ") .append(BasePeer.createQueryDisplayString(this)); } - catch (Exception exc) {} + catch (Exception exc) + { + } return sb.toString(); } @@ -1899,7 +1887,7 @@ } else if (this.size() == ((Criteria) crit).size()) { - Criteria criteria = (Criteria)crit; + Criteria criteria = (Criteria) crit; if (this.offset == criteria.getOffset() && this.limit == criteria.getLimit() && ignoreCase == criteria.isIgnoreCase() @@ -1912,7 +1900,7 @@ ) { isEquiv = true; - for (Iterator it = criteria.keySet().iterator(); it.hasNext(); ) + for (Iterator it = criteria.keySet().iterator(); it.hasNext();) { String key = (String) it.next(); if (this.containsKey(key)) @@ -1945,19 +1933,19 @@ */ /** - * This method adds a prepared Criterion object to the Criteria as a having clause. - * You can get a new, empty Criterion object with the + * This method adds a prepared Criterion object to the Criteria as a having + * clause. You can get a new, empty Criterion object with the * getNewCriterion() method. * *
*
* Criteria crit = new Criteria();
- * Criteria.Criterion c = crit.getNewCriterion(BasePeer.ID, new Integer(5), Criteria.LESS_THAN);
+ * Criteria.Criterion c = crit.getNewCriterion(BasePeer.ID, new Integer(5),
+ * Criteria.LESS_THAN);
* crit.addHaving(c);
*
*
* @param having A Criterion object
- *
* @return A modified Criteria object.
*/
public Criteria addHaving(Criterion having)
@@ -1976,17 +1964,17 @@
*
*
* Criteria crit = new Criteria();
- * Criteria.Criterion c = crit.getNewCriterion(BasePeer.ID, new Integer(5), Criteria.LESS_THAN);
+ * Criteria.Criterion c = crit.getNewCriterion(BasePeer.ID, new Integer(5),
+ * Criteria.LESS_THAN);
* crit.and(c);
*
*
* @param c A Criterion object
- *
* @return A modified Criteria object.
*/
public Criteria and(Criterion c)
{
- Criterion oc = getCriterion(c.getTable()+'.'+c.getColumn());
+ Criterion oc = getCriterion(c.getTable() + '.' + c.getColumn());
if (oc == null)
{
@@ -2084,7 +2072,6 @@
* @param table Name of the table which contains the column
* @param column The column to run the comparison on
* @param value An Object.
- *
* @return A modified Criteria object.
*/
public Criteria and(String table, String column, Object value)
@@ -2111,14 +2098,15 @@
* @param table Name of table which contains the column
* @param column The column to run the comparison on
* @param value An Object.
- * @param comparison String describing how to compare the column with the value
- *
+ * @param comparison String describing how to compare the column with
+ * the value
* @return A modified Criteria object.
*/
public Criteria and(String table, String column, Object value,
SqlEnum comparison)
{
- StringBuffer sb = new StringBuffer(table.length() + column.length() + 1);
+ StringBuffer sb = new StringBuffer(table.length()
+ + column.length() + 1);
sb.append(table);
sb.append('.');
sb.append(column);
@@ -2128,7 +2116,7 @@
if (oc == null)
{
- super.put(sb.toString(),nc);
+ super.put(sb.toString(), nc);
}
else
{
@@ -2148,7 +2136,6 @@
*
* @param column The column to run the comparison on
* @param value A Boolean.
- *
* @return A modified Criteria object.
*/
public Criteria and(String column, boolean value)
@@ -2170,7 +2157,6 @@
* @param value A Boolean.
* @param comparison String describing how to compare the column
* with the value
- *
* @return A modified Criteria object.
*/
public Criteria and(String column, boolean value, SqlEnum comparison)
@@ -2188,10 +2174,8 @@
* and(column, new Integer(value), EQUAL);
*
*
- *
* @param column The column to run the comparison on
* @param value An int.
- *
* @return A modified Criteria object.
*/
public Criteria and(String column, int value)
@@ -2209,11 +2193,9 @@
* and(column, new Integer(value), comparison);
*
*
- *
* @param column The column to run the comparison on
* @param value An int.
* @param comparison String describing how to compare the column with the value
- *
* @return A modified Criteria object.
*/
public Criteria and(String column, int value, SqlEnum comparison)
@@ -2231,10 +2213,8 @@
* and(column, new Long(value), EQUAL);
*
*
- *
* @param column The column to run the comparison on
* @param value A long.
- *
* @return A modified Criteria object.
*/
public Criteria and(String column, long value)
@@ -2254,8 +2234,8 @@
*
* @param column The column to run the comparison on
* @param value A long.
- * @param comparison String describing how to compare the column with the value
- *
+ * @param comparison String describing how to compare the column with
+ * the value
* @return A modified Criteria object.
*/
public Criteria and(String column, long value, SqlEnum comparison)
@@ -2275,7 +2255,6 @@
*
* @param column The column to run the comparison on
* @param value A float.
- *
* @return A modified Criteria object.
*/
public Criteria and(String column, float value)
@@ -2295,8 +2274,8 @@
*
* @param column The column to run the comparison on
* @param value A float.
- * @param comparison String describing how to compare the column with the value
- *
+ * @param comparison String describing how to compare the column with
+ * the value
* @return A modified Criteria object.
*/
public Criteria and(String column, float value, SqlEnum comparison)
@@ -2316,7 +2295,6 @@
*
* @param column The column to run the comparison on
* @param value A double.
- *
* @return A modified Criteria object.
*/
public Criteria and(String column, double value)
@@ -2336,8 +2314,8 @@
*
* @param column The column to run the comparison on
* @param value A double.
- * @param comparison String describing how to compare the column with the value
- *
+ * @param comparison String describing how to compare the column with
+ * the value
* @return A modified Criteria object.
*/
public Criteria and(String column, double value, SqlEnum comparison)
@@ -2382,7 +2360,8 @@
* @param year An int with the year.
* @param month An int with the month.
* @param date An int with the date.
- * @param comparison String describing how to compare the column with the value
+ * @param comparison String describing how to compare the column with
+ * the value
* @return A modified Criteria object.
*/
public Criteria andDate(String column, int year, int month, int date,
@@ -2557,7 +2536,6 @@
*
*
* @param c A Criterion object
- *
* @return A modified Criteria object.
*/
public Criteria or(Criterion c)
@@ -2624,7 +2602,6 @@
* @param column The column to run the comparison on
* @param value An Object.
* @param comparison A String.
- *
* @return A modified Criteria object.
*/
public Criteria or(String column, Object value, SqlEnum comparison)
@@ -2660,7 +2637,6 @@
* @param table Name of the table which contains the column
* @param column The column to run the comparison on
* @param value An Object.
- *
* @return A modified Criteria object.
*/
public Criteria or(String table, String column, Object value)
@@ -2688,7 +2664,6 @@
* @param column The column to run the comparison on
* @param value An Object.
* @param comparison String describing how to compare the column with the value
- *
* @return A modified Criteria object.
*/
public Criteria or(String table, String column, Object value,
@@ -2723,7 +2698,6 @@
*
* @param column The column to run the comparison on
* @param value A Boolean.
- *
* @return A modified Criteria object.
*/
public Criteria or(String column, boolean value)
@@ -2745,7 +2719,6 @@
* @param value A Boolean.
* @param comparison String describing how to compare the column
* with the value
- *
* @return A modified Criteria object.
*/
public Criteria or(String column, boolean value, SqlEnum comparison)
@@ -2766,7 +2739,6 @@
*
* @param column The column to run the comparison on
* @param value An int.
- *
* @return A modified Criteria object.
*/
public Criteria or(String column, int value)
@@ -2789,7 +2761,6 @@
* @param value An int.
* @param comparison String describing how to compare the column
* with the value
- *
* @return A modified Criteria object.
*/
public Criteria or(String column, int value, SqlEnum comparison)
@@ -2807,10 +2778,8 @@
* or(column, new Long(value), EQUAL);
*
*
- *
* @param column The column to run the comparison on
* @param value A long.
- *
* @return A modified Criteria object.
*/
public Criteria or(String column, long value)
@@ -2832,7 +2801,6 @@
* @param value A long.
* @param comparison String describing how to compare the column
* with the value
- *
* @return A modified Criteria object.
*/
public Criteria or(String column, long value, SqlEnum comparison)
@@ -2852,7 +2820,6 @@
*
* @param column The column to run the comparison on
* @param value A float.
- *
* @return A modified Criteria object.
*/
public Criteria or(String column, float value)
@@ -2874,7 +2841,6 @@
* @param value A float.
* @param comparison String describing how to compare the column
* with the value
- *
* @return A modified Criteria object.
*/
public Criteria or(String column, float value, SqlEnum comparison)
@@ -2894,7 +2860,6 @@
*
* @param column The column to run the comparison on
* @param value A double.
- *
* @return A modified Criteria object.
*/
public Criteria or(String column, double value)
@@ -2916,7 +2881,6 @@
* @param value A double.
* @param comparison String describing how to compare the column
* with the value
- *
* @return A modified Criteria object.
*/
public Criteria or(String column, double value, SqlEnum comparison)
@@ -2992,7 +2956,7 @@
*/
public Criteria orIn(String column, Object[] values)
{
- or(column, (Object)values, Criteria.IN);
+ or(column, (Object) values, Criteria.IN);
return this;
}
@@ -3135,7 +3099,7 @@
*/
public void setBlobFlag(boolean b)
{
- blobFlag = (b ? Boolean.TRUE: Boolean.FALSE);
+ blobFlag = (b ? Boolean.TRUE : Boolean.FALSE);
}
/**
@@ -3339,7 +3303,7 @@
{
this.db = v;
- for(int i = 0; i < this.clauses.size(); i++)
+ for (int i = 0; i < this.clauses.size(); i++)
{
((Criterion) (clauses.get(i))).setDB(v);
}
@@ -3418,15 +3382,15 @@
}
Criterion clause = null;
- for(int j = 0; j < this.clauses.size(); j++)
+ for (int j = 0; j < this.clauses.size(); j++)
{
sb.append('(');
}
if (CUSTOM == comparison)
{
- if (value != null && ! "".equals(value))
+ if (value != null && !"".equals(value))
{
- sb.append((String)value);
+ sb.append((String) value);
}
}
else
@@ -3447,7 +3411,7 @@
ignoreStringCase, getDb(), sb);
}
- for(int i = 0; i < this.clauses.size(); i++)
+ for (int i = 0; i < this.clauses.size(); i++)
{
sb.append(this.conjunctions.get(i));
clause = (Criterion) (this.clauses.get(i));
@@ -3473,7 +3437,7 @@
DB db = getDb();
- for(int j = 0; j < this.clauses.size(); j++)
+ for (int j = 0; j < this.clauses.size(); j++)
{
sb.append('(');
}
@@ -3481,13 +3445,13 @@
{
if (!"".equals(value))
{
- sb.append((String)value);
+ sb.append((String) value);
}
}
else
{
String field = null;
- if (table == null)
+ if (table == null)
{
field = column;
}
@@ -3509,7 +3473,7 @@
if (value instanceof List)
{
- value = ((List)value).toArray (new Object[0]);
+ value = ((List) value).toArray (new Object[0]);
}
for (int i = 0; i < Array.getLength(value); i++)
@@ -3524,46 +3488,45 @@
StringBuffer inString = new StringBuffer();
inString.append('(')
.append(inClause.toString(",")).append(')');
-
- sb.append (inString.toString());
+ sb.append(inString.toString());
}
else
{
if (ignoreCase)
{
- sb.append (db.ignoreCase(field))
- .append (comparison)
- .append (db.ignoreCase("?"));
+ sb.append(db.ignoreCase(field))
+ .append(comparison)
+ .append(db.ignoreCase("?"));
}
else
{
- sb.append (field)
- .append (comparison)
- .append (" ? ");
+ sb.append(field)
+ .append(comparison)
+ .append(" ? ");
}
if (value instanceof java.util.Date)
{
params.add(new java.sql.Date(
- ((java.util.Date)value).getTime()));
+ ((java.util.Date) value).getTime()));
}
else if (value instanceof DateKey)
{
params.add(new java.sql.Date(
- ((DateKey)value).getDate().getTime()));
+ ((DateKey) value).getDate().getTime()));
}
else
{
- params.add (value.toString());
+ params.add(value.toString());
}
}
}
- for(int i = 0; i < this.clauses.size(); i++)
+ for (int i = 0; i < this.clauses.size(); i++)
{
sb.append(this.conjunctions.get(i));
Criterion clause = (Criterion) (this.clauses.get(i));
- clause.appendPsTo(sb,params);
+ clause.appendPsTo(sb, params);
sb.append(')');
}
}
@@ -3661,7 +3624,7 @@
h ^= column.hashCode();
}
- for(int i = 0; i < this.clauses.size(); i++)
+ for (int i = 0; i < this.clauses.size(); i++)
{
h ^= ((Criterion) (clauses.get(i))).hashCode();
}
@@ -3688,7 +3651,7 @@
if (c != null)
{
s.add(c.getTable());
- for(int i = 0; i < c.getClauses().size(); i++)
+ for (int i = 0; i < c.getClauses().size(); i++)
{
addCriterionTable((Criterion) (c.getClauses().get(i)), s);
}
@@ -3721,7 +3684,7 @@
if (c != null)
{
a.add(c);
- for(int i = 0; i < c.getClauses().size(); i++)
+ for (int i = 0; i < c.getClauses().size(); i++)
{
traverseCriterion((Criterion) (c.getClauses().get(i)), a);
}
No revision
No revision
1.54.2.7 +3 -0 db-torque/xdocs/changes.xml
Index: changes.xml
===================================================================
RCS file: /home/cvs/db-torque/xdocs/changes.xml,v
retrieving revision 1.54.2.6
retrieving revision 1.54.2.7
diff -u -r1.54.2.6 -r1.54.2.7
--- changes.xml 22 May 2003 21:58:05 -0000 1.54.2.6
+++ changes.xml 27 May 2003 16:28:21 -0000 1.54.2.7
@@ -43,6 +43,9 @@