Example usage for org.springframework.beans.factory.support BeanDefinitionBuilder addConstructorArgValue

List of usage examples for org.springframework.beans.factory.support BeanDefinitionBuilder addConstructorArgValue

Introduction

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

Prototype

public BeanDefinitionBuilder addConstructorArgValue(@Nullable Object value) 

Source Link

Document

Add an indexed constructor arg value.

Usage

From source file:ar.com.zauber.commons.conversion.spring.schema.SimplePropertyFieldDefinitionParser.java

/** @see AbstractSingleBeanDefinitionParser#doParse(Element, ParserContext, 
 *       BeanDefinitionBuilder) */
@SuppressWarnings("unchecked")
protected final void doParse(final Element element, final ParserContext parserContext,
        final BeanDefinitionBuilder bean) {

    final String targetPropertyName = element.getAttribute("target");
    String sourcePropertyName;/*from   ww  w.  j a  v  a2  s  . c o m*/
    Converter converter;

    bean.addConstructorArgValue(targetPropertyName);

    if (element.hasAttribute("source")) {
        sourcePropertyName = element.getAttribute("source");
    } else {
        sourcePropertyName = targetPropertyName;
    }

    final List<?> l = parserContext.getDelegate().parseListElement(element, bean.getBeanDefinition());
    final BeanDefinitionBuilder bdb = BeanDefinitionBuilder.rootBeanDefinition(SinglePropertyConverter.class)
            .addConstructorArgValue(sourcePropertyName);

    if (element.hasAttribute("converter-ref")) {
        bean.addConstructorArgValue(
                bdb.addConstructorArgReference(element.getAttribute("converter-ref")).getBeanDefinition());
    } else if (l.size() == 1) {
        bean.addConstructorArgValue(bdb.addConstructorArgValue(l.iterator().next()).getBeanDefinition());
    } else {
        converter = new IdentityConverter();
        bean.addConstructorArgValue(new SinglePropertyConverter(sourcePropertyName, converter));
    }
    configureSetter(bean, element);
}

From source file:edu.internet2.middleware.shibboleth.common.config.metadata.ResourceBackedMetadataProviderBeanDefinitionParser.java

/** {@inheritDoc} */
protected void doParse(Element config, ParserContext parserContext, BeanDefinitionBuilder builder) {
    super.doParse(config, parserContext, builder);

    List<Element> resourceElems = XMLHelper.getChildElementsByTagNameNS(config,
            MetadataNamespaceHandler.NAMESPACE, "MetadataResource");
    builder.addConstructorArgValue(
            SpringConfigurationUtils.parseInnerCustomElement(resourceElems.get(0), parserContext));
}

From source file:net.phoenix.thrift.xml.ArgsBeanDefinitionParser.java

/**
 *  InetSocketAddress server socket?/*w  w w  .  jav  a 2 s  .  c o  m*/
 *
 * @param element
 * @param parserContext
 * @return
 */
protected AbstractBeanDefinition buildInetSocketAddress(Element element) {
    int port = Integer.parseInt(element.getAttribute("port"));
    String hostname = element.getAttribute("hostname");
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(InetSocketAddress.class);
    if (!StringUtils.isEmpty(hostname))
        builder.addConstructorArgValue(hostname);
    builder.addConstructorArgValue(port);
    return builder.getBeanDefinition();
}

From source file:com.alibaba.dubbo.config.spring.context.annotation.DubboConfigBindingRegistrar.java

private void registerDubboConfigBindingBeanPostProcessor(String beanName, PropertyValues propertyValues,
        BeanDefinitionRegistry registry) {

    Class<?> processorClass = DubboConfigBindingBeanPostProcessor.class;

    BeanDefinitionBuilder builder = rootBeanDefinition(processorClass);

    builder.addConstructorArgValue(beanName).addConstructorArgValue(propertyValues);

    AbstractBeanDefinition beanDefinition = builder.getBeanDefinition();

    beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);

    registerWithGeneratedName(beanDefinition, registry);

    if (log.isInfoEnabled()) {
        log.info("The BeanPostProcessor bean definition [" + processorClass.getName()
                + "] for dubbo config bean [name : " + beanName + "] has been registered.");
    }/*from   w  w w  .j a va 2  s . c  o m*/

}

