View Javadoc

    1   package org.codehaus.xfire.annotations.backport175;
    2
    3   import java.lang.reflect.Method;
    4
    5   import org.codehaus.backport175.reader.Annotations;
    6   import org.codehaus.xfire.annotations.HandlerChainAnnotation;
    7   import org.codehaus.xfire.annotations.WebAnnotations;
    8   import org.codehaus.xfire.annotations.WebMethodAnnotation;
    9   import org.codehaus.xfire.annotations.WebParamAnnotation;
    10  import org.codehaus.xfire.annotations.WebResultAnnotation;
    11  import org.codehaus.xfire.annotations.WebServiceAnnotation;
    12  import org.codehaus.xfire.annotations.backport175.soap.SOAPBinding;
    13  import org.codehaus.xfire.annotations.soap.SOAPBindingAnnotation;
    14
    15  /***
    16   * Implementation of the {@link WebAnnotations} facade for backport175.
    17   *
    18   * @author Arjen Poutsma
    19   */
    20  public class Backport175WebAnnotations
    21          implements WebAnnotations
    22  {
    23      public boolean hasWebServiceAnnotation(Class aClass)
    24      {
    25          return Annotations.isAnnotationPresent(WebService.class, aClass);
    26      }
    27
    28      public WebServiceAnnotation getWebServiceAnnotation(Class aClass)
    29      {
    30          WebService webService = (WebService) Annotations.getAnnotation(WebService.class, aClass);
    31          WebServiceAnnotation annotation = null;
    32          if (webService != null)
    33          {
    34              annotation = new WebServiceAnnotation();
    35              annotation.setEndpointInterface(webService.endpointInterface());
    36              annotation.setName(webService.name());
    37              annotation.setServiceName(webService.serviceName());
    38              annotation.setTargetNamespace(webService.targetNamespace());
    39          }
    40          return annotation;
    41      }
    42
    43      public boolean hasWebMethodAnnotation(Method method)
    44      {
    45          return Annotations.isAnnotationPresent(WebMethod.class, method);
    46      }
    47
    48      public WebMethodAnnotation getWebMethodAnnotation(Method method)
    49      {
    50          WebMethod webMethod = (WebMethod) Annotations.getAnnotation(WebMethod.class, method);
    51          WebMethodAnnotation annotation = null;
    52          if (webMethod != null)
    53          {
    54              annotation = new WebMethodAnnotation();
    55              annotation.setAction(webMethod.action());
    56              annotation.setOperationName(webMethod.operationName());
    57          }
    58          return annotation;
    59      }
    60
    61      public boolean hasWebResultAnnotation(Method method)
    62      {
    63          return Annotations.isAnnotationPresent(WebResult.class, method);
    64      }
    65
    66      public WebResultAnnotation getWebResultAnnotation(Method method)
    67      {
    68          WebResult webResult = (WebResult) Annotations.getAnnotation(WebResult.class, method);
    69          WebResultAnnotation annotation = null;
    70          if (webResult != null)
    71          {
    72              annotation = new WebResultAnnotation();
    73              annotation.setName(webResult.name());
    74              annotation.setTargetNamespace(webResult.targetNameSpace());
    75          }
    76          return annotation;
    77      }
    78
    79      public boolean hasWebParamAnnotation(Method method, int parameter)
    80      {
    81          // Unfortunately, backport175 does not support method parameter annotations as of yet.
    82          return false;
    83      }
    84
    85      public WebParamAnnotation getWebParamAnnotation(Method method, int parameter)
    86      {
    87          // Unfortunately, backport175 does not support method parameter annotations as of yet.
    88          return null;
    89      }
    90
    91      public boolean hasOnewayAnnotation(Method method)
    92      {
    93          return Annotations.isAnnotationPresent(Oneway.class, method);
    94      }
    95
    96      public boolean hasSOAPBindingAnnotation(Class aClass)
    97      {
    98          return Annotations.isAnnotationPresent(SOAPBinding.class, aClass);
    99      }
    100
    101     public SOAPBindingAnnotation getSOAPBindingAnnotation(Class aClass)
    102     {
    103         SOAPBinding soapBinding = (SOAPBinding) Annotations.getAnnotation(SOAPBinding.class, aClass);
    104         SOAPBindingAnnotation annotation = null;
    105         if (soapBinding != null)
    106         {
    107             annotation = new SOAPBindingAnnotation();
    108             annotation.setStyle(soapBinding.style());
    109             annotation.setUse(soapBinding.use());
    110             annotation.setParameterStyle(soapBinding.parameterStyle());
    111         }
    112         return annotation;
    113     }
    114
    115     public boolean hasHandlerChainAnnotation(Class aClass)
    116     {
    117         return Annotations.isAnnotationPresent(HandlerChain.class, aClass);
    118     }
    119
    120     public HandlerChainAnnotation getHandlerChainAnnotation(Class aClass)
    121     {
    122         HandlerChain handlerChain = (HandlerChain) Annotations.getAnnotation(HandlerChain.class, aClass);
    123         HandlerChainAnnotation annotation = null;
    124         if (handlerChain != null)
    125         {
    126             annotation = new HandlerChainAnnotation(handlerChain.file(), handlerChain.name());
    127         }
    128         return annotation;
    129     }
    130 }