Example usage for org.springframework.beans.factory.support AutowireCandidateQualifier getAttribute

List of usage examples for org.springframework.beans.factory.support AutowireCandidateQualifier getAttribute

Introduction

In this page you can find the example usage for org.springframework.beans.factory.support AutowireCandidateQualifier getAttribute.

Prototype

@Override
    @Nullable
    public Object getAttribute(String name) 

Source Link

Usage

From source file:org.os890.ds.addon.spring.impl.SpringBridgeExtension.java

private List<Annotation> tryToMapToCdiQualifier(String beanName, BeanDefinition beanDefinition,
        AfterBeanDiscovery abd) {//from w ww. j  av a 2s.c  o  m
    List<Annotation> cdiQualifiers = new ArrayList<Annotation>();
    if (beanDefinition instanceof AbstractBeanDefinition) {
        boolean unsupportedQualifierFound = false;
        for (AutowireCandidateQualifier springQualifier : ((AbstractBeanDefinition) beanDefinition)
                .getQualifiers()) {
            Class qualifierClass = ClassUtils.tryToLoadClassForName(springQualifier.getTypeName());

            if (qualifierClass == null) {
                unsupportedQualifierFound = true;
                break;
            }

            if (Annotation.class.isAssignableFrom(qualifierClass)) {
                Map<String, Object> qualifierValues = new HashMap<String, Object>();
                String methodName;
                Object methodValue;
                for (Method annotationMethod : qualifierClass.getDeclaredMethods()) {
                    methodName = annotationMethod.getName();
                    methodValue = springQualifier.getAttribute(methodName);

                    if (methodValue != null) {
                        qualifierValues.put(methodName, methodValue);
                    }

                }

                cdiQualifiers.add(AnnotationInstanceProvider.of(qualifierClass, qualifierValues));
            } else {
                unsupportedQualifierFound = true;
                break;
            }
        }
        if (unsupportedQualifierFound) {
            abd.addDefinitionError(new IllegalStateException(beanName + " can't be added"));
        }
    }
    return cdiQualifiers;
}