Re: performQuery generics

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Mon Dec 24 2007 - 10:20:45 EST

  • Next message: Andrus Adamchik (JIRA): "[JIRA] Commented: (CAY-116) Improve DbAdapter to support cascading drop constraints when DB does not"

    On Dec 21, 2007, at 2:30 PM, Tore Halset wrote:
    >
    >> The more I think about it, the more I feel like we'll have to do
    >> some kind of Context/Query wrapper that supports generics
    >> specifically for select queries, similar to what was suggested here:
    >>
    >> https://issues.apache.org/cayenne/browse/CAY-877
    >
    > A wrapper is fine, but do you think this is fixable in Query as well?

    Regardless of what I said elsewhere on the topic (the ideas I am still
    planning to pursue), current version of performQuery is soooo painful
    to use. We MUST do something about it. Here is one idea - revert
    generics version of "performQuery":

    --- framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/
    cayenne/ObjectContext.java (revision 606412)
    +++ framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/
    cayenne/ObjectContext.java (working copy)
    ..-156,7 +156,8 @@
         /**
          * Executes a selecting query, returning a list of persistent
    objects or data rows.
          */
    - List<?> performQuery(Query query);
    + ..uppressWarnings("unchecked")
    + List performQuery(Query query);

    This would at least allow users to assign results without warnings:

       List<Artist> x = context.performQuery(q);

    So while there's no added type-safety, at least such API won't result
    in a downgrade in functionality.

    Comments?

    Andrus



    This archive was generated by hypermail 2.0.0 : Mon Dec 24 2007 - 10:21:23 EST