List of usage examples for org.springframework.beans.factory.support ManagedList setSource
public void setSource(@Nullable Object source)
From source file:com.mtgi.analytics.aop.config.v11.BtPersisterChainBeanDefinitionParser.java
@Override @SuppressWarnings("unchecked") protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { //propagate shared template factory into sub-components if necessary. this would not be //necessary if parserContext gave us access to the entire component stack instead of just the //top. In that case, deeply nested children could search up the stack until they found //the template. perhaps a future version of the Spring API will support this. DefaultListableBeanFactory template = findEnclosingTemplateFactory(parserContext); if (template != null) parserContext.pushContainingComponent(new TemplateComponentDefinition(element.getNodeName(), parserContext.extractSource(element), template)); try {/*from ww w . ja va 2 s . c o m*/ //parse delegate persister definitions ManagedList persisters = new ManagedList(); persisters.setSource(element); NodeList nodes = element.getChildNodes(); for (int i = 0; i < nodes.getLength(); ++i) { Node node = nodes.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { String namespaceUri = node.getNamespaceURI(); NamespaceHandler handler = parserContext.getReaderContext().getNamespaceHandlerResolver() .resolve(namespaceUri); Object def = handler == null ? parserContext.getDelegate().parsePropertySubElement((Element) node, builder.getRawBeanDefinition()) : handler.parse((Element) node, parserContext); persisters.add(def); } } builder.addPropertyValue("delegates", persisters); } finally { if (template != null) parserContext.popContainingComponent(); } //register persister implementation with parent. if (parserContext.isNested()) { AbstractBeanDefinition def = builder.getBeanDefinition(); String id = element.hasAttribute("id") ? element.getAttribute("id") : parserContext.getReaderContext().generateBeanName(def); BeanDefinitionHolder holder = new BeanDefinitionHolder(def, id); BtManagerBeanDefinitionParser.registerNestedBean(holder, "persister", parserContext); } }
From source file:de.acosix.alfresco.mtsupport.repo.beans.TemplatedTenantBeanEmitter.java
protected void shallowCloneManagedCollections(final AbstractBeanDefinition cloneBeanDefinition) { // clone is not a deep clone - managed lists / maps are by-reference which is problematic for placeholder resolution final MutablePropertyValues propertyValues = cloneBeanDefinition.getPropertyValues(); for (final PropertyValue pv : propertyValues.getPropertyValues()) { final Object value = pv.getValue(); if (value instanceof ManagedList<?>) { final ManagedList<Object> newList = new ManagedList<>(); newList.setSource(((ManagedList<?>) value).getSource()); newList.setElementTypeName(((ManagedList<?>) value).getElementTypeName()); newList.addAll((ManagedList<?>) value); propertyValues.add(pv.getName(), newList); } else if (value instanceof ManagedSet<?>) { final ManagedSet<Object> newSet = new ManagedSet<>(); newSet.setSource(((ManagedSet<?>) value).getSource()); newSet.setElementTypeName(((ManagedSet<?>) value).getElementTypeName()); newSet.addAll((ManagedSet<?>) value); propertyValues.add(pv.getName(), newSet); } else if (value instanceof ManagedMap<?, ?>) { final ManagedMap<Object, Object> newMap = new ManagedMap<>(); newMap.setSource(((ManagedMap<?, ?>) value).getSource()); newMap.setKeyTypeName(((ManagedMap<?, ?>) value).getKeyTypeName()); newMap.setValueTypeName(((ManagedMap<?, ?>) value).getValueTypeName()); newMap.putAll((ManagedMap<?, ?>) value); propertyValues.add(pv.getName(), newMap); }//from ww w . j a v a 2s. com } }
From source file:com.bstek.dorado.spring.ClassTypeListShortCutDecorator.java
@SuppressWarnings({ "unchecked", "rawtypes" }) public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext) { AbstractBeanDefinition beanDef = (AbstractBeanDefinition) definition.getBeanDefinition(); MutablePropertyValues propertyValues = (beanDef.getPropertyValues() == null) ? new MutablePropertyValues() : beanDef.getPropertyValues(); ManagedList list = null; boolean firstPropertyValue = propertyValues.getPropertyValue(IMPL_TYPES) == null; if (!firstPropertyValue) { list = (ManagedList) (propertyValues.getPropertyValue(IMPL_TYPES).getValue()); } else {//from w w w. j av a2 s .c om list = new ManagedList(); list.setSource(node); list.setMergeEnabled(true); propertyValues.addPropertyValue(IMPL_TYPES, list); beanDef.setPropertyValues(propertyValues); } Element el = (Element) node; String className = el.getAttribute("name"); try { list.add(Class.forName(className)); } catch (ClassNotFoundException e) { logger.warn(e, e); } return definition; }
From source file:eap.config.AspectJAutoProxyBeanDefinitionParser.java
private void addIncludePatterns(Element element, ParserContext parserContext, BeanDefinition beanDef) { ManagedList<TypedStringValue> includePatterns = new ManagedList<TypedStringValue>(); NodeList childNodes = element.getChildNodes(); for (int i = 0; i < childNodes.getLength(); i++) { Node node = childNodes.item(i); if (node instanceof Element) { Element includeElement = (Element) node; TypedStringValue valueHolder = new TypedStringValue(includeElement.getAttribute("name")); valueHolder.setSource(parserContext.extractSource(includeElement)); includePatterns.add(valueHolder); }//from www. j a va 2 s. c o m } if (!includePatterns.isEmpty()) { includePatterns.setSource(parserContext.extractSource(element)); beanDef.getPropertyValues().add("includePatterns", includePatterns); } }
From source file:de.acosix.alfresco.utility.common.spring.PropertyAlteringBeanFactoryPostProcessor.java
protected Object handleListValues(final PropertyValue configuredValue) { final Object value; LOGGER.debug(// www . j a va 2 s . c o m "[{}] List of values / bean reference names has been configured - treating property {} of {} as <list>", this.beanName, this.propertyName, this.targetBeanName); final ManagedList<Object> list = new ManagedList<>(); if (this.merge && configuredValue != null) { final Object configuredValueDefinition = configuredValue.getValue(); if (configuredValueDefinition instanceof ManagedList<?>) { final ManagedList<?> oldList = (ManagedList<?>) configuredValueDefinition; list.setElementTypeName(oldList.getElementTypeName()); list.setMergeEnabled(oldList.isMergeEnabled()); list.setSource(oldList.getSource()); list.addAll(oldList); LOGGER.debug("[{}] Merged existing value list values: {}", this.beanName, oldList); } } List<Object> valuesToAdd; if (this.valueList != null) { LOGGER.debug("[{}] List of configured values for {} of {}: ", this.beanName, this.propertyName, this.targetBeanName, this.valueList); valuesToAdd = this.valueList; } else { LOGGER.debug("[{}] List of configured bean reference names for {} of {}: ", this.beanName, this.propertyName, this.targetBeanName, this.beanReferenceNameList); valuesToAdd = new ArrayList<>(); for (final String beanReferenceName : this.beanReferenceNameList) { valuesToAdd.add(new RuntimeBeanReference(beanReferenceName)); } } if (this.addAsFirst) { LOGGER.debug("[{}] Adding new entries at start of list for {} of {}", this.beanName, this.propertyName, this.targetBeanName); list.addAll(0, valuesToAdd); } else if (this.addAtIndex >= 0 && this.addAtIndex < list.size()) { LOGGER.debug("[{}] Adding new entries at position {} of list for {} of {}", this.beanName, String.valueOf(this.addAtIndex), this.propertyName, this.targetBeanName); list.addAll(this.addAtIndex, valuesToAdd); } else { LOGGER.debug("[{}] Adding new entries at end of list for {} of {}", this.beanName, this.propertyName, this.targetBeanName); list.addAll(valuesToAdd); } if (!list.isMergeEnabled() && this.mergeParent) { LOGGER.debug("[{}] Enabling \"merge\" for <list> on {} of {}", this.beanName, this.propertyName, this.targetBeanName); } list.setMergeEnabled(list.isMergeEnabled() || this.mergeParent); value = list; return value; }
From source file:org.eclipse.gemini.blueprint.blueprint.config.internal.BlueprintParser.java
/** * Parse a list element./*from w ww . ja va2 s .com*/ */ public List<?> parseListElement(Element collectionEle, BeanDefinition bd) { String defaultElementType = collectionEle.getAttribute(BeanDefinitionParserDelegate.VALUE_TYPE_ATTRIBUTE); NodeList nl = collectionEle.getChildNodes(); ManagedList<Object> target = new ManagedList<Object>(nl.getLength()); target.setSource(extractSource(collectionEle)); target.setElementTypeName(defaultElementType); target.setMergeEnabled(parseMergeAttribute(collectionEle)); parseCollectionElements(nl, target, bd, defaultElementType); return target; }
From source file:org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.java
/** * Parse a list element.//from w w w . j ava 2 s .c om */ public List<Object> parseListElement(Element collectionEle, @Nullable BeanDefinition bd) { String defaultElementType = collectionEle.getAttribute(VALUE_TYPE_ATTRIBUTE); NodeList nl = collectionEle.getChildNodes(); ManagedList<Object> target = new ManagedList<>(nl.getLength()); target.setSource(extractSource(collectionEle)); target.setElementTypeName(defaultElementType); target.setMergeEnabled(parseMergeAttribute(collectionEle)); parseCollectionElements(nl, target, bd, defaultElementType); return target; }