On 12/21/2009 07:31 PM, Asiri Rathnayake wrote:
> Hi Thomas,
>
>
>>> May be we can avoid the enum type by using generics?
>>>
>>> <T extends EntityReference> T getCurrentEntityReference();
>>>
>>> Not sure if this is a good practice though.
>>
>> Generic does not exist in the bytecode so impossible to know that you
>> want the EntityType.WIKI if you don't explicitly ask for it.
>>
>
> Right. Inside the method we'd have no clue what the client code is
> requesting.
>
> Would be cool if we can somehow not depend on the EntityReference
> implementation type within the getCurrentEntityReference() method (thereby
> not having to know which type the user wants but just cast and return what
> is available). But I don't know if this is possible, and this would still
> mean having to do an unsafe cast like:
>
> EntityReference ref = ....;
>
> return (T) ref;
>
> which is also not that good.
>
private Map<Class<T>, T> currentReferences populated at the start of the
request;
public <T extends EntityReference> T getCurrentEntityReference(Class<T>
clazz) {
return currentReferences.get(clazz);
}
Could this work?
--
Sergiu Dumitriu
http://purl.org/net/sergiu/
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs