Currently creating a Component type hierarchy is misleading because the shared super types all have to extend Component. This causes problems when they're meant to be 'abstract' and never directly added as a component themselves.
This can easily be solved by just allowing all methods to be implemented by the APT (excluding
Object members). Any methods that don't fit the overall bean pattern will still generate errors.