From source file:it.scoppelletti.programmerpower.web.spring.config.SecurityFilterBeanDefinitionParser.java

/**
 * Restituisce la definizione del componente 
 * {@code FilterInvocationSecurityMetadataSource}.
 * /*from ww w .j  ava 2  s .c  om*/
 * @param  el Elemento XML.
 * @return    Oggetto.
 */
private BeanDefinition createSecurityMetadataSource(Element el) {
    BeanDefinitionBuilder builder;

    builder = BeanDefinitionBuilder
            .rootBeanDefinition(ExpressionBasedFilterInvocationSecurityMetadataSource.class);
    builder.addConstructorArgValue(parseInterceptors(el));
    builder.addConstructorArgReference(el.getAttribute("expression-handler-ref"));

    return builder.getBeanDefinition();
}

From source file:edu.internet2.middleware.shibboleth.common.config.resource.ChainingResourceFilterBeanDefinitionParser.java

/** {@inheritDoc} */
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
    List<Element> childFilters = XMLHelper.getChildElementsByTagNameNS(element,
            ResourceNamespaceHandler.NAMESPACE, "ResourceFilter");
    log.debug("Processing {} child filters.", childFilters.size());
    builder.addConstructorArgValue(
            SpringConfigurationUtils.parseInnerCustomElements(childFilters, parserContext));
}

From source file:org.jboss.seam.spring.namespace.CdiBeanImportBeanDefinitionParser.java

@Override
public AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
    BeanDefinitionBuilder cdiBeanFactoryBuilder = BeanDefinitionBuilder
            .rootBeanDefinition(FACTORY_BEAN_CLASS_NAME);
    String beanManagerReference = element.getAttribute(BEAN_MANAGER_REFERENCE);
    if (StringUtils.hasText(beanManagerReference)) {
        cdiBeanFactoryBuilder.addPropertyReference("beanManager", beanManagerReference);
    } else {/*from ww w  .  j a va2  s  .c  om*/
        cdiBeanFactoryBuilder.addPropertyReference("beanManager", DEFAULT_BEAN_MANAGER_ID);
    }

    String name = element.getAttribute(NAME_ATTRIBUTE);

    String type = element.getAttribute("type");

    if (!StringUtils.hasText(name) && !StringUtils.hasText(type)) {
        parserContext.getReaderContext()
                .error("A CDI bean reference must specify at least a name or the bean type", element);
    }

    ArrayList<Qualifier> qualifiers = new ArrayList<Qualifier>();

    NodeList children = element.getChildNodes();
    for (int i = 0; i < children.getLength(); i++) {
        Node childNode = children.item(i);
        if (childNode.getNodeType() == Node.ELEMENT_NODE && "qualifier".equals(childNode.getLocalName())) {
            Element qualifierElement = (Element) childNode;
            Qualifier qualifier = new Qualifier();
            Map<String, Object> attributes = new HashMap<String, Object>();
            qualifier.setClassName(qualifierElement.getAttribute("type"));

            if (qualifierElement.hasChildNodes()) {
                NodeList attributeNodes = qualifierElement.getChildNodes();
                for (int j = 0; j < attributeNodes.getLength(); j++) {
                    Node attributeNode = attributeNodes.item(j);
                    if (attributeNode.getNodeType() == Node.ELEMENT_NODE
                            && "attribute".equals(attributeNode.getLocalName())) {
                        Element attributeElement = (Element) attributeNode;
                        String attributeName = attributeElement.getAttribute("name");
                        String attributeValue = attributeElement.getAttribute("value");
                        if (!StringUtils.hasText(attributeName) || !StringUtils.hasText(attributeValue)) {
                            parserContext.getReaderContext().error(
                                    "Qualifier attributes must have both a name and a value", attributeElement);
                        }
                        attributes.put(attributeName, attributeValue);
                    }
                }
            }
            qualifier.setAttributes(attributes);
            qualifiers.add(qualifier);
        }
    }
    if (StringUtils.hasText(name) && !qualifiers.isEmpty()) {
        parserContext.getReaderContext()
                .error("A bean reference must either specify a name or qualifiers but not both", element);
    }

    BeanDefinitionBuilder lookupBuilder = BeanDefinitionBuilder
            .rootBeanDefinition(TYPE_SAFE_BEAN_LOOKUP_CLASS_NAME);
    lookupBuilder.addConstructorArgValue(type);
    lookupBuilder.addPropertyValue("qualifiers", qualifiers);
    AbstractBeanDefinition lookupBeanDefinition = lookupBuilder.getBeanDefinition();
    String lookupBeanName = parserContext.getReaderContext().generateBeanName(lookupBeanDefinition);
    BeanDefinitionReaderUtils.registerBeanDefinition(
            new BeanDefinitionHolder(lookupBeanDefinition, lookupBeanName), parserContext.getRegistry());
    cdiBeanFactoryBuilder.addPropertyReference("cdiBeanLookup", lookupBeanName);

    return cdiBeanFactoryBuilder.getBeanDefinition();
}

