1 package org.codehaus.xfire.annotations;
2
3 import java.lang.reflect.Method;
4
5 import org.codehaus.xfire.annotations.soap.SOAPBindingAnnotation;
6
7 /***
8 * Defines the contract for accessing annotations at runtime. This is a facade, which can accommodate any annotations
9 * API such as Commons Attributes, backport175, Java 5, or any other annotations implementation.
10 *
11 * @author Arjen Poutsma
12 */
13 public interface WebAnnotations
14 {
15 /***
16 * Tests whether the given class has the {@link org.codehaus.xfire.annotations.WebServiceAnnotation} annotation.
17 *
18 * @param aClass the class.
19 * @return <code>true</code> if present; <code>false</code> otherwise.
20 */
21 boolean hasWebServiceAnnotation(Class aClass);
22
23 /***
24 * Gets the {@link org.codehaus.xfire.annotations.WebServiceAnnotation} annotation from the given class, if found.
25 *
26 * @param aClass the class.
27 * @return the annotation; or <code>null</code> if it could not be found.
28 */
29 WebServiceAnnotation getWebServiceAnnotation(Class aClass);
30
31 /***
32 * Tests whether the given method has the {@link org.codehaus.xfire.annotations.WebMethodAnnotation} annotation.
33 *
34 * @param method the method.
35 * @return <code>true</code> if present; <code>false</code> otherwise.
36 */
37 boolean hasWebMethodAnnotation(Method method);
38
39 /***
40 * Gets the {@link org.codehaus.xfire.annotations.WebServiceAnnotation} annotation from the given class, if found.
41 *
42 * @param method the method.
43 * @return the annotation; or <code>null</code> if it could not be found.
44 */
45 WebMethodAnnotation getWebMethodAnnotation(Method method);
46
47 /***
48 * Tests whether the given method has the {@link org.codehaus.xfire.annotations.WebResultAnnotation} annotation.
49 *
50 * @param method the method.
51 * @return <code>true</code> if present; <code>false</code> otherwise.
52 */
53 boolean hasWebResultAnnotation(Method method);
54
55 /***
56 * Gets the {@link org.codehaus.xfire.annotations.WebResultAnnotation} annotation from the given method, if found.
57 *
58 * @param method the method.
59 * @return the annotation; or <code>null</code> if it could not be found.
60 */
61 WebResultAnnotation getWebResultAnnotation(Method method);
62
63 /***
64 * Tests whether the indicated parameter of the given method has the {@link WebResultAnnotation} annotation.
65 *
66 * @param method the method.
67 * @param parameter the index of the parameter in the method's parameter list.
68 * @return <code>true> if present; <code>false</code> otherwise.
69 */
70 boolean hasWebParamAnnotation(Method method, int parameter);
71
72 /***
73 * Gets the {@link WebParamAnnotation} annotation from the indicated parameter of the given method, if found.
74 *
75 * @param method the method.
76 * @param parameter the parameter index.
77 * @return the annotation; or <code>null</code> if it could not be found.
78 */
79 WebParamAnnotation getWebParamAnnotation(Method method, int parameter);
80
81 /***
82 * Tests whether the given method has the one way annotation.
83 *
84 * @param method the method.
85 * @return <code>true</code> if present; <code>false</code> otherwise.
86 */
87 boolean hasOnewayAnnotation(Method method);
88
89 /***
90 * Tests whether the given class has the {@link SOAPBindingAnnotation} annotation.
91 *
92 * @param aClass the class.
93 * @return <code>true> if present; <code>false</code> otherwise.
94 */
95 boolean hasSOAPBindingAnnotation(Class aClass);
96
97 /***
98 * Gets the {@link SOAPBindingAnnotation} annotation from the given class, if found.
99 *
100 * @param aClass the class.
101 * @return the annotation; or <code>null</code> if it could not be found.
102 */
103 SOAPBindingAnnotation getSOAPBindingAnnotation(Class aClass);
104
105 /***
106 * Tests whether the given class has the {@link HandlerChainAnnotation} annotation.
107 *
108 * @param aClass the class.
109 * @return <code>true> if present; <code>false</code> otherwise.
110 */
111 boolean hasHandlerChainAnnotation(Class aClass);
112
113 /***
114 * Gets the {@link HandlerChainAnnotation} annotation from the given class, if found.
115 *
116 * @param aClass the class.
117 * @return the annotation; or <code>null</code> if it could not be found.
118 */
119 HandlerChainAnnotation getHandlerChainAnnotation(Class aClass);
120
121 }