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 java.util.HashMap;
23 import java.util.Map;
24
25 import org.apache.commons.digester3.SetNestedPropertiesRule;
26
27
28
29
30
31
32 public final class NestedPropertiesBuilder
33 extends AbstractBackToLinkedRuleBuilder<SetNestedPropertiesRule>
34 {
35
36 private final Map<String, String> elementNames = new HashMap<String, String>();
37
38 private boolean trimData = true;
39
40 private boolean allowUnknownChildElements = false;
41
42 NestedPropertiesBuilder( String keyPattern, String namespaceURI, RulesBinder mainBinder,
43 LinkedRuleBuilder mainBuilder )
44 {
45 super( keyPattern, namespaceURI, mainBinder, mainBuilder );
46 }
47
48
49
50
51
52
53
54 public NestedPropertiesBuilder ignoreElement( String elementName )
55 {
56 if ( elementName == null )
57 {
58 reportError( "setNestedProperties().ignoreElement( String )", "empty 'elementName' not allowed" );
59 }
60 return addAlias( elementName ).forProperty( null );
61 }
62
63
64
65
66
67
68
69
70
71 @Deprecated
72 public NestedPropertiesBuilder addAlias( String elementName, String propertyName )
73 {
74 return addAlias( elementName ).forProperty( propertyName );
75 }
76
77
78
79
80
81
82
83
84 public AddAliasBuilder<NestedPropertiesBuilder> addAlias( String elementName )
85 {
86 if ( elementName == null )
87 {
88 reportError( "setProperties().addAlias( String )", "empty 'elementName' not allowed" );
89 }
90 return new AddAliasBuilder<NestedPropertiesBuilder>( this, elementNames, elementName );
91 }
92
93
94
95
96
97
98
99
100
101
102 public NestedPropertiesBuilder trimData( boolean trimData )
103 {
104 this.trimData = trimData;
105 return this;
106 }
107
108
109
110
111
112
113
114
115
116 public NestedPropertiesBuilder allowUnknownChildElements( boolean allowUnknownChildElements )
117 {
118 this.allowUnknownChildElements = allowUnknownChildElements;
119 return this;
120 }
121
122
123
124
125 @Override
126 protected SetNestedPropertiesRule createRule()
127 {
128 SetNestedPropertiesRule rule = new SetNestedPropertiesRule( elementNames );
129 rule.setTrimData( trimData );
130 rule.setAllowUnknownChildElements( allowUnknownChildElements );
131 return rule;
132 }
133
134 }