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

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

Introduction

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

Prototype

public String getTypeName() 

Source Link

Document

Retrieve the type name.

Usage

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

private List<Annotation> tryToMapToCdiQualifier(String beanName, BeanDefinition beanDefinition,
        AfterBeanDiscovery abd) {//w  w w .j a  v  a 2 s .  co  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;
}