List of usage examples for org.springframework.beans.factory.support ManagedArray ManagedArray
public ManagedArray(String elementTypeName, int size)
From source file:net.phoenix.thrift.xml.ProcessorBeanDefinitionParser.java
/** * TMultiplexedProcessor.registerProcessor(String serviceName, TProcessor * processor) ?processor ?MethodInvokingFactoryBean? * * @param serviceName/*from w ww.j a v a2 s.c o m*/ * @param processBeanName */ private String registerProcessor(ParserContext parserContext, String serviceName, String processBeanName) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(MethodInvokingBean.class); builder.addPropertyReference("targetObject", this.beanName); builder.addPropertyValue("targetMethod", "registerProcessor"); ManagedArray arguments = new ManagedArray(Object.class.getName(), 2); arguments.add(serviceName); arguments.add(new RuntimeBeanReference(processBeanName)); builder.addPropertyValue("arguments", arguments); String registerProcessorBeanName = processBeanName + "-registerProcessor"; parserContext.getRegistry().registerBeanDefinition(registerProcessorBeanName, builder.getBeanDefinition()); return registerProcessorBeanName; }
From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java
/** * @param element//from w w w . j a va 2 s .c o m * @return */ protected void prepareNamespaces(Element element, ParserContext parserContext) { String id = element.getAttribute("id"); this.namespacesId = id + "-Namespaces"; List<Element> namespaceElements = selectChildElements(element, "namespace"); ManagedArray array = new ManagedArray(String.class.getName(), namespaceElements.size() * 2); for (Element namespaceElement : namespaceElements) { array.add(namespaceElement.getAttribute("prefix")); array.add(namespaceElement.getAttribute("uri")); } BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(DefaultNamespaceContext.class); builder.addConstructorArgValue(array); parserContext .registerBeanComponent(new BeanComponentDefinition(builder.getBeanDefinition(), this.namespacesId)); }
From source file:org.eclipse.gemini.blueprint.blueprint.config.internal.BlueprintParser.java
/** * Parse an array element./*from w ww . ja va 2 s. co m*/ */ public Object parseArrayElement(Element arrayEle, BeanDefinition bd) { String elementType = arrayEle.getAttribute(BeanDefinitionParserDelegate.VALUE_TYPE_ATTRIBUTE); NodeList nl = arrayEle.getChildNodes(); ManagedArray target = new ManagedArray(elementType, nl.getLength()); target.setSource(extractSource(arrayEle)); target.setElementTypeName(elementType); target.setMergeEnabled(parseMergeAttribute(arrayEle)); parseCollectionElements(nl, target, bd, elementType); return target; }
From source file:org.kuali.rice.krad.datadictionary.uif.UifBeanFactoryPostProcessor.java
@SuppressWarnings("unchecked") protected void visitArray(String propertyName, Map<String, String> parentExpressionGraph, Map<String, String> expressionGraph, Object array, ConfigurableListableBeanFactory beanFactory, Set<String> processedBeanNames) { Object newArray = null;/*from w w w. j a va 2 s . c o m*/ Object[] arrayVal = null; boolean isMergeEnabled = false; if (array instanceof ManagedArray) { isMergeEnabled = ((ManagedArray) array).isMergeEnabled(); arrayVal = (Object[]) ((ManagedArray) array).getSource(); newArray = new ManagedArray(((ManagedArray) array).getElementTypeName(), arrayVal.length); ((ManagedArray) newArray).setMergeEnabled(isMergeEnabled); } else { arrayVal = (Object[]) array; newArray = new Object[arrayVal.length]; } for (int i = 0; i < arrayVal.length; i++) { Object elem = arrayVal[i]; String elemPropertyName = propertyName + "[" + i + "]"; if (hasExpression(elem)) { String strValue = getStringValue(elem); expressionGraph.put(elemPropertyName, strValue); arrayVal[i] = null; } else { // process set value bean definition as a top level bean if ((elem instanceof BeanDefinition) || (elem instanceof BeanDefinitionHolder)) { String beanName = null; BeanDefinition beanDefinition; if (elem instanceof BeanDefinition) { beanDefinition = (BeanDefinition) elem; } else { beanDefinition = ((BeanDefinitionHolder) elem).getBeanDefinition(); beanName = ((BeanDefinitionHolder) elem).getBeanName(); } processBeanDefinition(beanName, beanDefinition, beanFactory, processedBeanNames); } arrayVal[i] = elem; } if (isMergeEnabled && parentExpressionGraph.containsKey(elemPropertyName)) { parentExpressionGraph.remove(elemPropertyName); } } // determine if we need to clear any parent expressions for this list if (!isMergeEnabled) { // clear any expressions that match the property name minus index Map<String, String> adjustedParentExpressionGraph = new HashMap<String, String>(); for (Map.Entry<String, String> parentExpression : parentExpressionGraph.entrySet()) { if (!parentExpression.getKey().startsWith(propertyName + "[")) { adjustedParentExpressionGraph.put(parentExpression.getKey(), parentExpression.getValue()); } } parentExpressionGraph.clear(); parentExpressionGraph.putAll(adjustedParentExpressionGraph); } if (array instanceof ManagedArray) { ((ManagedArray) array).setSource(newArray); } else { array = newArray; } }
From source file:org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.java
/** * Parse an array element.//from w w w. j av a2s. c o m */ public Object parseArrayElement(Element arrayEle, @Nullable BeanDefinition bd) { String elementType = arrayEle.getAttribute(VALUE_TYPE_ATTRIBUTE); NodeList nl = arrayEle.getChildNodes(); ManagedArray target = new ManagedArray(elementType, nl.getLength()); target.setSource(extractSource(arrayEle)); target.setElementTypeName(elementType); target.setMergeEnabled(parseMergeAttribute(arrayEle)); parseCollectionElements(nl, target, bd, elementType); return target; }
From source file:org.springframework.data.gemfire.config.AbstractRegionParser.java
protected void parseCollectionOfCustomSubElements(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, String className, String subElementName, String propertyName) { List<Element> subElements = DomUtils.getChildElementsByTagName(element, subElementName, subElementName + "-ref"); if (!CollectionUtils.isEmpty(subElements)) { ManagedArray array = new ManagedArray(className, subElements.size()); for (Element subElement : subElements) { array.add(ParsingUtils.parseRefOrNestedCustomElement(parserContext, subElement, builder)); }// w w w .ja v a 2s .co m builder.addPropertyValue(propertyName, array); } }
From source file:org.springframework.data.gemfire.config.xml.AbstractRegionParser.java
protected void parseCollectionOfCustomSubElements(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, String className, String subElementName, String propertyName) { List<Element> subElements = DomUtils.getChildElementsByTagName(element, subElementName, subElementName + "-ref"); if (!CollectionUtils.isEmpty(subElements)) { ManagedArray array = new ManagedArray(className, subElements.size()); for (Element subElement : subElements) { array.add(ParsingUtils.parseRefOrNestedCustomElement(subElement, parserContext, builder)); }//from ww w. j a va 2 s. co m builder.addPropertyValue(propertyName, array); } }