KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > codehaus > aspectwerkz > joinpoint > impl > MethodSignatureImpl


1 /**************************************************************************************
2  * Copyright (c) Jonas Bonér, Alexandre Vasseur. All rights reserved. *
3  * http://aspectwerkz.codehaus.org *
4  * ---------------------------------------------------------------------------------- *
5  * The software in this package is published under the terms of the LGPL license *
6  * a copy of which has been included with this distribution in the license.txt file. *
7  **************************************************************************************/

8 package org.codehaus.aspectwerkz.joinpoint.impl;
9
10 import org.codehaus.aspectwerkz.annotation.Annotation;
11 import org.codehaus.aspectwerkz.annotation.Annotations;
12 import org.codehaus.aspectwerkz.joinpoint.MethodSignature;
13
14 import java.lang.reflect.Method JavaDoc;
15 import java.util.List JavaDoc;
16
17 /**
18  * Implementation for the method signature.
19  *
20  * @author <a HREF="mailto:jboner@codehaus.org">Jonas Bonér </a>
21  */

22 public class MethodSignatureImpl implements MethodSignature {
23     private final Class JavaDoc m_declaringType;
24
25     private final Method JavaDoc m_method;
26
27     /**
28      * @param declaringType
29      * @param method
30      */

31     public MethodSignatureImpl(final Class JavaDoc declaringType, final Method JavaDoc method) {
32         m_declaringType = declaringType;
33         m_method = method;
34     }
35
36     /**
37      * Returns the method.
38      *
39      * @return the method
40      */

41     public Method JavaDoc getMethod() {
42         return m_method;
43     }
44
45     /**
46      * Returns the declaring class.
47      *
48      * @return the declaring class
49      */

50     public Class JavaDoc getDeclaringType() {
51         return m_declaringType;
52     }
53
54     /**
55      * Returns the modifiers for the signature. <p/>Could be used like this:
56      * <p/>
57      * <pre>
58      * boolean isPublic = java.lang.reflect.Modifier.isPublic(signature.getModifiers());
59      * </pre>
60      *
61      * @return the mofifiers
62      */

63     public int getModifiers() {
64         return m_method.getModifiers();
65     }
66
67     /**
68      * Returns the name (f.e. name of method of field).
69      *
70      * @return
71      */

72     public String JavaDoc getName() {
73         return m_method.getName();
74     }
75
76     /**
77      * Returns the exception types declared by the code block.
78      *
79      * @return the exception types
80      */

81     public Class JavaDoc[] getExceptionTypes() {
82         return m_method.getExceptionTypes();
83     }
84
85     /**
86      * Returns the parameter types.
87      *
88      * @return the parameter types
89      */

90     public Class JavaDoc[] getParameterTypes() {
91         return m_method.getParameterTypes();
92     }
93
94     /**
95      * Returns the return type.
96      *
97      * @return the return type
98      */

99     public Class JavaDoc getReturnType() {
100         return m_method.getReturnType();
101     }
102
103     /**
104      * Return the annotation with a specific name.
105      *
106      * @param annotationName the annotation name
107      * @return the annotation or null
108      */

109     public Annotation getAnnotation(final String JavaDoc annotationName) {
110         return Annotations.getAnnotation(annotationName, m_method);
111     }
112
113     /**
114      * Return a list with the annotations with a specific name.
115      *
116      * @param annotationName the annotation name
117      * @return the annotations in a list (can be empty)
118      */

119     public List JavaDoc getAnnotations(final String JavaDoc annotationName) {
120         return Annotations.getAnnotations(annotationName, m_method);
121     }
122
123     /**
124      * Return all the annotations <p/>Each annotation is wrapped in
125      * {@link org.codehaus.aspectwerkz.annotation.AnnotationInfo}instance.
126      *
127      * @return a list with the annotations
128      */

129     public List JavaDoc getAnnotationInfos() {
130         return Annotations.getAnnotationInfos(m_method);
131     }
132
133     /**
134      * Returns a string representation of the signature.
135      *
136      * @return a string representation
137      */

138     public String JavaDoc toString() {
139         return m_method.toString();
140     }
141 }
Popular Tags