| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| package org.apache.axis2.jaxws.description; |
| |
| import javax.xml.namespace.QName; |
| import java.lang.reflect.Method; |
| |
| /** |
| * An EndpointInterfaceDescription corresponds to a particular SEI-based Service Implementation. It |
| * can correspond to either either a client to that impl or the actual service impl. |
| * <p/> |
| * The EndpointInterfaceDescription contains information that is relevant only to an SEI-based (aka |
| * Endpoint-based or Java-based) enpdoint; Provider-based endpoint, which are not operation based |
| * and do not have an associated SEI, will not have an an EndpointInterfaceDescription class and |
| * sub-hierachy. |
| * <p/> |
| * <pre> |
| * <b>EndpointInterfaceDescription details</b> |
| * <p/> |
| * CORRESPONDS TO: An SEI (on both Client and Server) |
| * <p/> |
| * AXIS2 DELEGATE: none |
| * <p/> |
| * CHILDREN: 1..n OperationDescription |
| * <p/> |
| * ANNOTATIONS: |
| * SOAPBinding [181] |
| * <p/> |
| * WSDL ELEMENTS: |
| * portType |
| * <p/> |
| * </pre> |
| */ |
| |
| public interface EndpointInterfaceDescription { |
| |
| /** |
| * The name of a special operation added to EndpointInterfaceDescriptions for provider |
| * endpoints that do not specify WSDL, and therefore do not have specific WSDL operations |
| * created. Note that this is currently only supported for HTTP bindings, not for SOAP bindings. |
| */ |
| public static String JAXWS_NOWSDL_PROVIDER_OPERATION_NAME = "jaxwsNoWSDLProviderOperation"; |
| |
| public abstract EndpointDescription getEndpointDescription(); |
| |
| public abstract String getTargetNamespace(); |
| |
| public abstract OperationDescription getOperation(Method seiMethod); |
| |
| /** |
| * Returns all the operations matching the operation QName associated with this endpoint |
| * description. Note that if the SEI or service implementation (and thus the implicit SEI) |
| * contained JAX-WS client side async operations then they will also be returned. Use |
| * getDispatchableOperations() to return an array of operations that does not include the JAX-WS |
| * client side async operations. |
| * |
| * @param operationQName |
| * @return |
| * @see #getDispatchableOperation(QName operationQName) |
| */ |
| public abstract OperationDescription[] getOperation(QName operationQName); |
| |
| /** |
| * Returns all the dispatchable operations matching the operation QName. A dispatchable |
| * operation is one that is NOT a JAX-WS client-side async method invocation and does NOT |
| * carry an @WebMethod(exclude=true) annotation. |
| * |
| * JAX-WS client-side async methods which have signatures of the following forms are |
| * filtered out of this list: javax.xml.ws.Response<T> |
| * method(...) java.util.concurrent.Future<?> method(..., javax.xml.ws.AsyncHandler<T>) |
| * <p/> |
| * These methods are filtered because a common use case is to use the same SEI on both the |
| * client and service implementation side, generating both the client and service implemntation |
| * code from that SEI. If that SEI happens to contain the client-side-only JAX-WS methods, they |
| * should be ingored on the service implemenation side. To return all the operations, use |
| * getOperation(QName). |
| * |
| * @param operationQName |
| * @return |
| * @see #getOperation(QName operationQName) |
| */ |
| public abstract OperationDescription[] getDispatchableOperation(QName operationQName); |
| public abstract OperationDescription[] getDispatchableOperations(); |
| public abstract OperationDescription getOperation(String operationName); |
| |
| public abstract OperationDescription[] getOperations(); |
| |
| public abstract OperationDescription[] getOperationForJavaMethod(String javaMethodName); |
| |
| public abstract Class getSEIClass(); |
| |
| public abstract QName getPortType(); |
| |
| public abstract javax.jws.soap.SOAPBinding.ParameterStyle getSoapBindingParameterStyle(); |
| |
| public abstract javax.jws.soap.SOAPBinding.Style getSoapBindingStyle(); |
| |
| public abstract javax.jws.soap.SOAPBinding.Use getSoapBindingUse(); |
| |
| } |