1 package org.apache.commons.digester3.xmlrules;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.commons.digester3.binder.BeanPropertySetterBuilder;
23 import org.apache.commons.digester3.binder.LinkedRuleBuilder;
24 import org.apache.commons.digester3.binder.RulesBinder;
25 import org.xml.sax.Attributes;
26
27
28
29
30 final class BeanPropertySetterRule
31 extends AbstractXmlRule
32 {
33
34 public BeanPropertySetterRule( RulesBinder targetRulesBinder, PatternStack patternStack )
35 {
36 super( targetRulesBinder, patternStack );
37 }
38
39
40
41
42 @Override
43 protected void bindRule( LinkedRuleBuilder linkedRuleBuilder, Attributes attributes )
44 throws Exception
45 {
46 BeanPropertySetterBuilder builder =
47 linkedRuleBuilder.setBeanProperty().withName( attributes.getValue( "propertyname" ) );
48
49 int propertyNameFromAttributeIndex = attributes.getIndex( "propertynameFromAttribute" );
50 if ( propertyNameFromAttributeIndex >= 0 )
51 {
52 builder.extractPropertyNameFromAttribute( attributes.getValue( propertyNameFromAttributeIndex ) );
53 }
54 }
55
56 }