Hi,

Thanks for the feedback! Good to have that for 3.2.

>  all the generics code uses just T as "T extends Object" and not "T extends 
> DataObject" (or maybe another superinterface wich makes sense) 

Some of it is because query result can be a DataRow, or an Object[]. Other 
places (like “deleteObjects”) should indeed be changed to something like T 
extends Peristent. Agreed.

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

This API continues to evolve on trunk. E.g. we don’t have 
Cayenne.objectForSelect, but there’s a better method now - 
ObjectContext.selectOne(..) :

http://svn.apache.org/repos/asf/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/ObjectContext.java

Further comments are certainly welcomed.

Andrus

On Nov 11, 2013, at 8:48 PM, Ramiro Aparicio <[email protected]> 
wrote:

> Hi,
> 
> 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
> 

Reply via email to