/*
 * @(#)Interface_Stub.java	1.6 04/01/27
 *
 * Copyright (c) 2004 Sun Microsystems, Inc. All rights reserved. 
 * PROPRIETARY/CONFIDENTIAL
 * Use is subject to license terms
 */// This class was generated by 172 StubGenerator.
// Contents subject to change without notice.
// @generated

package example.serverscript.connector;

import javax.xml.rpc.JAXRPCException;
import javax.xml.namespace.QName;
import javax.microedition.xml.rpc.Operation;
import javax.microedition.xml.rpc.Type;
import javax.microedition.xml.rpc.ComplexType;
import javax.microedition.xml.rpc.Element;

public class Interface_Stub implements example.serverscript.connector.Interface, javax.xml.rpc.Stub {
	private String[] _propertyNames;
	private Object[] _propertyValues;

	public Interface_Stub() {
		_propertyNames = new String[] {ENDPOINT_ADDRESS_PROPERTY};
		_propertyValues = new Object[] {"http://sunwireless.quimbik.com:80/serverscript2/serverscript"};
	}

	public void _setProperty(String name, Object value) {
		int size = _propertyNames.length;
		for (int i = 0; i < size; ++i) {
			if (_propertyNames[i].equals(name)) {
				_propertyValues[i] = value;
				return;
			}
		}
		// Need to expand our array for a new property
		String[] newPropNames = new String[size + 1];
		System.arraycopy(_propertyNames, 0, newPropNames, 0, size);
		_propertyNames = newPropNames;
		Object[] newPropValues = new Object[size + 1];
		System.arraycopy(_propertyValues, 0, newPropValues, 0, size);
		_propertyValues = newPropValues;

		_propertyNames[size] = name;
		_propertyValues[size] = value;
	}

	public Object _getProperty(String name) {
		for (int i = 0; i < _propertyNames.length; ++i) {
			if (_propertyNames[i].equals(name)) {
				return _propertyValues[i];
			}
		}
		if (ENDPOINT_ADDRESS_PROPERTY.equals(name) || USERNAME_PROPERTY.equals(name) || PASSWORD_PROPERTY.equals(name)) {
			return null;
		}
		if (SESSION_MAINTAIN_PROPERTY.equals(name)) {
			return new java.lang.Boolean(false);
		}
		throw new JAXRPCException("Stub does not recognize property: "+name);
	}

	protected void _prepOperation(Operation op) {
		for (int i = 0; i < _propertyNames.length; ++i) {
			op.setProperty(_propertyNames[i], _propertyValues[i].toString());
		}
	}

	// 
	//  Begin user methods
	// 

	public java.lang.String request(java.lang.String string_1, java.lang.String string_2) throws java.rmi.RemoteException {
		// Copy the incoming values into an Object array if needed.
		Object[] inputObject = new Object[2];
		inputObject[0] = string_1;
		inputObject[1] = string_2;

		Operation op = Operation.newInstance(_qname_wsdl_request, _type_request, _type_requestResponse);
		_prepOperation(op);
		op.setProperty(Operation.SOAPACTION_URI_PROPERTY, "");
		Object resultObj;
		try {
			resultObj = op.invoke(inputObject);
		} catch (JAXRPCException e) {
			Throwable cause = e.getLinkedCause();
			if (cause instanceof java.rmi.RemoteException) {
				throw (java.rmi.RemoteException) cause;
			}
			throw e;
		}
		java.lang.String result;
		// Convert the result into the right Java type.
		// Unwrapped return value
		Object resultObj2 = ((Object[])resultObj)[0];
		result = (java.lang.String)resultObj2;
		return result;
	}
	// 
	//  End user methods
	// 

	protected static final QName _qname_String_1 = new QName("", "String_1");
	protected static final QName _qname_String_2 = new QName("", "String_2");
	protected static final QName _qname_result = new QName("", "result");
	protected static final QName _qname_request = new QName("http://serverscript.org/types", "request");
	protected static final QName _qname_requestResponse = new QName("http://serverscript.org/types", "requestResponse");
	protected static final QName _qname_wsdl_request = new QName("http://serverscript.org/wsdl", "request");
	protected static final Element _type_request;
	protected static final Element _type_requestResponse;
	static {
		// Create all of the Type's that this stub uses, once.
		Element _type_String_1;
		_type_String_1 = new Element(_qname_String_1, Type.STRING, 1, 1, true);
		Element _type_String_2;
		_type_String_2 = new Element(_qname_String_2, Type.STRING, 1, 1, true);
		ComplexType _complexType_request;
		_complexType_request = new ComplexType();
		_complexType_request.elements = new Element[2];
		_complexType_request.elements[0] = _type_String_1;
		_complexType_request.elements[1] = _type_String_2;
		_type_request = new Element(_qname_request, _complexType_request);
		Element _type_result;
		_type_result = new Element(_qname_result, Type.STRING, 1, 1, true);
		ComplexType _complexType_requestResponse;
		_complexType_requestResponse = new ComplexType();
		_complexType_requestResponse.elements = new Element[1];
		_complexType_requestResponse.elements[0] = _type_result;
		_type_requestResponse = new Element(_qname_requestResponse, _complexType_requestResponse);
	}

}
