List of usage examples for org.springframework.integration.jdbc.config JdbcTypesEnum getCode
public int getCode()
From source file:org.springframework.integration.jdbc.config.StoredProcParserUtils.java
/** * @param storedProcComponent/*from w w w .ja v a 2s .co m*/ * @param parserContext */ public static ManagedList<BeanDefinition> getSqlParameterDefinitionBeanDefinitions(Element storedProcComponent, ParserContext parserContext) { List<Element> sqlParameterDefinitionChildElements = DomUtils.getChildElementsByTagName(storedProcComponent, "sql-parameter-definition"); ManagedList<BeanDefinition> sqlParameterList = new ManagedList<BeanDefinition>(); for (Element childElement : sqlParameterDefinitionChildElements) { String name = childElement.getAttribute("name"); String sqlType = childElement.getAttribute("type"); String direction = childElement.getAttribute("direction"); String scale = childElement.getAttribute("scale"); String typeName = childElement.getAttribute("type-name"); String returnType = childElement.getAttribute("return-type"); if (StringUtils.hasText(typeName) && StringUtils.hasText(scale)) { parserContext.getReaderContext().error("'type-name' and 'scale' attributes are mutually exclusive " + "for 'sql-parameter-definition' element.", storedProcComponent); } if (StringUtils.hasText(returnType) && StringUtils.hasText(scale)) { parserContext.getReaderContext().error("'returnType' and 'scale' attributes are mutually exclusive " + "for 'sql-parameter-definition' element.", storedProcComponent); } final BeanDefinitionBuilder parameterBuilder; if ("OUT".equalsIgnoreCase(direction)) { parameterBuilder = BeanDefinitionBuilder.genericBeanDefinition(SqlOutParameter.class); } else if ("INOUT".equalsIgnoreCase(direction)) { parameterBuilder = BeanDefinitionBuilder.genericBeanDefinition(SqlInOutParameter.class); } else { parameterBuilder = BeanDefinitionBuilder.genericBeanDefinition(SqlParameter.class); if (StringUtils.hasText(returnType)) { parserContext.getReaderContext().error("'return-type' attribute can't be provided " + "for IN 'sql-parameter-definition' element.", storedProcComponent); } } if (StringUtils.hasText(name)) { parameterBuilder.addConstructorArgValue(name); } else { parserContext.getReaderContext().error( "The 'name' attribute must be set for the Sql parameter element.", storedProcComponent); } if (StringUtils.hasText(sqlType)) { JdbcTypesEnum jdbcTypeEnum = JdbcTypesEnum.convertToJdbcTypesEnum(sqlType); if (jdbcTypeEnum != null) { parameterBuilder.addConstructorArgValue(jdbcTypeEnum.getCode()); } else { parameterBuilder.addConstructorArgValue(sqlType); } } else { parameterBuilder.addConstructorArgValue(Types.VARCHAR); } if (StringUtils.hasText(typeName)) { parameterBuilder.addConstructorArgValue(typeName); } else if (StringUtils.hasText(scale)) { parameterBuilder.addConstructorArgValue(new TypedStringValue(scale, Integer.class)); } else { parameterBuilder.addConstructorArgValue(null); } if (StringUtils.hasText(returnType)) { parameterBuilder.addConstructorArgReference(returnType); } sqlParameterList.add(parameterBuilder.getBeanDefinition()); } return sqlParameterList; }