cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ramiro Aparicio <>
Subject 3.2M1 first impressions
Date Mon, 11 Nov 2013 17:48:10 GMT

I am doing today my usual updated maven depencies for our future product 
release, so I am migrating my 3.1 code to the new 3.2 generics style and 
I missed that  all the generics code uses just T as "T extends Object" 
and not "T extends DataObject" (or maybe another superinterface wich 
makes sense) it is not a serious issue but it can help avoiding runtime 
errors if you miss the correct class name.

Also I miss a generics typed version of objectForQuery I did it for 
myself so maybe you can include it in the next version:

// Must add context as parameter
     protected <U extends DataObject, T extends Select<U>> U 
objectForQuery (T query) {
         List<U> objects = getThreadDataContext().select(query);

         if (objects.size() == 0) {
             return null;
         } else if (objects.size() > 1) {
             throw new CayenneRuntimeException("Expected zero or one 
object, instead query matched: " + objects.size());

         return objects.get(0);

I will tell you if I find something worth noting.

Best regards.

Ramiro Aparicio

View raw message