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

Thu, 31 Aug 2017 15:18:52 +0800

author
aoqi
date
Thu, 31 Aug 2017 15:18:52 +0800
changeset 637
9c07ef4934dd
parent 368
0989ad8c0860
parent 0
373ffda63c9a
permissions
-rw-r--r--

merge

     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.istack.internal.NotNull;
    29 import com.sun.xml.internal.bind.api.Bridge;
    30 import com.sun.xml.internal.bind.api.JAXBRIContext;
    31 import com.sun.xml.internal.bind.api.TypeReference;
    32 import com.sun.xml.internal.ws.api.model.wsdl.WSDLPort;
    33 import com.sun.xml.internal.ws.util.Pool;
    35 import javax.xml.bind.JAXBContext;
    36 import javax.xml.namespace.QName;
    37 import javax.xml.ws.Dispatch;
    38 import javax.xml.ws.Provider;
    39 import java.lang.reflect.Method;
    40 import java.util.Collection;
    42 /**
    43  * Represents abstraction of SEI.
    44  *
    45  * <p>
    46  * This interface would be used to access which Java concepts correspond to
    47  * which WSDL concepts, such as which <code>wsdl:port</code> corresponds to
    48  * a SEI, or which <code>wsdl:operation</code> corresponds to {@link JavaMethod}.
    49  *
    50  * <P>
    51  * It also retains information about the databinding done for a SEI;
    52  * such as {@link JAXBRIContext} and {@link Bridge}.
    53  *
    54  * <p>
    55  * This model is constructed only when there is a Java SEI. Therefore it's
    56  * not available with {@link Dispatch} or {@link Provider}. Technologies that
    57  * need to work regardless of such surface API difference shall not be using
    58  * this model.
    59  *
    60  * @author Vivek Pandey
    61  */
    62 public interface SEIModel {
    63     Pool.Marshaller getMarshallerPool();
    65     /**
    66      * JAXBContext that will be used to marshall/unmarshall the java classes found in the SEI.
    67      *
    68      * @return the <code>{@link JAXBRIContext}</code>
    69      * @deprecated Why do you need this?
    70      */
    71     JAXBContext getJAXBContext();
    73     /**
    74      * Get the Bridge associated with the {@link TypeReference}
    75      *
    76      * @param type
    77      * @return the <code>{@link Bridge}</code> for the <code>type</code>
    78      */
    79 //    Bridge getBridge(TypeReference type);
    81     /**
    82      * Its a known fault if the exception thrown by {@link Method} is annotated with the
    83      * {@link javax.xml.ws.WebFault#name()} thas equal to the name passed as parameter.
    84      *
    85      * @param name   is the qualified name of fault detail element as specified by wsdl:fault@element value.
    86      * @param method is the Java {@link Method}
    87      * @return true if <code>name</code> is the name
    88      *         of a known fault name for the <code>method</code>
    89      */
    90 //    boolean isKnownFault(QName name, Method method);
    92     /**
    93      * Checks if the {@link JavaMethod} for the {@link Method} knowns the exception class.
    94      *
    95      * @param m  {@link Method} to pickup the right {@link JavaMethod} model
    96      * @param ex exception class
    97      * @return true if <code>ex</code> is a Checked Exception
    98      *         for <code>m</code>
    99      */
   100 //    boolean isCheckedException(Method m, Class ex);
   102     /**
   103      * This method will be useful to get the {@link JavaMethod} corrrespondiong to
   104      * a {@link Method} - such as on the client side.
   105      *
   106      * @param method for which {@link JavaMethod} is asked for
   107      * @return the {@link JavaMethod} representing the <code>method</code>
   108      */
   109     JavaMethod getJavaMethod(Method method);
   111     /**
   112      * Gives a {@link JavaMethod} for a given {@link QName}. The {@link QName} will
   113      * be equivalent to the SOAP Body or Header block or can simply be the name of an
   114      * infoset that corresponds to the payload.
   115      * @param name
   116      * @return the <code>JavaMethod</code> associated with the
   117      *         operation named name
   118      */
   119     public JavaMethod getJavaMethod(QName name);
   121     /**
   122      * Gives the JavaMethod associated with the wsdl operation
   123      * @param operationName QName of the wsdl operation
   124      * @return
   125      */
   126     public JavaMethod getJavaMethodForWsdlOperation(QName operationName);
   129     /**
   130      * Gives all the {@link JavaMethod} for a wsdl:port for which this {@link SEIModel} is
   131      * created.
   132      *
   133      * @return a {@link Collection} of {@link JavaMethod}
   134      *         associated with the {@link SEIModel}
   135      */
   136     Collection<? extends JavaMethod> getJavaMethods();
   138     /**
   139      * Location of the WSDL that defines the port associated with the {@link SEIModel}
   140      *
   141      * @return wsdl location uri - always non-null
   142      */
   143     @NotNull String getWSDLLocation();
   145     /**
   146      * wsdl:service qualified name for the port associated with the {@link SEIModel}
   147      *
   148      * @return wsdl:service@name value - always non-null
   149      */
   150     @NotNull QName getServiceQName();
   152     /**
   153      * Gets the {@link WSDLPort} that represents the port that this SEI binds to.
   154      */
   155     @NotNull WSDLPort getPort();
   157     /**
   158      * Value of the wsdl:port name associated with the {@link SEIModel}
   159      *
   160      * @return wsdl:service/wsdl:port@name value, always non-null
   161      */
   162     @NotNull QName getPortName();
   164     /**
   165      * Value of wsdl:portType bound to the port associated with the {@link SEIModel}
   166      *
   167      * @return
   168      */
   169     @NotNull QName getPortTypeName();
   171     /**
   172      *  Gives the wsdl:binding@name value
   173      */
   174     @NotNull QName getBoundPortTypeName();
   176     /**
   177      * Namespace of the wsd;:port associated with the {@link SEIModel}
   178      */
   179     @NotNull String getTargetNamespace();
   180 }

mercurial