Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2002-2013 the original author or authors.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package org.springframework.integration.xml.config;
 
 import java.util.List;
 import java.util.Map;
 
Parser for the <xpath-expression> element.

Author(s):
Jonas Partner
Soby Chacko
 
 
 	protected boolean shouldGenerateId() {
 		return false;
 	}
 
 	protected boolean shouldGenerateIdAsFallback() {
 		return true;
 	}
 
 	protected Class<?> getBeanClass(Element element) {
 		return XPathExpressionFactory.class;
 	}
 
 	protected void doParse(Element elementParserContext parserContextBeanDefinitionBuilder builder) {
 		String expression = element.getAttribute("expression");
 		Assert.hasText(expression"The 'expression' attribute is required.");
 		String nsPrefix = element.getAttribute("ns-prefix");
 		String nsUri = element.getAttribute("ns-uri");
 		String namespaceMapRef = element.getAttribute("namespace-map");
 
 		List<ElementmapElements = DomUtils.getChildElementsByTagName(element"map");
 
 		boolean prefixProvided = StringUtils.hasText(nsPrefix);
 		boolean namespaceProvided = StringUtils.hasText(nsUri);
 		boolean namespaceMapProvided = StringUtils.hasText(namespaceMapRef);
 
 		boolean mapSubElementProvided = !mapElements.isEmpty();
 
 		if (prefixProvided || namespaceProvided) {
 			Assert.isTrue(prefixProvided && namespaceProvided,
 					"Both 'ns-prefix' and 'ns-uri' must be specified if one is specified.");
 			Assert.isTrue(!namespaceMapProvided"It is not valid to specify both, the namespace attributes ('ns-prefix' and 'ns-uri') and the 'namespace-map' attribute.");
 			Assert.isTrue(!mapSubElementProvided"It is not valid to specify both, the namespace attributes ('ns-prefix' and 'ns-uri') and the 'map' sub-element.");
 		} else if (mapSubElementProvided) {
 			Assert.isTrue(!namespaceMapProvided"It is not valid to specify both, the 'namespace-map' attribute and the 'map' sub-element.");
 		}
 
 		builder.setFactoryMethod("createXPathExpression");
 		builder.addConstructorArgValue(expression);
 
 		if (prefixProvided) {
 			Map<StringStringnamespaceMap = new HashMap<StringString>(1);
 			namespaceMap.put(nsPrefixnsUri);
 			builder.addConstructorArgValue(namespaceMap);
 		} else if (namespaceMapProvided) {
 			builder.addConstructorArgReference(namespaceMapRef);
 		} else if (mapSubElementProvided) {
 
 			Element mapElement = mapElements.get(0);
 
 			if (mapElement != null) {
 						mapElementparserContextbuilder.getBeanDefinition()));
 			}
 		}
	}
	protected Map<?,?> parseNamespaceMapElement(Element elementParserContext parserContextBeanDefinition parentDefinition) {
		BeanDefinitionParserDelegate beanParser = parserContext.getDelegate();
		beanParser.initDefaults(element.getOwnerDocument().getDocumentElement(), beanParser);
		return beanParser.parseMapElement(elementparentDefinition);
	}
New to GrepCode? Check out our FAQ X