1313
1414import static org .springframework .core .Conventions .attributeNameToPropertyName ;
1515import static org .springframework .integration .config .xml .IntegrationNamespaceUtils .setReferenceIfAttributeDefined ;
16- import static org .springframework .integration .config .xml .IntegrationNamespaceUtils .setValueIfAttributeDefined ;
1716
1817public class XmlBeanDefinitionBuilder {
1918
@@ -61,11 +60,10 @@ public XmlBeanDefinitionBuilder addExclusiveConstructorArgValue(String attribute
6160 }
6261
6362 public XmlBeanDefinitionBuilder setPropertyReference (String attributeName ) {
64- builder .addPropertyReference (attributeNameToPropertyName (attributeName ), element .getAttribute (attributeName ));
65- return this ;
63+ return setPropertyReference (attributeName , attributeNameToPropertyName (attributeName ));
6664 }
6765
68- public XmlBeanDefinitionBuilder setPropertyReference (String propertyName , String attributeName ) {
66+ public XmlBeanDefinitionBuilder setPropertyReference (String attributeName , String propertyName ) {
6967 builder .addPropertyReference (propertyName , element .getAttribute (attributeName ));
7068 return this ;
7169 }
@@ -75,61 +73,62 @@ public XmlBeanDefinitionBuilder setPropertyReferenceIfAttributeDefined(String at
7573 return this ;
7674 }
7775
78- public XmlBeanDefinitionBuilder setPropertyReferenceIfAttributeDefined (String propertyName , String attributeName ) {
76+ public XmlBeanDefinitionBuilder setPropertyReferenceIfAttributeDefined (String attributeName , String propertyName ) {
7977 setReferenceIfAttributeDefined (builder , element , attributeName , propertyName );
8078 return this ;
8179 }
8280
83- public XmlBeanDefinitionBuilder setPropertyValue (String attributeName ) {
84- builder .addPropertyValue (attributeNameToPropertyName (attributeName ), new TypedStringValue (element .getAttribute (attributeName )));
85- return this ;
81+ public XmlBeanDefinitionBuilder setProperty (String attributeName ) {
82+ return setProperty (attributeName , attributeNameToPropertyName (attributeName ));
8683 }
8784
88- public XmlBeanDefinitionBuilder setPropertyValue (String propertyName , String attributeName ) {
89- builder .addPropertyValue (propertyName , new TypedStringValue (element .getAttribute (attributeName )));
90- return this ;
85+ public XmlBeanDefinitionBuilder setProperty (String attributeName , String propertyName ) {
86+ return setProperty (attributeName , propertyName , TypedStringValue ::new );
9187 }
9288
93- public XmlBeanDefinitionBuilder setPropertyValueIfAttributeDefined (String attributeName ) {
94- setValueIfAttributeDefined ( builder , element , attributeName );
89+ public XmlBeanDefinitionBuilder setProperty (String attributeName , String propertyName , Function < String , ?> attributeValueMapper ) {
90+ builder . addPropertyValue ( propertyName , attributeValueMapper . apply ( element . getAttribute ( attributeName )) );
9591 return this ;
9692 }
9793
98- public XmlBeanDefinitionBuilder setPropertyValueIfAttributeDefined (String propertyName , String attributeName ) {
99- setValueIfAttributeDefined (builder , element , attributeName , propertyName );
100- return this ;
94+ public XmlBeanDefinitionBuilder setPropertyIfAttributeDefined (String attributeName ) {
95+ return setPropertyIfAttributeDefined (attributeName , attributeNameToPropertyName (attributeName ));
96+ }
97+
98+ public XmlBeanDefinitionBuilder setPropertyIfAttributeDefined (String attributeName , String propertyName ) {
99+ return setPropertyIfAttributeDefined (attributeName , propertyName , TypedStringValue ::new );
101100 }
102101
103- public XmlBeanDefinitionBuilder setPropertyValueIfAttributeDefined (String propertyName , String attributeName , Function <String , ?> attributeValueMapper ) {
102+ public XmlBeanDefinitionBuilder setPropertyIfAttributeDefined (String attributeName , String propertyName , Function <String , ?> attributeValueMapper ) {
104103 var value = element .getAttribute (attributeName );
105104 if (StringUtils .hasText (value )) {
106105 builder .addPropertyValue (propertyName , attributeValueMapper .apply (value ));
107106 }
108107 return this ;
109108 }
110109
111- public XmlBeanDefinitionBuilder setExpressionPropertyIfAttributeDefined (String attribute ) {
112- return setExpressionPropertyIfAttributeDefined (attribute , attribute + "-expression" );
110+ public XmlBeanDefinitionBuilder setPropertyOrExpressionStringIfAttributeDefined (String attribute ) {
111+ return setPropertyIfExclusiveAttributeDefined (attribute , attribute + "-expression" , attributeNameToPropertyName ( attribute ), attributeNameToPropertyName ( attribute + "-expression-string" ) );
113112 }
114113
115- public XmlBeanDefinitionBuilder setExpressionPropertyIfAttributeDefined (String attribute , String expressionAttribute ) {
116- return setExpressionPropertyIfAttributeDefined (attribute , expressionAttribute , attributeNameToPropertyName ( attribute ), attributeNameToPropertyName ( expressionAttribute ) );
114+ public XmlBeanDefinitionBuilder setPropertyOrExpressionIfAttributeDefined (String attribute ) {
115+ return setPropertyOrExpressionIfAttributeDefined (attribute , attribute + "-expression" );
117116 }
118117
119- public XmlBeanDefinitionBuilder setExpressionPropertyIfAttributeDefined (String attribute , String expressionAttribute , String property , String expressionProperty ) {
120- return setIfExclusiveAttributeDefined (attribute , expressionAttribute , ( b , v ) -> b . addPropertyValue ( property , v ), ( b , v ) -> b . addPropertyValue ( expressionProperty , new ExpressionBeanDefinitionFactory (). createBeanDefinition ( v ) ));
118+ public XmlBeanDefinitionBuilder setPropertyOrExpressionIfAttributeDefined (String attribute , String expressionAttribute ) {
119+ return setPropertyOrExpressionIfAttributeDefined (attribute , expressionAttribute , attributeNameToPropertyName ( attribute ), attributeNameToPropertyName ( expressionAttribute ));
121120 }
122121
123- public XmlBeanDefinitionBuilder setExpressionValueIfAttributeDefined (String attribute ) {
124- return setPropertyValueIfExclusiveAttributeDefined (attribute , attribute + "-expression" , attributeNameToPropertyName ( attribute ), attributeNameToPropertyName ( attribute + "-expression-string" ));
122+ public XmlBeanDefinitionBuilder setPropertyOrExpressionIfAttributeDefined (String attribute , String expressionAttribute , String property , String expressionProperty ) {
123+ return setIfExclusiveAttributeDefined (attribute , expressionAttribute , ( b , v ) -> b . addPropertyValue ( property , new TypedStringValue ( v )), ( b , v ) -> b . addPropertyValue ( expressionProperty , new ExpressionBeanDefinitionFactory (). createBeanDefinition ( v ) ));
125124 }
126125
127- public XmlBeanDefinitionBuilder setPropertyValueIfExclusiveAttributeDefined (String attribute1 , String attribute2 ) {
128- return setPropertyValueIfExclusiveAttributeDefined (attribute1 , attribute2 , attributeNameToPropertyName (attribute1 ), attributeNameToPropertyName (attribute2 ));
126+ public XmlBeanDefinitionBuilder setPropertyIfExclusiveAttributeDefined (String attribute1 , String attribute2 ) {
127+ return setPropertyIfExclusiveAttributeDefined (attribute1 , attribute2 , attributeNameToPropertyName (attribute1 ), attributeNameToPropertyName (attribute2 ));
129128 }
130129
131- public XmlBeanDefinitionBuilder setPropertyValueIfExclusiveAttributeDefined (String attribute1 , String attribute2 , String property1 , String property2 ) {
132- return setIfExclusiveAttributeDefined (attribute1 , attribute2 , (b , v ) -> b .addPropertyValue (property1 , v ) , (b , v ) -> b .addPropertyValue (property2 , v ));
130+ public XmlBeanDefinitionBuilder setPropertyIfExclusiveAttributeDefined (String attribute1 , String attribute2 , String property1 , String property2 ) {
131+ return setIfExclusiveAttributeDefined (attribute1 , attribute2 , (b , v ) -> b .addPropertyValue (property1 , new TypedStringValue ( v )) , (b , v ) -> b .addPropertyValue (property2 , new TypedStringValue ( v ) ));
133132 }
134133
135134 public XmlBeanDefinitionBuilder setExclusiveAttribute (String attribute1 , String attribute2 , BiConsumer <BeanDefinitionBuilder , String > arg1 , BiConsumer <BeanDefinitionBuilder , String > arg2 ) {
0 commit comments