class DefaultDocumentRepositoryProducer implements DocumentRepositoryProducer {

    @Override
    public <E, ID, T extends Repository<E, ID>> T get(Class<T> repositoryClass, DocumentCollectionManager manager) {
        Objects.requireNonNull(repositoryClass, "repository class is required");
        Objects.requireNonNull(manager, "manager class is required");
        DocumentTemplate template = producer.get(manager);
        return get(repositoryClass, template);
    }

}