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 }