To collect both ImageBeans and CharBeans in the same Map, I tried to use -:
1. Generics - "? extends Bean" where Bean is a marker interface implemented by both bean classes.
2. ArrayList<Object> to collect both ImageBeans and CharBeans.
Ultimately, these led to complex, slightly difficult to understand and use code.
We decided to do away with them and use a separate Map for ImageBeans for the time being.