It is very handy to be able to stash extra info on a component, but when multiple libraries all want to do this, it quickly gets out of hand.
When multiple libraries all want to do this, they can conflict e.g. if I add LibraryA and LibraryB to my pivot application, and both libraries want to enhance standard Pivot behaviour by stashing stuff in the Component, they
will overwrite each others UserData.
A better solution would be to use a map of values with methods like
void putUserData(Class key, Object userdata)
Object getUserData(Class key)