« Return to Thread: users, please give us your opinion: what is your take on generics with Wicket

Making Component easier to Generify

by cowwoc :: Rate this Message:

Reply to Author | View in Thread


Have you considered moving from subclassing to composition in Wicket using Callable<T>?

Currently it is quite common for developers to subclass a component in order to override isVisible() and other properties. I am proposing that instead the component classes become final and properties may only be set using setter methods. The setter methods would take Callable<T> instead of T, so for example setVisible(boolean) would become setVisible(Callable<Boolean>)

The benefit of this approach is that you could introduce static factory methods to the Wicket components which would make them much easier to use in their Generic form. You could then introduce various helper classes to create Callable<T> for constant values, such as Callable.valueOf(true) would return a Callable<Boolean> that always returns true.

 « Return to Thread: users, please give us your opinion: what is your take on generics with Wicket