View Javadoc

1   /*
2    * Copyright (C) The MetaClass Group. All rights reserved.
3    *
4    * This software is published under the terms of the Spice
5    * Software License version 1.1, a copy of which has been included
6    * with this distribution in the LICENSE.txt file.
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  }