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.LinkedRuleBuilder;
23 import org.apache.commons.digester3.binder.RulesBinder;
24 import org.xml.sax.Attributes;
25
26
27
28
29 final class FactoryCreateRule
30 extends AbstractXmlRule
31 {
32
33 public FactoryCreateRule( RulesBinder targetRulesBinder, PatternStack patternStack )
34 {
35 super( targetRulesBinder, patternStack );
36 }
37
38
39
40
41 @Override
42 protected void bindRule( LinkedRuleBuilder linkedRuleBuilder, Attributes attributes )
43 throws Exception
44 {
45 linkedRuleBuilder.factoryCreate()
46 .ofType( attributes.getValue( "classname" ) )
47 .overriddenByAttribute( attributes.getValue( "attrname" ) )
48 .ignoreCreateExceptions( "true".equalsIgnoreCase( attributes.getValue( "ignore-exceptions" ) ) );
49 }
50
51 }