factoryBean.setNestedName(this.escapeBeanIdToBeClassNameSafe(beanName) + Constants.FACTORY_BEAN_SUFFIX);
factoryBean.setSuperType(superType);
factoryBean.setVisibility(Visibility.PRIVATE);
// add an annotation that declares the actual bean type.
factoryBean.addMetaData(Constants.FACTORY_BEAN_OBJECT_TYPE, bean.getType().getName());
bean.setFactoryBean(factoryBean);
context.debug("FactoryBean: " + factoryBean.getName());
this.addBean(bean);