WEB : Wise reflection for generic handlers ------------------------------------------
Key: LABS-161 URL: https://issues.apache.org/jira/browse/LABS-161 Project: Labs Issue Type: Improvement Components: Magma Reporter: Simone Gianni Assignee: Simone Gianni It would be nice to be able to define generic web handler and generic beans, the define non generic subclasses, and have Magma behave correctly with them. Magma uses reflection/introspection to determine data types in a number of situations : * Examining the type of properties in a bean to setup proper conversion * Examining the parameters of a do or handle method in a webhandler to perform proper conversion If a generic handler is defined, and then a non generic but parametrized subclass is defined, this subclass is, formally, using concrete classes and not generics. Suppose the following : public class DisplayingBeanHandler<T> extends WebHandler { public HtmlProducer doShow(T bean) { ... } } public class DisplayPersonHandler extends DisplayingBeanHandler<Person> {} DisplayPersonHandler? has a doShow(Person) method, at any effect. Unfortunately, to keep compatibility, the Java compiler will instead create a synthetic method based on Object : public class DisplayPersonHandler extends DisplayingBeanHandler<Person> { // Injected by compiler public HtmlProducer doShow(Object bean) { super.doShow((Person)bean); } } While this ensures proper checks, reflection will see this method as using Object, so Magma will not know what to convert it to. Where this happen, Magma has to correctly check for generics, and behave correctly. Since there are many places (and many more in the future) requiring this kind of functionality, a small "library" should be created to ease this pain. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]