Alla fine ho optato per creare tre classi custom.
In esse uno dei campi era un arraylist contenente la classe figlia.

Cosa semplice e banale