Simple Registry Service stubs
authorjprocter <Jim Procter>
Wed, 17 Aug 2005 15:23:34 +0000 (15:23 +0000)
committerjprocter <Jim Procter>
Wed, 17 Aug 2005 15:23:34 +0000 (15:23 +0000)
src/ext/vamsas/IRegistry.java [new file with mode: 0755]
src/ext/vamsas/IRegistryService.java [new file with mode: 0755]
src/ext/vamsas/IRegistryServiceLocator.java [new file with mode: 0755]
src/ext/vamsas/RegistryServiceSoapBindingStub.java [new file with mode: 0755]
src/ext/vamsas/ServiceHandle.java [new file with mode: 0755]
src/ext/vamsas/ServiceHandles.java [new file with mode: 0755]

diff --git a/src/ext/vamsas/IRegistry.java b/src/ext/vamsas/IRegistry.java
new file mode 100755 (executable)
index 0000000..afddded
--- /dev/null
@@ -0,0 +1,12 @@
+/**
+ * IRegistry.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
+ */
+
+package ext.vamsas;
+
+public interface IRegistry extends java.rmi.Remote {
+    public ext.vamsas.ServiceHandles getServices() throws java.rmi.RemoteException;
+}
diff --git a/src/ext/vamsas/IRegistryService.java b/src/ext/vamsas/IRegistryService.java
new file mode 100755 (executable)
index 0000000..9f09f02
--- /dev/null
@@ -0,0 +1,16 @@
+/**
+ * IRegistryService.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
+ */
+
+package ext.vamsas;
+
+public interface IRegistryService extends javax.xml.rpc.Service {
+    public java.lang.String getRegistryServiceAddress();
+
+    public ext.vamsas.IRegistry getRegistryService() throws javax.xml.rpc.ServiceException;
+
+    public ext.vamsas.IRegistry getRegistryService(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
+}
diff --git a/src/ext/vamsas/IRegistryServiceLocator.java b/src/ext/vamsas/IRegistryServiceLocator.java
new file mode 100755 (executable)
index 0000000..b3aa85d
--- /dev/null
@@ -0,0 +1,136 @@
+/**
+ * IRegistryServiceLocator.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
+ */
+
+package ext.vamsas;
+
+public class IRegistryServiceLocator extends org.apache.axis.client.Service implements ext.vamsas.IRegistryService {
+
+    public IRegistryServiceLocator() {
+    }
+
+
+    public IRegistryServiceLocator(org.apache.axis.EngineConfiguration config) {
+        super(config);
+    }
+
+    // Use to get a proxy class for RegistryService
+    private java.lang.String RegistryService_address = "http://webservices.compbio.dundee.ac.uk:8080/jalTestWS/services/RegistryService";
+
+    public java.lang.String getRegistryServiceAddress() {
+        return RegistryService_address;
+    }
+
+    // The WSDD service name defaults to the port name.
+    private java.lang.String RegistryServiceWSDDServiceName = "RegistryService";
+
+    public java.lang.String getRegistryServiceWSDDServiceName() {
+        return RegistryServiceWSDDServiceName;
+    }
+
+    public void setRegistryServiceWSDDServiceName(java.lang.String name) {
+        RegistryServiceWSDDServiceName = name;
+    }
+
+    public ext.vamsas.IRegistry getRegistryService() throws javax.xml.rpc.ServiceException {
+       java.net.URL endpoint;
+        try {
+            endpoint = new java.net.URL(RegistryService_address);
+        }
+        catch (java.net.MalformedURLException e) {
+            throw new javax.xml.rpc.ServiceException(e);
+        }
+        return getRegistryService(endpoint);
+    }
+
+    public ext.vamsas.IRegistry getRegistryService(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {
+        try {
+            ext.vamsas.RegistryServiceSoapBindingStub _stub = new ext.vamsas.RegistryServiceSoapBindingStub(portAddress, this);
+            _stub.setPortName(getRegistryServiceWSDDServiceName());
+            return _stub;
+        }
+        catch (org.apache.axis.AxisFault e) {
+            return null;
+        }
+    }
+
+    public void setRegistryServiceEndpointAddress(java.lang.String address) {
+        RegistryService_address = address;
+    }
+
+    /**
+     * For the given interface, get the stub implementation.
+     * If this service has no port for the given interface,
+     * then ServiceException is thrown.
+     */
+    public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
+        try {
+            if (ext.vamsas.IRegistry.class.isAssignableFrom(serviceEndpointInterface)) {
+                ext.vamsas.RegistryServiceSoapBindingStub _stub = new ext.vamsas.RegistryServiceSoapBindingStub(new java.net.URL(RegistryService_address), this);
+                _stub.setPortName(getRegistryServiceWSDDServiceName());
+                return _stub;
+            }
+        }
+        catch (java.lang.Throwable t) {
+            throw new javax.xml.rpc.ServiceException(t);
+        }
+        throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface:  " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));
+    }
+
+    /**
+     * For the given interface, get the stub implementation.
+     * If this service has no port for the given interface,
+     * then ServiceException is thrown.
+     */
+    public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
+        if (portName == null) {
+            return getPort(serviceEndpointInterface);
+        }
+        java.lang.String inputPortName = portName.getLocalPart();
+        if ("RegistryService".equals(inputPortName)) {
+            return getRegistryService();
+        }
+        else  {
+            java.rmi.Remote _stub = getPort(serviceEndpointInterface);
+            ((org.apache.axis.client.Stub) _stub).setPortName(portName);
+            return _stub;
+        }
+    }
+
+    public javax.xml.namespace.QName getServiceName() {
+        return new javax.xml.namespace.QName("vamsas", "IRegistryService");
+    }
+
+    private java.util.HashSet ports = null;
+
+    public java.util.Iterator getPorts() {
+        if (ports == null) {
+            ports = new java.util.HashSet();
+            ports.add(new javax.xml.namespace.QName("vamsas", "RegistryService"));
+        }
+        return ports.iterator();
+    }
+
+    /**
+    * Set the endpoint address for the specified port name.
+    */
+    public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
+        if ("RegistryService".equals(portName)) {
+            setRegistryServiceEndpointAddress(address);
+        }
+        else { // Unknown Port Name
+            throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName);
+        }
+    }
+
+    /**
+    * Set the endpoint address for the specified port name.
+    */
+    public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
+        setEndpointAddress(portName.getLocalPart(), address);
+    }
+
+}
diff --git a/src/ext/vamsas/RegistryServiceSoapBindingStub.java b/src/ext/vamsas/RegistryServiceSoapBindingStub.java
new file mode 100755 (executable)
index 0000000..cf72cb1
--- /dev/null
@@ -0,0 +1,170 @@
+/**
+ * RegistryServiceSoapBindingStub.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
+ */
+
+package ext.vamsas;
+
+public class RegistryServiceSoapBindingStub extends org.apache.axis.client.Stub implements ext.vamsas.IRegistry {
+    private java.util.Vector cachedSerClasses = new java.util.Vector();
+    private java.util.Vector cachedSerQNames = new java.util.Vector();
+    private java.util.Vector cachedSerFactories = new java.util.Vector();
+    private java.util.Vector cachedDeserFactories = new java.util.Vector();
+
+    static org.apache.axis.description.OperationDesc [] _operations;
+
+    static {
+        _operations = new org.apache.axis.description.OperationDesc[1];
+        _initOperationDesc1();
+    }
+
+    private static void _initOperationDesc1(){
+        org.apache.axis.description.OperationDesc oper;
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("getServices");
+        oper.setReturnType(new javax.xml.namespace.QName("registry.objects.vamsas", "ServiceHandles"));
+        oper.setReturnClass(ext.vamsas.ServiceHandles.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("", "getServicesReturn"));
+        oper.setStyle(org.apache.axis.constants.Style.RPC);
+        oper.setUse(org.apache.axis.constants.Use.ENCODED);
+        _operations[0] = oper;
+
+    }
+
+    public RegistryServiceSoapBindingStub() throws org.apache.axis.AxisFault {
+         this(null);
+    }
+
+    public RegistryServiceSoapBindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+         this(service);
+         super.cachedEndpoint = endpointURL;
+    }
+
+    public RegistryServiceSoapBindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+        if (service == null) {
+            super.service = new org.apache.axis.client.Service();
+        } else {
+            super.service = service;
+        }
+            java.lang.Class cls;
+            javax.xml.namespace.QName qName;
+            java.lang.Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class;
+            java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class;
+            java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class;
+            java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class;
+            java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class;
+            java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class;
+            java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class;
+            java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class;
+            java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class;
+            java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class;
+            qName = new javax.xml.namespace.QName("vamsas", "ArrayOf_tns1_ServiceHandle");
+            cachedSerQNames.add(qName);
+            cls = ext.vamsas.ServiceHandle[].class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(arraysf);
+            cachedDeserFactories.add(arraydf);
+
+            qName = new javax.xml.namespace.QName("registry.objects.vamsas", "ServiceHandles");
+            cachedSerQNames.add(qName);
+            cls = ext.vamsas.ServiceHandles.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+            qName = new javax.xml.namespace.QName("registry.objects.vamsas", "ServiceHandle");
+            cachedSerQNames.add(qName);
+            cls = ext.vamsas.ServiceHandle.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+    }
+
+    protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
+        try {
+            org.apache.axis.client.Call _call =
+                    (org.apache.axis.client.Call) super.service.createCall();
+            if (super.maintainSessionSet) {
+                _call.setMaintainSession(super.maintainSession);
+            }
+            if (super.cachedUsername != null) {
+                _call.setUsername(super.cachedUsername);
+            }
+            if (super.cachedPassword != null) {
+                _call.setPassword(super.cachedPassword);
+            }
+            if (super.cachedEndpoint != null) {
+                _call.setTargetEndpointAddress(super.cachedEndpoint);
+            }
+            if (super.cachedTimeout != null) {
+                _call.setTimeout(super.cachedTimeout);
+            }
+            if (super.cachedPortName != null) {
+                _call.setPortName(super.cachedPortName);
+            }
+            java.util.Enumeration keys = super.cachedProperties.keys();
+            while (keys.hasMoreElements()) {
+                java.lang.String key = (java.lang.String) keys.nextElement();
+                _call.setProperty(key, super.cachedProperties.get(key));
+            }
+            // All the type mapping information is registered
+            // when the first call is made.
+            // The type mapping information is actually registered in
+            // the TypeMappingRegistry of the service, which
+            // is the reason why registration is only needed for the first call.
+            synchronized (this) {
+                if (firstCall()) {
+                    // must set encoding style before registering serializers
+                    _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+                    _call.setEncodingStyle(org.apache.axis.Constants.URI_SOAP11_ENC);
+                    for (int i = 0; i < cachedSerFactories.size(); ++i) {
+                        java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i);
+                        javax.xml.namespace.QName qName =
+                                (javax.xml.namespace.QName) cachedSerQNames.get(i);
+                        java.lang.Class sf = (java.lang.Class)
+                                 cachedSerFactories.get(i);
+                        java.lang.Class df = (java.lang.Class)
+                                 cachedDeserFactories.get(i);
+                        _call.registerTypeMapping(cls, qName, sf, df, false);
+                    }
+                }
+            }
+            return _call;
+        }
+        catch (java.lang.Throwable _t) {
+            throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);
+        }
+    }
+
+    public ext.vamsas.ServiceHandles getServices() throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[0]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("");
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("vamsas", "getServices"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (ext.vamsas.ServiceHandles) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (ext.vamsas.ServiceHandles) org.apache.axis.utils.JavaUtils.convert(_resp, ext.vamsas.ServiceHandles.class);
+            }
+        }
+    }
+
+}
diff --git a/src/ext/vamsas/ServiceHandle.java b/src/ext/vamsas/ServiceHandle.java
new file mode 100755 (executable)
index 0000000..2b662f7
--- /dev/null
@@ -0,0 +1,220 @@
+/**
+ * ServiceHandle.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
+ */
+
+package ext.vamsas;
+
+public class ServiceHandle  implements java.io.Serializable {
+    private java.lang.String abstractName;
+    private java.lang.String description;
+    private java.lang.String endpointURL;
+    private java.lang.String name;
+
+    public ServiceHandle() {
+    }
+
+    public ServiceHandle(
+           java.lang.String abstractName,
+           java.lang.String description,
+           java.lang.String endpointURL,
+           java.lang.String name) {
+           this.abstractName = abstractName;
+           this.description = description;
+           this.endpointURL = endpointURL;
+           this.name = name;
+    }
+
+
+    /**
+     * Gets the abstractName value for this ServiceHandle.
+     * 
+     * @return abstractName
+     */
+    public java.lang.String getAbstractName() {
+        return abstractName;
+    }
+
+
+    /**
+     * Sets the abstractName value for this ServiceHandle.
+     * 
+     * @param abstractName
+     */
+    public void setAbstractName(java.lang.String abstractName) {
+        this.abstractName = abstractName;
+    }
+
+
+    /**
+     * Gets the description value for this ServiceHandle.
+     * 
+     * @return description
+     */
+    public java.lang.String getDescription() {
+        return description;
+    }
+
+
+    /**
+     * Sets the description value for this ServiceHandle.
+     * 
+     * @param description
+     */
+    public void setDescription(java.lang.String description) {
+        this.description = description;
+    }
+
+
+    /**
+     * Gets the endpointURL value for this ServiceHandle.
+     * 
+     * @return endpointURL
+     */
+    public java.lang.String getEndpointURL() {
+        return endpointURL;
+    }
+
+
+    /**
+     * Sets the endpointURL value for this ServiceHandle.
+     * 
+     * @param endpointURL
+     */
+    public void setEndpointURL(java.lang.String endpointURL) {
+        this.endpointURL = endpointURL;
+    }
+
+
+    /**
+     * Gets the name value for this ServiceHandle.
+     * 
+     * @return name
+     */
+    public java.lang.String getName() {
+        return name;
+    }
+
+
+    /**
+     * Sets the name value for this ServiceHandle.
+     * 
+     * @param name
+     */
+    public void setName(java.lang.String name) {
+        this.name = name;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof ServiceHandle)) return false;
+        ServiceHandle other = (ServiceHandle) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.abstractName==null && other.getAbstractName()==null) || 
+             (this.abstractName!=null &&
+              this.abstractName.equals(other.getAbstractName()))) &&
+            ((this.description==null && other.getDescription()==null) || 
+             (this.description!=null &&
+              this.description.equals(other.getDescription()))) &&
+            ((this.endpointURL==null && other.getEndpointURL()==null) || 
+             (this.endpointURL!=null &&
+              this.endpointURL.equals(other.getEndpointURL()))) &&
+            ((this.name==null && other.getName()==null) || 
+             (this.name!=null &&
+              this.name.equals(other.getName())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getAbstractName() != null) {
+            _hashCode += getAbstractName().hashCode();
+        }
+        if (getDescription() != null) {
+            _hashCode += getDescription().hashCode();
+        }
+        if (getEndpointURL() != null) {
+            _hashCode += getEndpointURL().hashCode();
+        }
+        if (getName() != null) {
+            _hashCode += getName().hashCode();
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(ServiceHandle.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("registry.objects.vamsas", "ServiceHandle"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("abstractName");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "abstractName"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("description");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "description"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("endpointURL");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "endpointURL"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("name");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "name"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"));
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}
diff --git a/src/ext/vamsas/ServiceHandles.java b/src/ext/vamsas/ServiceHandles.java
new file mode 100755 (executable)
index 0000000..1c4932f
--- /dev/null
@@ -0,0 +1,126 @@
+/**
+ * ServiceHandles.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
+ */
+
+package ext.vamsas;
+
+public class ServiceHandles  implements java.io.Serializable {
+    private ext.vamsas.ServiceHandle[] services;
+
+    public ServiceHandles() {
+    }
+
+    public ServiceHandles(
+           ext.vamsas.ServiceHandle[] services) {
+           this.services = services;
+    }
+
+
+    /**
+     * Gets the services value for this ServiceHandles.
+     * 
+     * @return services
+     */
+    public ext.vamsas.ServiceHandle[] getServices() {
+        return services;
+    }
+
+
+    /**
+     * Sets the services value for this ServiceHandles.
+     * 
+     * @param services
+     */
+    public void setServices(ext.vamsas.ServiceHandle[] services) {
+        this.services = services;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof ServiceHandles)) return false;
+        ServiceHandles other = (ServiceHandles) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.services==null && other.getServices()==null) || 
+             (this.services!=null &&
+              java.util.Arrays.equals(this.services, other.getServices())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getServices() != null) {
+            for (int i=0;
+                 i<java.lang.reflect.Array.getLength(getServices());
+                 i++) {
+                java.lang.Object obj = java.lang.reflect.Array.get(getServices(), i);
+                if (obj != null &&
+                    !obj.getClass().isArray()) {
+                    _hashCode += obj.hashCode();
+                }
+            }
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(ServiceHandles.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("registry.objects.vamsas", "ServiceHandles"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("services");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "services"));
+        elemField.setXmlType(new javax.xml.namespace.QName("registry.objects.vamsas", "ServiceHandle"));
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}