1 package org.apache.commons.digester3.binder;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import static java.lang.String.format;
23
24 import org.apache.commons.digester3.SetPropertyRule;
25
26
27
28
29
30
31 public final class SetPropertyBuilder
32 extends AbstractBackToLinkedRuleBuilder<SetPropertyRule>
33 {
34
35 private final String attributePropertyName;
36
37 private String valueAttributeName;
38
39 SetPropertyBuilder( String keyPattern, String namespaceURI, RulesBinder mainBinder, LinkedRuleBuilder mainBuilder,
40 String attributePropertyName )
41 {
42 super( keyPattern, namespaceURI, mainBinder, mainBuilder );
43 this.attributePropertyName = attributePropertyName;
44 }
45
46
47
48
49
50
51
52 public SetPropertyBuilder extractingValueFromAttribute( String valueAttributeName )
53 {
54 if ( attributePropertyName == null || attributePropertyName.length() == 0 )
55 {
56 reportError( format( "setProperty(\"%s\").extractingValueFromAttribute(String)}", attributePropertyName ),
57 "empty 'valueAttributeName' not allowed" );
58 }
59
60 this.valueAttributeName = valueAttributeName;
61 return this;
62 }
63
64
65
66
67 @Override
68 protected SetPropertyRule createRule()
69 {
70 return new SetPropertyRule( attributePropertyName, valueAttributeName );
71 }
72
73 }