PolymorphicDomainObjectContainer would be the type in your public API if you don't want to allow consumers to call registerBinding/registerFactory.
Also, TaskContainer is a PolymorphicDomainObjectContainer but not an ExtensiblePolymorphicDomainObjectContainer.