1
2
3
4
5
6
7
8 package org.codehaus.metaclass.tools.qdox;
9
10 import com.thoughtworks.qdox.model.JavaClass;
11 import com.thoughtworks.qdox.model.JavaField;
12 import com.thoughtworks.qdox.model.JavaMethod;
13 import org.codehaus.metaclass.model.Attribute;
14
15 /***
16 * The interface via which attributes are passed before
17 * becoming part of the model. The Interception occurs
18 * during the building of the {@link org.codehaus.metaclass.model.ClassDescriptor}
19 * object from the from the {@link JavaClass} object as the
20 * interceptor may require the context of the original model
21 * during processing.
22 *
23 * @author Peter Donald
24 * @version $Revision: 1.2 $ $Date: 2003/11/27 08:08:04 $
25 */
26 public interface QDoxAttributeInterceptor
27 {
28 /***
29 * Process a single attribute at the Class level.
30 * The implementation may return a new attribute
31 * instance, the old attribute instance or null to
32 * ignore attribute.
33 *
34 * @param clazz the corresponding JavaClass instance
35 * @param attribute the attribute
36 * @return the resulting attribute or null
37 */
38 Attribute processClassAttribute( JavaClass clazz, Attribute attribute );
39
40 /***
41 * Process a single attribute at the Field level.
42 * The implementation may return a new attribute
43 * instance, the old attribute instance or null to
44 * ignore attribute.
45 *
46 * @param field the corresponding JavaField instance
47 * @param attribute the attribute
48 * @return the resulting attribute or null
49 */
50 Attribute processFieldAttribute( JavaField field, Attribute attribute );
51
52 /***
53 * Process a single attribute at the Method level.
54 * The implementation may return a new attribute
55 * instance, the old attribute instance or null to
56 * ignore attribute.
57 *
58 * @param method the corresponding JavaMethod instance
59 * @param attribute the attribute
60 * @return the resulting attribute or null
61 */
62 Attribute processMethodAttribute( JavaMethod method, Attribute attribute );
63
64 /***
65 * Process the set of attributes for a specific Class.
66 * The implementation must return an array of attributes
67 * with no null entrys.
68 *
69 * @param clazz the corresponding JavaClass instance
70 * @param attributes the attributes
71 * @return the resulting attribute array
72 */
73 Attribute[] processClassAttributes( JavaClass clazz, Attribute[] attributes );
74
75 /***
76 * Process the set of attributes for a specific Field.
77 * The implementation must return an array of attributes
78 * with no null entrys.
79 *
80 * @param field the corresponding JavaField instance
81 * @param attributes the attributes
82 * @return the resulting attribute array
83 */
84 Attribute[] processFieldAttributes( JavaField field, Attribute[] attributes );
85
86 /***
87 * Process the set of attributes for a specific Method.
88 * The implementation must return an array of attributes
89 * with no null entrys.
90 *
91 * @param method the corresponding JavaMethod instance
92 * @param attributes the attributes
93 * @return the resulting attribute array
94 */
95 Attribute[] processMethodAttributes( JavaMethod method, Attribute[] attributes );
96 }