class ReactorQLBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {

    @Override
    @SneakyThrows
    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, @Nonnull BeanDefinitionRegistry registry) {<FILL_FUNCTION_BODY>}

}

        Map<String, Object> attr = importingClassMetadata.getAnnotationAttributes(EnableReactorQL.class.getName());
        if (attr == null) {
            return;
        }
        String[] packages = (String[]) attr.get("value");

        CandidateComponentsIndex index = CandidateComponentsIndexLoader.loadIndex(org.springframework.util.ClassUtils.getDefaultClassLoader());
        if (null == index) {
            return;
        }
        Set<String> path = Arrays.stream(packages)
                                 .flatMap(str -> index
                                     .getCandidateTypes(str, ReactorQLOperation.class.getName())
                                     .stream())
                                 .collect(Collectors.toSet());

        for (String className : path) {
            Class<?> type = org.springframework.util.ClassUtils.forName(className, null);
            if (!type.isInterface() || type.getAnnotation(ReactorQLOperation.class) == null) {
                continue;
            }
            RootBeanDefinition definition = new RootBeanDefinition();
            definition.setTargetType(type);
            definition.setBeanClass(ReactorQLFactoryBean.class);
            definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE);
            definition.getPropertyValues().add("target", type);
            if (!registry.containsBeanDefinition(type.getName())) {
                log.debug("register ReactorQL Operator {}", type);
                registry.registerBeanDefinition(type.getName(), definition);
            }
        }

    
<no_super_class>