This implementation uses the External Polymorphism pattern to define a mechanism by which all participating objects (1) can be collected in a central "in-memory" object collection and (2) can dump their state upon request.