From source file:edu.internet2.middleware.shibboleth.common.config.attribute.filtering.match.basic.AndMatchFunctorBeanDefinitionParser.java

/** {@inheritDoc} */
protected void doParse(Element configElement, ParserContext parserContext, BeanDefinitionBuilder builder) {
    super.doParse(configElement, parserContext, builder);

    List<Element> ruleElements = XMLHelper.getChildElementsByTagNameNS(configElement,
            BasicMatchFunctorNamespaceHandler.NAMESPACE, "Rule");

    builder.addConstructorArgValue(
            SpringConfigurationUtils.parseInnerCustomElements(ruleElements, parserContext));

    ruleElements = XMLHelper.getChildElementsByTagNameNS(configElement,
            BasicMatchFunctorNamespaceHandler.NAMESPACE, "RuleReference");
    if (!ruleElements.isEmpty()) {
        throw new BeanCreationException("RuleReference elements within an AND rule are not supported");
    }/*from  ww w  . ja  v a  2  s . c o  m*/
}

From source file:edu.internet2.middleware.shibboleth.common.config.attribute.filtering.match.basic.NotMatchFunctorBeanDefinitionParser.java

/** {@inheritDoc} */
protected void doParse(Element configElement, ParserContext parserContext, BeanDefinitionBuilder builder) {
    super.doParse(configElement, parserContext, builder);

    List<Element> ruleElements = XMLHelper.getChildElementsByTagNameNS(configElement,
            BasicMatchFunctorNamespaceHandler.NAMESPACE, "Rule");

    builder.addConstructorArgValue(
            SpringConfigurationUtils.parseInnerCustomElement(ruleElements.get(0), parserContext));

    ruleElements = XMLHelper.getChildElementsByTagNameNS(configElement,
            BasicMatchFunctorNamespaceHandler.NAMESPACE, "RuleReference");
    if (!ruleElements.isEmpty()) {
        throw new BeanCreationException("RuleReference elements within a NOT rule are not supported");
    }/*from   w  w  w  .  j a  v  a 2  s.c om*/
}

From source file:edu.internet2.middleware.shibboleth.common.config.attribute.filtering.match.basic.OrMatchFunctorBeanDefinitionParser.java

/** {@inheritDoc} */
protected void doParse(Element configElement, ParserContext parserContext, BeanDefinitionBuilder builder) {
    super.doParse(configElement, parserContext, builder);

    List<Element> ruleElements = XMLHelper.getChildElementsByTagNameNS(configElement,
            BasicMatchFunctorNamespaceHandler.NAMESPACE, "Rule");

    builder.addConstructorArgValue(
            SpringConfigurationUtils.parseInnerCustomElements(ruleElements, parserContext));

    ruleElements = XMLHelper.getChildElementsByTagNameNS(configElement,
            BasicMatchFunctorNamespaceHandler.NAMESPACE, "RuleReference");
    if (!ruleElements.isEmpty()) {
        throw new BeanCreationException("RuleReference elements within an OR rule are not supported");
    }//w w w  .  ja v a  2 s.c  o  m
}