1 package org.apache.commons.digester3.annotations.rules;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.lang.annotation.Documented;
23 import java.lang.annotation.ElementType;
24 import java.lang.annotation.Retention;
25 import java.lang.annotation.RetentionPolicy;
26 import java.lang.annotation.Target;
27
28 import org.apache.commons.digester3.AbstractObjectCreationFactory;
29 import org.apache.commons.digester3.FactoryCreateRule;
30 import org.apache.commons.digester3.annotations.DigesterRule;
31 import org.apache.commons.digester3.annotations.DigesterRuleList;
32 import org.apache.commons.digester3.annotations.handlers.FactoryCreateHandler;
33 import org.xml.sax.Attributes;
34
35
36
37
38
39
40
41 @Documented
42 @Retention( RetentionPolicy.RUNTIME )
43 @Target( ElementType.TYPE )
44 @CreationRule
45 @DigesterRule( reflectsRule = FactoryCreateRule.class, handledBy = FactoryCreateHandler.class )
46 public @interface FactoryCreate
47 {
48
49
50
51
52 Class<? extends AbstractObjectCreationFactory<?>> factoryClass() default DefaultObjectCreationFactory.class;
53
54
55
56
57
58
59 String attributeName() default "";
60
61
62
63
64 String pattern();
65
66
67
68
69
70
71 String namespaceURI() default "";
72
73
74
75
76 boolean ignoreCreateExceptions() default false;
77
78
79
80
81
82
83 @Documented
84 @Retention( RetentionPolicy.RUNTIME )
85 @Target( ElementType.TYPE )
86 @DigesterRuleList
87 @interface List
88 {
89 FactoryCreate[] value();
90 }
91
92
93
94
95 public static final class DefaultObjectCreationFactory
96 extends AbstractObjectCreationFactory<Object>
97 {
98
99
100
101
102 @Override
103 public Object createObject( Attributes attributes )
104 throws Exception
105 {
106
107 return null;
108 }
109
110 }
111
112 }