
/*
 * 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.proxy.gorilla_dlw.sei;

import org.apache.axis2.jaxws.proxy.gorilla_dlw.data.Fruit;

import javax.jws.Oneway;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebParam.Mode;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.datatype.Duration;
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.ws.Holder;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;
import java.util.List;

/**
 * This class was generated by the JAXWS SI.
 * JAX-WS RI 2.0_01-b15-fcs
 * Generated source version: 2.0
 * 
 */
@WebService(name = "GorillaInterface", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw")
@XmlSeeAlso(org.test.stock2.GetPrice.class)  // Test see also processing
public interface GorillaInterface {


    /**
     * 
     * @param data
     * @return
     *     returns java.lang.String
     * @throws AssertFault
     */
    @WebMethod
    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
    @RequestWrapper(localName = "echoString", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoString")
    @ResponseWrapper(localName = "echoStringResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringResponse")
    public String echoString(
        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        String data)
        throws AssertFault
    ;

    /**
     * 
     * @param data
     * @param inout
     * @throws AssertFault
     */
    @WebMethod
    @RequestWrapper(localName = "echoString2", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoString2")
    @ResponseWrapper(localName = "echoString2Response", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoString2Response")
    public void echoString2(
        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        String data,
        @WebParam(name = "inout", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", mode = Mode.INOUT)
        Holder<String> inout)
        throws AssertFault
    ;

    /**
     * 
     * @param data
     * @return
     *     returns java.lang.Integer
     * @throws AssertFault
     */
    @WebMethod
    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
    @RequestWrapper(localName = "echoInt", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoInt")
    @ResponseWrapper(localName = "echoIntResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoIntResponse")
    public Integer echoInt(
        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        Integer data)
        throws AssertFault
    ;

    /**
     * 
     * @param data
     * @return
     *     returns org.apache.axis2.jaxws.proxy.gorilla_dlw.data.Fruit
     * @throws AssertFault
     */
    @WebMethod
    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
    @RequestWrapper(localName = "echoEnum", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoEnum")
    @ResponseWrapper(localName = "echoEnumResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoEnumResponse")
    public Fruit echoEnum(
        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        Fruit data)
        throws AssertFault
    ;

    /**
     * 
     * @param data
     * @return
     *     returns java.lang.Object
     * @throws AssertFault
     */
    @WebMethod
    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
    @RequestWrapper(localName = "echoAnyType", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoAnyType")
    @ResponseWrapper(localName = "echoAnyTypeResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoAnyTypeResponse")
    public Object echoAnyType(
        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        Object data)
        throws AssertFault
    ;

    /**
     * 
     * @param data
     * @return
     *     returns java.util.List<java.util.List<java.lang.String>>
     * @throws AssertFault
     */
    @WebMethod
    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
    @RequestWrapper(localName = "echoStringList", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringList")
    @ResponseWrapper(localName = "echoStringListResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringListResponse")
    public List<String> echoStringList(
        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        List<String> data)
        throws AssertFault
    ;

    /**
     * 
     * @param data
     * @return
     *     returns String[]
     * @throws AssertFault
     */
    // NOTE: The return and param are manually changed from List<String> to String[]
    @WebMethod
    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
    @RequestWrapper(localName = "echoStringListAlt", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringListAlt")
    @ResponseWrapper(localName = "echoStringListAltResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringListAltResponse")
    public String[] echoStringListAlt(
        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        String[] data)
        throws AssertFault
    ;

    /**
     * 
     * @param data
     * @return
     *     returns java.util.List<java.util.List<java.lang.String>>
     * @throws AssertFault
     */
    @WebMethod
    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
    @RequestWrapper(localName = "echoStringListArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringListArray")
    @ResponseWrapper(localName = "echoStringListArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringListArrayResponse")
    public List<List<String>> echoStringListArray(
        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        List<List<String>> data)
        throws AssertFault
    ;

    /**
     * 
     * @param data
     * @return
     *     returns java.util.List<java.lang.String>
     * @throws AssertFault
     */
    @WebMethod
    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
    @RequestWrapper(localName = "echoStringArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringArray")
    @ResponseWrapper(localName = "echoStringArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringArrayResponse")
    public List<String> echoStringArray(
        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        List<String> data)
        throws AssertFault
    ;
    
    /**
     * 
     * @param data
     * @return
     *     returns String[]
     * @throws AssertFault
     */
    //  NOTE: The return and param are manually changed from List<String> to String[]
    @WebMethod
    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
    @RequestWrapper(localName = "echoStringArrayAlt", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringArrayAlt")
    @ResponseWrapper(localName = "echoStringArrayAltResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringArrayAltResponse")
    public String[] echoStringArrayAlt(
        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        String[] data)
        throws AssertFault
    ;

    /**
     * 
     * @param data
     * @return
     *     returns java.util.List<java.lang.String>
     * @throws AssertFault
     */
    @WebMethod
    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
    @RequestWrapper(localName = "echoIndexedStringArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoIndexedStringArray")
    @ResponseWrapper(localName = "echoIndexedStringArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoIndexedStringArrayResponse")
    public List<String> echoIndexedStringArray(
        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        List<String> data)
        throws AssertFault
    ;
    

    /**
     * 
     * @param data
     * @param inout
     * @throws AssertFault
     */
    @WebMethod
    @RequestWrapper(localName = "echoString2Array", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoString2Array")
    @ResponseWrapper(localName = "echoString2ArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoString2ArrayResponse")
    public void echoString2Array(
        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        List<String> data,
        @WebParam(name = "inout", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", mode = Mode.INOUT)
        Holder<List<String>> inout)
        throws AssertFault
    ;

    /**
     * 
     * @param data
     * @return
     *     returns java.util.List<java.lang.Integer>
     * @throws AssertFault
     */
    @WebMethod
    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
    @RequestWrapper(localName = "echoIntArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoIntArray")
    @ResponseWrapper(localName = "echoIntArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoIntArrayResponse")
    public List<Integer> echoIntArray(
        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        List<Integer> data)
        throws AssertFault
    ;

    /**
     * 
     * @param data
     * @return
     *     returns java.util.List<org.apache.axis2.jaxws.proxy.gorilla_dlw.data.Fruit>
     * @throws AssertFault
     */
    @WebMethod
    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
    @RequestWrapper(localName = "echoEnumArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoEnumArray")
    @ResponseWrapper(localName = "echoEnumArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoEnumArrayResponse")
    public List<Fruit> echoEnumArray(
        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        List<Fruit> data)
        throws AssertFault
    ;

    /**
     * 
     * @param data
     * @return
     *     returns java.util.List<java.lang.Object>
     * @throws AssertFault
     */
    @WebMethod
    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
    @RequestWrapper(localName = "echoAnyTypeArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoAnyTypeArray")
    @ResponseWrapper(localName = "echoAnyTypeArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoAnyTypeArrayResponse")
    public List<Object> echoAnyTypeArray(
        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        List<Object> data)
        throws AssertFault
    ;
    /**
     * 
     * @param requestedTerminationTime
     * @param requestedLifetimeDuration
     * @return
     *     returns javax.xml.datatype.XMLGregorianCalendar
     */
    @WebMethod
    @WebResult(name = "response", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
    @RequestWrapper(localName = "echoDate", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoDate")
    @ResponseWrapper(localName = "echoDateResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoDateResponse")
    public XMLGregorianCalendar echoDate(
        @WebParam(name = "RequestedTerminationTime", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        XMLGregorianCalendar requestedTerminationTime,
        @WebParam(name = "RequestedLifetimeDuration", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        Duration requestedLifetimeDuration);

    /**
     * 
     * @param request
     */
    @WebMethod
    @Oneway
    @RequestWrapper(localName = "echoPolymorphicDate", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoPolymorphicDate")
    public void echoPolymorphicDate(
        @WebParam(name = "request", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
        XMLGregorianCalendar request);
    
    /**
     * The following non-doc method is not invoked.  It is only present to test the 
     * generic reflection code. 
     */
    @WebMethod
    public List<org.test.stock1.GetPrice> sampleMethod();
}
