db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Bouschen (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JDO-163) Implement new JDO 2 query tests cases concerning query API Extensions
Date Fri, 11 Nov 2005 14:47:03 GMT
    [ http://issues.apache.org/jira/browse/JDO-163?page=comments#action_12357390 ] 

Michael Bouschen commented on JDO-163:

A few comments about thr third patch (JDO-163.patch3):

Class QueryTest:
- Method equals(Object, Object) could check for identical instances first:
  if (o1 == o2) {
    result = true;
  } else ...
- In the last else if block we know o1 is null, so there is no need to call equals. I propose
to replace the last else if block with
  } else {
    result = (o1 == o2);
- How about adding javadoc for the new equalsXXX methods? I think it is important to note
that the arguments passed to methods equalsObjectArray, equalsCollectione, qualsMap and contains
must not be null. 

Class SingleStringQuery:
- The patch removes the variable singleStringQuery, but the execute call a couple of lines
later takes the variable as argument. The query as stored in singleStringQuery does not reflect
the executed query, because the string defines a result. 

- Method toUtilDate takes a Local instance which is not used, instead it uses Locale.US.
- I propose to rename convertsElementsOfTypeObjectArray to convertObjectArrayElements.
- I propose to replace method toCollection with Object[] convertObjectArrayElements(Object[])
and let the caller covert the returned Object[] into a collection.

> Implement new JDO 2 query tests cases concerning query API Extensions
> ---------------------------------------------------------------------
>          Key: JDO-163
>          URL: http://issues.apache.org/jira/browse/JDO-163
>      Project: JDO
>         Type: New Feature
>   Components: tck20
>     Reporter: Michael Watzek
>     Assignee: Michael Watzek
>  Attachments: JDO-163.patch, JDO-163.patch2, JDO-163.patch3
> We need 15 new test classes, one for each of the following assertions:
> - A14.5-11: Construct a new query instance using the specified String as the single-string
representation of the query.
> - A14.5-12: Construct a new query instance with the given candidate class from a named
> - A14.5-13: If the named query is not found in already-loaded metadata, the query is
searched for using an algorithm. Files containing metadata are examined in turn until the
query is found. The order is based on the metadata search order for class metadata, but includes
files named based on the query name.
> - A14.5-14: If the metadata is not found in the above, a JDOUserException is thrown.
> - A14.5-15: The Query instance returned from this method can be modified by the application,
just like any other Query instance.
> - A14.5-16: Named queries must be compilable. Attempts to get a named query that cannot
be compiled result in JDOUserException.
> - A14.6-21: This method retrieves the fetch plan associated with the Query. It always
returns the identical instance for the same Query instance. Any change made to the fetch plan
affects subsequent query execution.
> - A14.6-16: void setResult (String result); Specify the results of the query if not instances
of the candidate class.
> - A14.6-17: void setGrouping (String grouping); Specify the grouping of results for aggregates.
> - A14.6-18: void setUnique (boolean unique); Specify that there is a single result of
the query.
> - A14.6-19: void setResultClass (Class resultClass); Specify the class to be used to
return result instances.
> - A14.6-20: setRange(int fromIncl, int toExcl); Specify the number of instances to skip
over and the maximum number of result instances to return.
> - A14.6-22: The Unmodifiable option, when set to true, disallows further modification
of the query, except for specifying the range and result class and ignoreCache option.
> - A14.6-23: The single string query is first parsed to yield the result, result class,
filter, variable list, parameter list, import list, grouping, ordering, and range. Then, the
values specified in APIs setResult, setResultClass, setFilter, declareVariables, declareParamters,
declareImports, setGrouping, setOrdering, and setRange override the corresponding settings
from the single string query.
> - A14.9-1: Some JDO vendors provide extensions to the query, and these extensions must
be set in the query instance prior to execution.
> Details can be found on Wiki page http://wiki.apache.org/jdo/QueryTests#QueryAPIExtensions.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

View raw message