src/share/jaxws_classes/com/sun/xml/internal/ws/api/model/Parameter.java

Tue, 09 Apr 2013 14:51:13 +0100

author
alanb
date
Tue, 09 Apr 2013 14:51:13 +0100
changeset 368
0989ad8c0860
parent 286
f50545b5e2f1
child 637
9c07ef4934dd
permissions
-rw-r--r--

8010393: Update JAX-WS RI to 2.2.9-b12941
Reviewed-by: alanb, erikj
Contributed-by: miroslav.kos@oracle.com, martin.grebac@oracle.com

     1 /*
     2  * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     8  * particular file as subject to the "Classpath" exception as provided
     9  * by Oracle in the LICENSE file that accompanied this code.
    10  *
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14  * version 2 for more details (a copy is included in the LICENSE file that
    15  * accompanied this code).
    16  *
    17  * You should have received a copy of the GNU General Public License version
    18  * 2 along with this work; if not, write to the Free Software Foundation,
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20  *
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22  * or visit www.oracle.com if you need additional information or have any
    23  * questions.
    24  */
    26 package com.sun.xml.internal.ws.api.model;
    28 import com.sun.xml.internal.bind.api.Bridge;
    30 import javax.xml.namespace.QName;
    31 import javax.xml.ws.Holder;
    32 import javax.jws.WebParam;
    33 import javax.jws.WebParam.Mode;
    35 /**
    36  * Runtime Parameter that abstracts the annotated java parameter
    37  * <p/>
    38  * <p/>
    39  * A parameter may be bound to a header, a body, or an attachment.
    40  * Note that when it's bound to a body, it's bound to a body,
    41  * it binds to the whole payload.
    42  * <p/>
    43  * <p/>
    44  * Sometimes multiple Java parameters are packed into the payload,
    45  * in which case the subclass {@link com.sun.xml.internal.ws.model.WrapperParameter} is used.
    46  *
    47  * @author Vivek Pandey
    48  */
    49 public interface Parameter {
    50     /**
    51      * Gets the root {@link SEIModel} that owns this model.
    52      */
    53     SEIModel getOwner();
    55     /**
    56      * Gets the parent {@link JavaMethod} to which this parameter belongs.
    57      */
    58     JavaMethod getParent();
    60     /**
    61      * @return Returns the {@link QName} of the payload/infoset of a SOAP body or header.
    62      */
    63     QName getName();
    65     /**
    66      * Gives the {@link Bridge} associated with this Parameter
    67      * @deprecated
    68      */
    69     Bridge getBridge();
    71     /**
    72      * @return Returns the mode, such as IN, OUT or INOUT.
    73      */
    74     Mode getMode();
    76     /**
    77      * Position of a parameter in the method signature. It would be -1 if the parameter is a return.
    78      *
    79      * @return Returns the index.
    80      */
    81     int getIndex();
    83     /**
    84      * @return true if <tt>this instanceof {@link com.sun.xml.internal.ws.model.WrapperParameter}</tt>.
    85      */
    86     boolean isWrapperStyle();
    88     /**
    89      * Returns true if this parameter is bound to the return value from the {@link JavaMethod}.
    90      *
    91      * <p>
    92      * Just the convenience method for <tt>getIndex()==-1</tt>
    93      */
    94     boolean isReturnValue();
    96     /**
    97      * Returns the binding associated with the parameter. For IN parameter the binding will be
    98      * same as {@link #getInBinding()}, for OUT parameter the binding will be same as
    99      * {@link #getOutBinding()} and for INOUT parameter the binding will be same as calling
   100      * {@link #getInBinding()}
   101      *
   102      * @return the Binding for this Parameter. Returns {@link ParameterBinding#BODY} by default.
   103      */
   104     ParameterBinding getBinding();
   106     /**
   107      * Returns the {@link ParameterBinding} associated with the IN mode
   108      *
   109      * @return the binding
   110      */
   111     ParameterBinding getInBinding();
   113     /**
   114      * Returns the {@link ParameterBinding} associated with the OUT mode
   115      *
   116      * @return the binding
   117      */
   118     ParameterBinding getOutBinding();
   120     /**
   121      * @return true if the {@link Mode} associated with the parameter is {@link Mode#IN} and false otherwise.
   122      */
   123     boolean isIN();
   125     /**
   126      * @return true if the {@link Mode} associated with the parameter is {@link Mode#OUT} and false otherwise.
   127      */
   128     boolean isOUT();
   130     /**
   131      * @return true if the {@link Mode} associated with the parameter is {@link Mode#INOUT} and false otherwise.
   132      */
   133     boolean isINOUT();
   135     /**
   136      * If true, this parameter maps to the return value of a method invocation.
   137      *
   138      * <p>
   139      * {@link JavaMethod#getResponseParameters()} is guaranteed to have
   140      * at most one such {@link Parameter}. Note that there coule be none,
   141      * in which case the method returns <tt>void</tt>.
   142      *
   143      * <p>
   144      * Other response parameters are bound to {@link Holder}.
   145      */
   146     boolean isResponse();
   148     /**
   149      * Gets the holder value if applicable. To be called for inbound client side
   150      * message.
   151      *
   152      * @param obj
   153      * @return the holder value if applicable.
   154      */
   155     Object getHolderValue(Object obj);
   157     /**
   158      * Gives the wsdl:part@name value
   159      *
   160      * @return Value of {@link WebParam#partName()} annotation if present,
   161      *         otherwise its the localname of the infoset associated with the parameter
   162      */
   163     String getPartName();
   164 }

mercurial