View Javadoc

    1   package org.codehaus.xfire.annotations;
    2
    3
    4   /***
    5    * Represents a common representation of a web parameter annotation. Customizes the mapping of an individual parameter
    6    * to a Web Service message part and XML element.
    7    *
    8    * @author Arjen Poutsma
    9    */
    10  public class WebParamAnnotation
    11  {
    12      private String name = "";
    13      private String targetNamespace = "";
    14      private boolean header = false;
    15      private int mode = MODE_IN;
    16
    17      /***
    18       * Constant used to specify that a parameter flows inwards. This is the default mode.
    19       */
    20      public final static int MODE_IN = 0;
    21      /***
    22       * Constant used to specify that a parameter flows both in and outwards.
    23       */
    24      public final static int MODE_INOUT = 1;
    25      /***
    26       * Constant used to specify that a parameter flows outwards.
    27       */
    28      public final static int MODE_OUT = 2;
    29
    30      /***
    31       * Returns the name of the parameter as it appears in the WSDL. For RPC bindings, this is name of the wsdl:part
    32       * representing  the parameter. For document bindings, this is the local name of the XML element representing the
    33       * parameter.  Defaults to the name of the parameter as it appears in the argument list.
    34       *
    35       * @return the name of the parameter as it appears in the WSDL.
    36       */
    37      public String getName()
    38      {
    39          return name;
    40      }
    41
    42      /***
    43       * Sets the name of the parameter as it appears in the WSDL. For RPC bindings, this is name of the wsdl:part
    44       * representing  the parameter. For document bindings, this is the local name of the XML element representing the
    45       * parameter.  Defaults to the name of the parameter as it appears in the argument list.
    46       *
    47       * @param name the new name of the parameter as it appears in the WSDL.
    48       */
    49      public void setName(String name)
    50      {
    51          this.name = name;
    52      }
    53
    54      /***
    55       * Returns the XML namespace for the parameter. Only used with document bindings, where the parameter maps to an XML
    56       * element. Defaults to the targetNamespace for the Web Service.
    57       *
    58       * @return the XML namespace for the parameter.
    59       */
    60      public String getTargetNamespace()
    61      {
    62          return targetNamespace;
    63      }
    64
    65      /***
    66       * Sets the XML namespace for the parameter. Only used with document bindings, where the parameter maps to an XML
    67       * element. Defaults to the targetNamespace for the Web Service.
    68       *
    69       * @param targetNamespace the XML namespace for the parameter.
    70       */
    71      public void setTargetNamespace(String targetNamespace)
    72      {
    73          this.targetNamespace = targetNamespace;
    74      }
    75
    76      /***
    77       * Returns the direction in which the parameter is flowing. One of {@link #MODE_IN}, {@link #MODE_OUT}, or {@link
    78       * #MODE_INOUT}.
    79       *
    80       * @return the parameter mode.
    81       */
    82      public int getMode()
    83      {
    84          return mode;
    85      }
    86
    87      /***
    88       * Sets the direction in which the parameter is flowing. The given parameter must be  of {@link #MODE_IN}, {@link
    89       * #MODE_OUT}, or {@link #MODE_INOUT}.
    90       *
    91       * @param mode the new parameter mode.
    92       * @throws IllegalArgumentException if <code>mode</code> is not a valid mode.
    93       */
    94      public void setMode(int mode)
    95      {
    96          if (mode == WebParamAnnotation.MODE_IN || mode == WebParamAnnotation.MODE_INOUT ||
    97                  mode == WebParamAnnotation.MODE_OUT)
    98          {
    99              this.mode = mode;
    100         }
    101         else
    102         {
    103             throw new IllegalArgumentException("Invalid mode: " + mode);
    104         }
    105     }
    106
    107     /***
    108      * If <code>true</code>, the parameter is pulled from a message header rather then the message body.
    109      *
    110      * @return <code>true</code> if a header; <code>false</code> otherwise.
    111      */
    112     public boolean isHeader()
    113     {
    114         return header;
    115     }
    116
    117     /***
    118      * Determines whether this parameter is a header.
    119      *
    120      * @param header <code>true</code> if a header; <code>false</code> otherwise.
    121      */
    122     public void setHeader(boolean header)
    123     {
    124         this.header = header;
    125     }
    126 }