docs: public void visitBeanFactoryMethod(Object factoryClass,
                                         Object producedType,
                                         String methodName,
                                         AnnotationMetadata methodAnnotationMetadata,
                                         Map<String, Object> argumentTypes,
                                         Map<String, AnnotationMetadata> argumentAnnotationMetadata,
                                         Map<String, Map<String, Object>> genericTypes) {
          if (constructorVisitor != null) {
              throw new IllegalStateException("Only a single call to visitBeanFactoryMethod(..) is permitted");
          } else {
              // now prepare the implementation of the build method. See BeanFactory interface
              visitBuildFactoryMethodDefinition(factoryClass, methodName, argumentTypes, argumentAnnotationMetadata, methodAnnotationMetadata);
  
              // now implement the constructor
              buildFactoryMethodClassConstructor(
                      factoryClass,
                      producedType,
                      methodName,
                      methodAnnotationMetadata,
                      argumentTypes,
                      argumentAnnotationMetadata,
                      genericTypes);
  
              // now override the injectBean method
              visitInjectMethodDefinition();
          }
      }