Hello,

This proposal is closely linked to Java 5 standard. When I started 
converting, RowKeySet was already in a parametrized form, that was 
public abstract class RowKeySet<E> extends AbstractSet<E>

However, this set is used internally throughout Trinidad, often assuming 
an Object key, like UIXCollection returns an Object from getRowKey method. 
So I suggest to change RowKeySet signature to 
public abstract class RowKeySet extends AbstractSet<Object> to reflect 
that fact as well as make the conversion to Java 5 standard a bit easier. 

The main difficulty currently is since the set's content is often 
manipulated internally, and this can be hellish when you don't know the 
content type since you have to abuse of the wildcard parameter because 
generic collections are not covariant (you cannot cast List<String> to 
List<Object> for example, as opposed to arrays, so in this case you cannot 
cast from RowKeySet<E> to RowKeySet<Object> among other things).

I don't see any real disadvantage of forcing Object type on rowkeys 
personally, but maybe someone has another input concerning them?


Regards,

Simon Lessard
Fujitsu Consulting

Reply via email to