/**
 * WrappedInOutSoapImpl.java
 *
 * Tests .NET WSDL and functional signatures generated by WSDL2Java
 */

package test.wsdl.wrapped_inout;

public class WrappedInOutSoapImpl implements test.wsdl.wrapped_inout.WrappedInOutInterface{
    public java.lang.String echoString(java.lang.String inarg) throws java.rmi.RemoteException {
        return inarg;
    }

    public java.lang.String echoStringIO(java.lang.String ioarg) throws java.rmi.RemoteException {
        return ioarg;
    }

    public java.lang.String echoStringIOret(javax.xml.rpc.holders.StringHolder ioarg) throws java.rmi.RemoteException {
        if (!ioarg.value.equals("in1")) {
            throw new java.rmi.RemoteException("Input argument didn't match expected 'in1', got: " + ioarg.value);
        }
        ioarg.value = "out1";
        return "return";
    }

    public void echoStringInIO(java.lang.String inarg, javax.xml.rpc.holders.StringHolder ioarg) throws java.rmi.RemoteException {
        ioarg.value = inarg;    
    }

    public java.lang.String echoStringBig(java.lang.String inarg, javax.xml.rpc.holders.StringHolder ioarg1, javax.xml.rpc.holders.StringHolder ioarg2) throws java.rmi.RemoteException {
        ioarg1.value = "out1";
        ioarg2.value = "out2";
        return inarg;
    }

    public void helloInOut(javax.xml.rpc.holders.StringHolder inout1, javax.xml.rpc.holders.StringHolder inout2, javax.xml.rpc.holders.StringHolder inout3, javax.xml.rpc.holders.StringHolder inout4, java.lang.String inonly) throws java.rmi.RemoteException {
        inout1.value = "out1";
        inout2.value = "out2";
        inout3.value = "out3";
        inout4.value = "out4";
        if (!inonly.equals("onlyInput")) {
            throw new java.rmi.RemoteException("Input argument didn't match expected 'onlyInput', got: " + inonly);
        }
    }

    public test.wsdl.wrapped_inout.Phone echoPhone(test.wsdl.wrapped_inout.Phone input) throws java.rmi.RemoteException {
        return input;
    }

}
