I haven't gone into supporting type variables, hence I don't perform
type capturing or inference yet, although I would be interested in
adding this. For an example of what is currently implemented, the
following are from the tests:
Number <: Integer
Object <: Integer
List <: List<Integer>
Collection<Integer> <: List<Integer>
Collection<Integer> <: ArrayList<Integer>
List<Integer> !<: Set<Integer>
List<Number> !<: List<Integer>
List<?> <: List<Integer>
List<? extends Number> <: List<Number>
List<? extends Number> <: List<Integer>
List<? extends Number> !<: List<Object>
List<? super Number> <: List<Number>
List<? super Number> <: List<Object>
List<? super Number> !<: List<Integer>
List<Integer> <: IntegerArrayList
Let me know if you find any existing libraries since I use this in my
other projects. If there's nothing out there then open-sourcing this
would stop people from having to reinvent the wheel.
Cheers,
Mark
2009/1/29 Emmanuel Bernard <emmanuel(a)hibernate.org>:
If I can't find an other alternative that would surely be of help
yes :)
Do you know how much of the subtype rules you have implemented?
The one that sounded non trivial to me were around detecting that generic
are supertypes of others:
- containment and equivalence
- capture conversion
- intersection types
- management of bounds
(using the language of the JSL)
On Jan 29, 2009, at 05:49, Mark Hobson wrote:
> I've written a small utility library that provides methods to work
> with Types, specifically it contains such a method isAssignable(Type
> supertype, Type type) that should satisfy your requirements.
>
> I've been considering open-sourcing it so would be happy to do so if
> you were interested?
>
> Cheers,
>
> Mark
>
> 2009/1/29 Emmanuel Bernard <emmanuel(a)hibernate.org>:
>>
>> Specifically a routine like
>> boolean isSuperType(Type super, Type, sub);
>> note Type, not Class<?>
>>
>> On Jan 28, 2009, at 21:22, Emmanuel Bernard wrote:
>>
>>
>>
http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.10
>>
>> Subtyping
>>
>> I am looking for an ASL 2 / BSD implementation of the subtyping
>> resolution
>> algorithm in Java.
>>
>> I am thinking Harmony might have one.
>>
>> Anybody knows?
>>
>> _______________________________________________
>> hibernate-dev mailing list
>> hibernate-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>
>>
>> _______________________________________________
>> hibernate-dev mailing list
>> hibernate-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>
>>