Enhancement
A renderer is a rendering algorithm for a thing - the type of thing should be parameterized.
Code migration
Set type parameters in derivations of renderers. This may change the signatures of inherited protected methods. These must be adapted in possible derivations likewise to the concrete type. Thus usually in each of these methods a Cast is omitted.
In places where a renderer is read from a configuration but used in a generic context (e.g. a table column), this renderer should be defined as a renderer<?> in the configuration property and converted to a generic renderer when used:
#!java // Config interface Config { Renderer<?> getConfiguredRenderer() } // Generic API void setRenderer(Renderer<Object> r) { ... } // Conversion setRenderer(config.getConfiguredRenderer().generic());
Test
Refactoring, no test.