By having both the constructor and the setComponents checking a white- and a blacklist for allowed types, we ensure that no Collections can be added through these methods to the list of components.
Also make MultiPoint and multipoint inherit from Collection/collection respectively.