/*******************************************************************************
 * Copyright (c) 2020 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/

//
// Generated By:JAX-WS RI IBM 2.1.1 in JDK 6 (JAXB RI IBM JAXB 2.1.3 in JDK 1.6)
//

package com.ibm.was.wssample.sei.async;

import java.util.concurrent.Future;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.ws.AsyncHandler;
import javax.xml.ws.Response;

import com.ibm.was.wssample.sei.echo.EchoStringInput;
import com.ibm.was.wssample.sei.echo.EchoStringResponse;

@WebService(name = "EchoService12PortType", targetNamespace = "http://com/ibm/was/wssample/sei/echo/")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
@XmlSeeAlso({
              ObjectFactory.class
})
public interface EchoService12PortType {

    /**
     *
     * @param parameter
     * @return
     *         returns javax.xml.ws.Response<com.ibm.was.wssample.async.EchoStringResponse>
     */
    @WebMethod(operationName = "echoOperation", action = "echoOperation")
    public Response<EchoStringResponse> echoOperationAsync(
                                                           @WebParam(name = "echoStringInput", targetNamespace = "http://com/ibm/was/wssample/sei/echo/",
                                                                     partName = "parameter") EchoStringInput parameter);

    /**
     *
     * @param parameter
     * @param asyncHandler
     * @return
     *         returns java.util.concurrent.Future<? extends java.lang.Object>
     */
    @WebMethod(operationName = "echoOperation", action = "echoOperation")
    public Future<?> echoOperationAsync(
                                        @WebParam(name = "echoStringInput", targetNamespace = "http://com/ibm/was/wssample/sei/echo/",
                                                  partName = "parameter") EchoStringInput parameter,
                                        @WebParam(name = "echoOperationResponse", targetNamespace = "", partName = "asyncHandler") AsyncHandler<EchoStringResponse> asyncHandler);

    /**
     *
     * @param parameter
     * @return
     *         returns com.ibm.was.wssample.async.EchoStringResponse
     */
    @WebMethod(action = "echoOperation")
    @WebResult(name = "echoStringResponse", targetNamespace = "http://com/ibm/was/wssample/sei/echo/", partName = "parameter")
    public EchoStringResponse echoOperation(
                                            @WebParam(name = "echoStringInput", targetNamespace = "http://com/ibm/was/wssample/sei/echo/",
                                                      partName = "parameter") EchoStringInput parameter);

}
