added SeqSearch service interface. Documented and refactored web service client ...
authorjprocter <Jim Procter>
Tue, 29 Apr 2008 10:51:04 +0000 (10:51 +0000)
committerjprocter <Jim Procter>
Tue, 29 Apr 2008 10:51:04 +0000 (10:51 +0000)
28 files changed:
src/ext/vamsas/SeqSearchI.java [new file with mode: 0644]
src/ext/vamsas/SeqSearchServiceLocator.java [new file with mode: 0644]
src/ext/vamsas/SeqSearchServiceService.java [new file with mode: 0644]
src/ext/vamsas/SeqSearchServiceSoapBindingStub.java [new file with mode: 0644]
src/jalview/gui/AlignFrame.java
src/jalview/gui/WebserviceInfo.java
src/jalview/ws/Discoverer.java
src/jalview/ws/JPredClient.java
src/jalview/ws/MsaWSClient.java
src/jalview/ws/SeqSearchWSClient.java [new file with mode: 0644]
src/jalview/ws/SeqSearchWSThread.java [new file with mode: 0644]
src/jalview/ws/WSClient.java
src/jalview/ws/WSClientI.java
src/jalview/ws/WSThread.java
src/vamsas/objects/simple/Alignment.java
src/vamsas/objects/simple/Alignment_Helper.java
src/vamsas/objects/simple/Object.java
src/vamsas/objects/simple/Object_Helper.java
src/vamsas/objects/simple/Result.java
src/vamsas/objects/simple/Result_Helper.java
src/vamsas/objects/simple/SeqSearchResult.java [new file with mode: 0644]
src/vamsas/objects/simple/SeqSearchResult_Helper.java [new file with mode: 0644]
src/vamsas/objects/simple/Sequence.java
src/vamsas/objects/simple/SequenceSet.java
src/vamsas/objects/simple/SequenceSet_Helper.java
src/vamsas/objects/simple/Sequence_Helper.java
src/vamsas/objects/simple/WsJobId.java
src/vamsas/objects/simple/WsJobId_Helper.java

diff --git a/src/ext/vamsas/SeqSearchI.java b/src/ext/vamsas/SeqSearchI.java
new file mode 100644 (file)
index 0000000..3c89161
--- /dev/null
@@ -0,0 +1,16 @@
+/**\r
+ * ScanPSService.java\r
+ *\r
+ * This file was auto-generated from WSDL\r
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.\r
+ */\r
+\r
+package ext.vamsas;\r
+\r
+public interface SeqSearchI extends java.rmi.Remote {\r
+    public java.lang.String getDatabase() throws java.rmi.RemoteException;\r
+    public vamsas.objects.simple.SeqSearchResult getResult(java.lang.String job_id) throws java.rmi.RemoteException;\r
+    public vamsas.objects.simple.WsJobId psearch(vamsas.objects.simple.Alignment al, java.lang.String database) throws java.rmi.RemoteException;\r
+    public vamsas.objects.simple.WsJobId search(vamsas.objects.simple.Sequence s, java.lang.String database) throws java.rmi.RemoteException;\r
+    public vamsas.objects.simple.WsJobId cancel(java.lang.String jobId) throws java.rmi.RemoteException;\r
+}\r
diff --git a/src/ext/vamsas/SeqSearchServiceLocator.java b/src/ext/vamsas/SeqSearchServiceLocator.java
new file mode 100644 (file)
index 0000000..46b435b
--- /dev/null
@@ -0,0 +1,136 @@
+/**\r
+ * ScanPSServiceServiceLocator.java\r
+ *\r
+ * This file was auto-generated from WSDL\r
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.\r
+ */\r
+\r
+package ext.vamsas;\r
+\r
+public class SeqSearchServiceLocator extends org.apache.axis.client.Service implements ext.vamsas.SeqSearchServiceService {\r
+\r
+    public SeqSearchServiceLocator() {\r
+    }\r
+\r
+\r
+    public SeqSearchServiceLocator(org.apache.axis.EngineConfiguration config) {\r
+        super(config);\r
+    }\r
+\r
+    // Use to get a proxy class for ScanPSService\r
+    private java.lang.String ScanPSService_address = "http://localhost:8080/TestJWS/services/ScanPSService";\r
+\r
+    public java.lang.String getSeqSeachServiceAddress() {\r
+        return ScanPSService_address;\r
+    }\r
+\r
+    // The WSDD service name defaults to the port name.\r
+    private java.lang.String ScanPSServiceWSDDServiceName = "ScanPSService";\r
+\r
+    public java.lang.String getScanPSServiceWSDDServiceName() {\r
+        return ScanPSServiceWSDDServiceName;\r
+    }\r
+\r
+    public void setScanPSServiceWSDDServiceName(java.lang.String name) {\r
+        ScanPSServiceWSDDServiceName = name;\r
+    }\r
+\r
+    public ext.vamsas.SeqSearchI getSeqSearchService() throws javax.xml.rpc.ServiceException {\r
+       java.net.URL endpoint;\r
+        try {\r
+            endpoint = new java.net.URL(ScanPSService_address);\r
+        }\r
+        catch (java.net.MalformedURLException e) {\r
+            throw new javax.xml.rpc.ServiceException(e);\r
+        }\r
+        return getSeqSearchService(endpoint);\r
+    }\r
+\r
+    public ext.vamsas.SeqSearchI getSeqSearchService(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {\r
+        try {\r
+            ext.vamsas.SeqSearchServiceSoapBindingStub _stub = new ext.vamsas.SeqSearchServiceSoapBindingStub(portAddress, this);\r
+            _stub.setPortName(getScanPSServiceWSDDServiceName());\r
+            return _stub;\r
+        }\r
+        catch (org.apache.axis.AxisFault e) {\r
+            return null;\r
+        }\r
+    }\r
+\r
+    public void setScanPSServiceEndpointAddress(java.lang.String address) {\r
+        ScanPSService_address = address;\r
+    }\r
+\r
+    /**\r
+     * For the given interface, get the stub implementation.\r
+     * If this service has no port for the given interface,\r
+     * then ServiceException is thrown.\r
+     */\r
+    public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {\r
+        try {\r
+            if (ext.vamsas.SeqSearchI.class.isAssignableFrom(serviceEndpointInterface)) {\r
+                ext.vamsas.SeqSearchServiceSoapBindingStub _stub = new ext.vamsas.SeqSearchServiceSoapBindingStub(new java.net.URL(ScanPSService_address), this);\r
+                _stub.setPortName(getScanPSServiceWSDDServiceName());\r
+                return _stub;\r
+            }\r
+        }\r
+        catch (java.lang.Throwable t) {\r
+            throw new javax.xml.rpc.ServiceException(t);\r
+        }\r
+        throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface:  " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));\r
+    }\r
+\r
+    /**\r
+     * For the given interface, get the stub implementation.\r
+     * If this service has no port for the given interface,\r
+     * then ServiceException is thrown.\r
+     */\r
+    public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {\r
+        if (portName == null) {\r
+            return getPort(serviceEndpointInterface);\r
+        }\r
+        java.lang.String inputPortName = portName.getLocalPart();\r
+        if ("ScanPSService".equals(inputPortName)) {\r
+            return getSeqSearchService();\r
+        }\r
+        else  {\r
+            java.rmi.Remote _stub = getPort(serviceEndpointInterface);\r
+            ((org.apache.axis.client.Stub) _stub).setPortName(portName);\r
+            return _stub;\r
+        }\r
+    }\r
+\r
+    public javax.xml.namespace.QName getServiceName() {\r
+        return new javax.xml.namespace.QName("vamsas", "ScanPSServiceService");\r
+    }\r
+\r
+    private java.util.HashSet ports = null;\r
+\r
+    public java.util.Iterator getPorts() {\r
+        if (ports == null) {\r
+            ports = new java.util.HashSet();\r
+            ports.add(new javax.xml.namespace.QName("vamsas", "ScanPSService"));\r
+        }\r
+        return ports.iterator();\r
+    }\r
+\r
+    /**\r
+    * Set the endpoint address for the specified port name.\r
+    */\r
+    public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException {\r
+        if ("ScanPSService".equals(portName)) {\r
+            setScanPSServiceEndpointAddress(address);\r
+        }\r
+        else { // Unknown Port Name\r
+            throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName);\r
+        }\r
+    }\r
+\r
+    /**\r
+    * Set the endpoint address for the specified port name.\r
+    */\r
+    public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException {\r
+        setEndpointAddress(portName.getLocalPart(), address);\r
+    }\r
+\r
+}\r
diff --git a/src/ext/vamsas/SeqSearchServiceService.java b/src/ext/vamsas/SeqSearchServiceService.java
new file mode 100644 (file)
index 0000000..0dd4c14
--- /dev/null
@@ -0,0 +1,16 @@
+/**\r
+ * ScanPSServiceService.java\r
+ *\r
+ * This file was auto-generated from WSDL\r
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.\r
+ */\r
+\r
+package ext.vamsas;\r
+\r
+public interface SeqSearchServiceService extends javax.xml.rpc.Service {\r
+    public java.lang.String getSeqSeachServiceAddress();\r
+\r
+    public ext.vamsas.SeqSearchI getSeqSearchService() throws javax.xml.rpc.ServiceException;\r
+\r
+    public ext.vamsas.SeqSearchI getSeqSearchService(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;\r
+}\r
diff --git a/src/ext/vamsas/SeqSearchServiceSoapBindingStub.java b/src/ext/vamsas/SeqSearchServiceSoapBindingStub.java
new file mode 100644 (file)
index 0000000..614a85f
--- /dev/null
@@ -0,0 +1,366 @@
+/**\r
+ * ScanPSServiceSoapBindingStub.java\r
+ *\r
+ * This file was auto-generated from WSDL\r
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.\r
+ */\r
+\r
+package ext.vamsas;\r
+\r
+public class SeqSearchServiceSoapBindingStub extends org.apache.axis.client.Stub implements ext.vamsas.SeqSearchI {\r
+    private java.util.Vector cachedSerClasses = new java.util.Vector();\r
+    private java.util.Vector cachedSerQNames = new java.util.Vector();\r
+    private java.util.Vector cachedSerFactories = new java.util.Vector();\r
+    private java.util.Vector cachedDeserFactories = new java.util.Vector();\r
+\r
+    static org.apache.axis.description.OperationDesc [] _operations;\r
+\r
+    static {\r
+        _operations = new org.apache.axis.description.OperationDesc[5];\r
+        _initOperationDesc1();\r
+    }
+\r
+    private static void _initOperationDesc1(){\r
+        org.apache.axis.description.OperationDesc oper;\r
+        oper = new org.apache.axis.description.OperationDesc();\r
+        oper.setName("getDatabase");\r
+        oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));\r
+        oper.setReturnClass(java.lang.String.class);\r
+        oper.setReturnQName(new javax.xml.namespace.QName("", "getDatabaseReturn"));\r
+        oper.setStyle(org.apache.axis.constants.Style.RPC);\r
+        oper.setUse(org.apache.axis.constants.Use.ENCODED);\r
+        _operations[0] = oper;\r
+\r
+        oper = new org.apache.axis.description.OperationDesc();\r
+        oper.setName("getResult");\r
+        oper.addParameter(new javax.xml.namespace.QName("", "job_id"), new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, org.apache.axis.description.ParameterDesc.IN, false, false);\r
+        oper.setReturnType(new javax.xml.namespace.QName("simple.objects.vamsas", "SeqSearchResult"));\r
+        oper.setReturnClass(vamsas.objects.simple.SeqSearchResult.class);\r
+        oper.setReturnQName(new javax.xml.namespace.QName("", "getResultReturn"));\r
+        oper.setStyle(org.apache.axis.constants.Style.RPC);\r
+        oper.setUse(org.apache.axis.constants.Use.ENCODED);\r
+        _operations[1] = oper;\r
+\r
+        oper = new org.apache.axis.description.OperationDesc();\r
+        oper.setName("psearch");\r
+        oper.addParameter(new javax.xml.namespace.QName("", "al"), new javax.xml.namespace.QName("simple.objects.vamsas", "Alignment"), vamsas.objects.simple.Alignment.class, org.apache.axis.description.ParameterDesc.IN, false, false);\r
+        oper.addParameter(new javax.xml.namespace.QName("", "database"), new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, org.apache.axis.description.ParameterDesc.IN, false, false);\r
+        oper.setReturnType(new javax.xml.namespace.QName("simple.objects.vamsas", "WsJobId"));\r
+        oper.setReturnClass(vamsas.objects.simple.WsJobId.class);\r
+        oper.setReturnQName(new javax.xml.namespace.QName("", "psearchReturn"));\r
+        oper.setStyle(org.apache.axis.constants.Style.RPC);\r
+        oper.setUse(org.apache.axis.constants.Use.ENCODED);\r
+        _operations[2] = oper;\r
+\r
+        oper = new org.apache.axis.description.OperationDesc();\r
+        oper.setName("search");\r
+        oper.addParameter(new javax.xml.namespace.QName("", "s"), new javax.xml.namespace.QName("simple.objects.vamsas", "Sequence"), vamsas.objects.simple.Sequence.class, org.apache.axis.description.ParameterDesc.IN, false, false);\r
+        oper.addParameter(new javax.xml.namespace.QName("", "database"), new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, org.apache.axis.description.ParameterDesc.IN, false, false);\r
+        oper.setReturnType(new javax.xml.namespace.QName("simple.objects.vamsas", "WsJobId"));\r
+        oper.setReturnClass(vamsas.objects.simple.WsJobId.class);\r
+        oper.setReturnQName(new javax.xml.namespace.QName("", "searchReturn"));\r
+        oper.setStyle(org.apache.axis.constants.Style.RPC);\r
+        oper.setUse(org.apache.axis.constants.Use.ENCODED);\r
+        _operations[3] = oper;\r
+\r
+        oper = new org.apache.axis.description.OperationDesc();\r
+        oper.setName("cancel");\r
+        oper.addParameter(new javax.xml.namespace.QName("", "jobId"), new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, org.apache.axis.description.ParameterDesc.IN, false, false);\r
+        oper.setReturnType(new javax.xml.namespace.QName("simple.objects.vamsas", "WsJobId"));\r
+        oper.setReturnClass(vamsas.objects.simple.WsJobId.class);\r
+        oper.setReturnQName(new javax.xml.namespace.QName("", "cancelReturn"));\r
+        oper.setStyle(org.apache.axis.constants.Style.RPC);\r
+        oper.setUse(org.apache.axis.constants.Use.ENCODED);\r
+        _operations[4] = oper;\r
+\r
+    }\r
+\r
+    public SeqSearchServiceSoapBindingStub() throws org.apache.axis.AxisFault {\r
+         this(null);\r
+    }\r
+\r
+    public SeqSearchServiceSoapBindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {\r
+         this(service);\r
+         super.cachedEndpoint = endpointURL;\r
+    }\r
+\r
+    public SeqSearchServiceSoapBindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {\r
+        if (service == null) {\r
+            super.service = new org.apache.axis.client.Service();\r
+        } else {\r
+            super.service = service;\r
+        }\r
+            java.lang.Class cls;\r
+            javax.xml.namespace.QName qName;\r
+            java.lang.Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class;\r
+            java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class;\r
+            java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class;\r
+            java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class;\r
+            java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class;\r
+            java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class;\r
+            java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class;\r
+            java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class;\r
+            java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class;\r
+            java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class;\r
+            qName = new javax.xml.namespace.QName("simple.objects.vamsas", "Result");\r
+            cachedSerQNames.add(qName);\r
+            cls = vamsas.objects.simple.Result.class;\r
+            cachedSerClasses.add(cls);\r
+            cachedSerFactories.add(beansf);\r
+            cachedDeserFactories.add(beandf);\r
+\r
+            qName = new javax.xml.namespace.QName("simple.objects.vamsas", "WsJobId");\r
+            cachedSerQNames.add(qName);\r
+            cls = vamsas.objects.simple.WsJobId.class;\r
+            cachedSerClasses.add(cls);\r
+            cachedSerFactories.add(beansf);\r
+            cachedDeserFactories.add(beandf);\r
+\r
+            qName = new javax.xml.namespace.QName("http://simple.objects.vamsas", "Object");\r
+            cachedSerQNames.add(qName);\r
+            cls = vamsas.objects.simple.Object.class;\r
+            cachedSerClasses.add(cls);\r
+            cachedSerFactories.add(beansf);\r
+            cachedDeserFactories.add(beandf);\r
+\r
+            qName = new javax.xml.namespace.QName("vamsas", "ArrayOf_xsd_string");\r
+            cachedSerQNames.add(qName);\r
+            cls = java.lang.String[].class;\r
+            cachedSerClasses.add(cls);\r
+            cachedSerFactories.add(arraysf);\r
+            cachedDeserFactories.add(arraydf);\r
+\r
+            qName = new javax.xml.namespace.QName("simple.objects.vamsas", "Alignment");\r
+            cachedSerQNames.add(qName);\r
+            cls = vamsas.objects.simple.Alignment.class;\r
+            cachedSerClasses.add(cls);\r
+            cachedSerFactories.add(beansf);\r
+            cachedDeserFactories.add(beandf);\r
+\r
+            qName = new javax.xml.namespace.QName("simple.objects.vamsas", "Sequence");\r
+            cachedSerQNames.add(qName);\r
+            cls = vamsas.objects.simple.Sequence.class;\r
+            cachedSerClasses.add(cls);\r
+            cachedSerFactories.add(beansf);\r
+            cachedDeserFactories.add(beandf);\r
+\r
+            qName = new javax.xml.namespace.QName("vamsas", "ArrayOf_tns1_Sequence");\r
+            cachedSerQNames.add(qName);\r
+            cls = vamsas.objects.simple.Sequence[].class;\r
+            cachedSerClasses.add(cls);\r
+            cachedSerFactories.add(arraysf);\r
+            cachedDeserFactories.add(arraydf);\r
+\r
+            qName = new javax.xml.namespace.QName("simple.objects.vamsas", "SeqSearchResult");\r
+            cachedSerQNames.add(qName);\r
+            cls = vamsas.objects.simple.SeqSearchResult.class;\r
+            cachedSerClasses.add(cls);\r
+            cachedSerFactories.add(beansf);\r
+            cachedDeserFactories.add(beandf);\r
+\r
+            qName = new javax.xml.namespace.QName("simple.objects.vamsas", "SequenceSet");\r
+            cachedSerQNames.add(qName);\r
+            cls = vamsas.objects.simple.SequenceSet.class;\r
+            cachedSerClasses.add(cls);\r
+            cachedSerFactories.add(beansf);\r
+            cachedDeserFactories.add(beandf);\r
+\r
+    }\r
+\r
+    protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {\r
+        try {\r
+            org.apache.axis.client.Call _call =\r
+                    (org.apache.axis.client.Call) super.service.createCall();\r
+            if (super.maintainSessionSet) {\r
+                _call.setMaintainSession(super.maintainSession);\r
+            }\r
+            if (super.cachedUsername != null) {\r
+                _call.setUsername(super.cachedUsername);\r
+            }\r
+            if (super.cachedPassword != null) {\r
+                _call.setPassword(super.cachedPassword);\r
+            }\r
+            if (super.cachedEndpoint != null) {\r
+                _call.setTargetEndpointAddress(super.cachedEndpoint);\r
+            }\r
+            if (super.cachedTimeout != null) {\r
+                _call.setTimeout(super.cachedTimeout);\r
+            }\r
+            if (super.cachedPortName != null) {\r
+                _call.setPortName(super.cachedPortName);\r
+            }\r
+            java.util.Enumeration keys = super.cachedProperties.keys();\r
+            while (keys.hasMoreElements()) {\r
+                java.lang.String key = (java.lang.String) keys.nextElement();\r
+                _call.setProperty(key, super.cachedProperties.get(key));\r
+            }\r
+            // All the type mapping information is registered\r
+            // when the first call is made.\r
+            // The type mapping information is actually registered in\r
+            // the TypeMappingRegistry of the service, which\r
+            // is the reason why registration is only needed for the first call.\r
+            synchronized (this) {\r
+                if (firstCall()) {\r
+                    // must set encoding style before registering serializers\r
+                    _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);\r
+                    _call.setEncodingStyle(org.apache.axis.Constants.URI_SOAP11_ENC);\r
+                    for (int i = 0; i < cachedSerFactories.size(); ++i) {\r
+                        java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i);\r
+                        javax.xml.namespace.QName qName =\r
+                                (javax.xml.namespace.QName) cachedSerQNames.get(i);\r
+                        java.lang.Class sf = (java.lang.Class)\r
+                                 cachedSerFactories.get(i);\r
+                        java.lang.Class df = (java.lang.Class)\r
+                                 cachedDeserFactories.get(i);\r
+                        _call.registerTypeMapping(cls, qName, sf, df, false);\r
+                    }\r
+                }\r
+            }\r
+            return _call;\r
+        }\r
+        catch (java.lang.Throwable _t) {\r
+            throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);\r
+        }\r
+    }\r
+\r
+    public java.lang.String getDatabase() throws java.rmi.RemoteException {\r
+        if (super.cachedEndpoint == null) {\r
+            throw new org.apache.axis.NoEndPointException();\r
+        }\r
+        org.apache.axis.client.Call _call = createCall();\r
+        _call.setOperation(_operations[0]);\r
+        _call.setUseSOAPAction(true);\r
+        _call.setSOAPActionURI("");\r
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);\r
+        _call.setOperationName(new javax.xml.namespace.QName("vamsas", "getDatabase"));\r
+\r
+        setRequestHeaders(_call);\r
+        setAttachments(_call);\r
+        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {});\r
+\r
+        if (_resp instanceof java.rmi.RemoteException) {\r
+            throw (java.rmi.RemoteException)_resp;\r
+        }\r
+        else {\r
+            extractAttachments(_call);\r
+            try {\r
+                return (java.lang.String) _resp;\r
+            } catch (java.lang.Exception _exception) {\r
+                return (java.lang.String) org.apache.axis.utils.JavaUtils.convert(_resp, java.lang.String.class);\r
+            }\r
+        }\r
+    }\r
+\r
+    public vamsas.objects.simple.SeqSearchResult getResult(java.lang.String job_id) throws java.rmi.RemoteException {\r
+        if (super.cachedEndpoint == null) {\r
+            throw new org.apache.axis.NoEndPointException();\r
+        }\r
+        org.apache.axis.client.Call _call = createCall();\r
+        _call.setOperation(_operations[1]);\r
+        _call.setUseSOAPAction(true);\r
+        _call.setSOAPActionURI("");\r
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);\r
+        _call.setOperationName(new javax.xml.namespace.QName("vamsas", "getResult"));\r
+\r
+        setRequestHeaders(_call);\r
+        setAttachments(_call);\r
+        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {job_id});\r
+\r
+        if (_resp instanceof java.rmi.RemoteException) {\r
+            throw (java.rmi.RemoteException)_resp;\r
+        }\r
+        else {\r
+            extractAttachments(_call);\r
+            try {\r
+                return (vamsas.objects.simple.SeqSearchResult) _resp;\r
+            } catch (java.lang.Exception _exception) {\r
+                return (vamsas.objects.simple.SeqSearchResult) org.apache.axis.utils.JavaUtils.convert(_resp, vamsas.objects.simple.SeqSearchResult.class);\r
+            }\r
+        }\r
+    }\r
+\r
+    public vamsas.objects.simple.WsJobId psearch(vamsas.objects.simple.Alignment al, java.lang.String database) throws java.rmi.RemoteException {\r
+        if (super.cachedEndpoint == null) {\r
+            throw new org.apache.axis.NoEndPointException();\r
+        }\r
+        org.apache.axis.client.Call _call = createCall();\r
+        _call.setOperation(_operations[2]);\r
+        _call.setUseSOAPAction(true);\r
+        _call.setSOAPActionURI("");\r
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);\r
+        _call.setOperationName(new javax.xml.namespace.QName("vamsas", "psearch"));\r
+\r
+        setRequestHeaders(_call);\r
+        setAttachments(_call);\r
+        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {al, database});\r
+\r
+        if (_resp instanceof java.rmi.RemoteException) {\r
+            throw (java.rmi.RemoteException)_resp;\r
+        }\r
+        else {\r
+            extractAttachments(_call);\r
+            try {\r
+                return (vamsas.objects.simple.WsJobId) _resp;\r
+            } catch (java.lang.Exception _exception) {\r
+                return (vamsas.objects.simple.WsJobId) org.apache.axis.utils.JavaUtils.convert(_resp, vamsas.objects.simple.WsJobId.class);\r
+            }\r
+        }\r
+    }\r
+\r
+    public vamsas.objects.simple.WsJobId search(vamsas.objects.simple.Sequence s, java.lang.String database) throws java.rmi.RemoteException {\r
+        if (super.cachedEndpoint == null) {\r
+            throw new org.apache.axis.NoEndPointException();\r
+        }\r
+        org.apache.axis.client.Call _call = createCall();\r
+        _call.setOperation(_operations[3]);\r
+        _call.setUseSOAPAction(true);\r
+        _call.setSOAPActionURI("");\r
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);\r
+        _call.setOperationName(new javax.xml.namespace.QName("vamsas", "search"));\r
+\r
+        setRequestHeaders(_call);\r
+        setAttachments(_call);\r
+        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {s, database});\r
+\r
+        if (_resp instanceof java.rmi.RemoteException) {\r
+            throw (java.rmi.RemoteException)_resp;\r
+        }\r
+        else {\r
+            extractAttachments(_call);\r
+            try {\r
+                return (vamsas.objects.simple.WsJobId) _resp;\r
+            } catch (java.lang.Exception _exception) {\r
+                return (vamsas.objects.simple.WsJobId) org.apache.axis.utils.JavaUtils.convert(_resp, vamsas.objects.simple.WsJobId.class);\r
+            }\r
+        }\r
+    }\r
+\r
+    public vamsas.objects.simple.WsJobId cancel(java.lang.String jobId) throws java.rmi.RemoteException {\r
+        if (super.cachedEndpoint == null) {\r
+            throw new org.apache.axis.NoEndPointException();\r
+        }\r
+        org.apache.axis.client.Call _call = createCall();\r
+        _call.setOperation(_operations[4]);\r
+        _call.setUseSOAPAction(true);\r
+        _call.setSOAPActionURI("");\r
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);\r
+        _call.setOperationName(new javax.xml.namespace.QName("vamsas", "cancel"));\r
+\r
+        setRequestHeaders(_call);\r
+        setAttachments(_call);\r
+        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {jobId});\r
+\r
+        if (_resp instanceof java.rmi.RemoteException) {\r
+            throw (java.rmi.RemoteException)_resp;\r
+        }\r
+        else {\r
+            extractAttachments(_call);\r
+            try {\r
+                return (vamsas.objects.simple.WsJobId) _resp;\r
+            } catch (java.lang.Exception _exception) {\r
+                return (vamsas.objects.simple.WsJobId) org.apache.axis.utils.JavaUtils.convert(_resp, vamsas.objects.simple.WsJobId.class);\r
+            }\r
+        }\r
+    }\r
+\r
+}\r
index f536382..39a7fac 100755 (executable)
@@ -3270,7 +3270,7 @@ public class AlignFrame
    * or just the selected set will be submitted for multiple alignment.
    *
    */
-  private jalview.datamodel.AlignmentView gatherSequencesForAlignment()
+  public jalview.datamodel.AlignmentView gatherSequencesForAlignment()
   {
     // Now, check we have enough sequences
     AlignmentView msa = null;
@@ -3308,12 +3308,14 @@ public class AlignFrame
   }
 
   /**
-   * Decides what is submitted to a secondary structure prediction service,
-   * the currently selected sequence, or the currently selected alignment
+   * Decides what is submitted to a secondary structure prediction service:
+   * the first sequence in the alignment, or in the current selection,
+   * or, if the alignment is 'aligned' (ie padded with gaps), then the
+   * currently selected region or the whole alignment.
    * (where the first sequence in the set is the one that the prediction
    * will be for).
    */
-  AlignmentView gatherSeqOrMsaForSecStrPrediction()
+  public AlignmentView gatherSeqOrMsaForSecStrPrediction()
   {
    AlignmentView seqs = null;
 
@@ -3475,43 +3477,9 @@ public class AlignFrame
         {
           final ext.vamsas.ServiceHandle sh = (ext.vamsas.ServiceHandle) msaws.
               get(i);
-          final JMenuItem method = new JMenuItem(sh.getName());
-          method.addActionListener(new ActionListener()
-          {
-            public void actionPerformed(ActionEvent e)
-            {
-              AlignmentView msa = gatherSequencesForAlignment();
-              new jalview.ws.MsaWSClient(sh, title, msa,
-                                         false, true,
-                                         viewport.getAlignment().getDataset(),
-                                         af);
-
-            }
-
-          });
-          msawsmenu.add(method);
-          // Deal with services that we know accept partial alignments.
-          // TODO: this should be a service property - ie sh.getProperty("submitGaps")==Boolean.true
-          if (sh.getName().indexOf("lustal") > -1)
-          {
-            // We know that ClustalWS can accept partial alignments for refinement.
-            final JMenuItem methodR = new JMenuItem(sh.getName()+" Realign");
-            methodR.addActionListener(new ActionListener()
-            {
-              public void actionPerformed(ActionEvent e)
-              {
-                AlignmentView msa = gatherSequencesForAlignment();
-                new jalview.ws.MsaWSClient(sh, title, msa,
-                                           true, true,
-                                           viewport.getAlignment().getDataset(),
-                                           af);
-
-              }
-
-            });
-            msawsmenu.add(methodR);
-
-          }
+          jalview.ws.WSClient impl = jalview.ws.Discoverer.getServiceClient(sh);
+          impl.attachWSMenuEntry(msawsmenu, this);
+        
         }
         wsmenu.add(msawsmenu);
       }
@@ -3523,105 +3491,24 @@ public class AlignFrame
         {
           final ext.vamsas.ServiceHandle sh = (ext.vamsas.ServiceHandle)
               secstrpr.get(i);
-          final JMenuItem method = new JMenuItem(sh.getName());
-          method.addActionListener(new ActionListener()
-          {
-            public void actionPerformed(ActionEvent e)
-            {
-              AlignmentView msa = gatherSeqOrMsaForSecStrPrediction();
-              if (msa.getSequences().length == 1)
-              {
-                // Single Sequence prediction
-                new jalview.ws.JPredClient(sh, title, false, msa, af, true);
-              }
-              else
-              {
-                if (msa.getSequences().length > 1)
-                {
-                  // Sequence profile based prediction
-                  new jalview.ws.JPredClient(sh,
-                      title, true, msa, af, true);
-                }
-              }
-            }
-          });
-          secstrmenu.add(method);
+          jalview.ws.WSClient impl = jalview.ws.Discoverer.getServiceClient(sh);
+          impl.attachWSMenuEntry(secstrmenu, this);
         }
         wsmenu.add(secstrmenu);
-/*      }
+      }
       if (seqsrch!=null)
       {
-        // Add any secondary structure prediction services
+        // Add any sequence search services
         final JMenu seqsrchmenu = new JMenu("Sequence Database Search");
-        Hashtable dbsrchs = new Hashtable();
-        JMenu defmenu;
-        dbsrchs.put("<default>", defmenu = new JMenu("Default Database"));
         for (int i = 0, j = seqsrch.size(); i < j; i++)
         {
           final ext.vamsas.ServiceHandle sh = (ext.vamsas.ServiceHandle)
               seqsrch.elementAt(i);
-          
-          String dbs[] = null;
-          try {
-            dbs = new jalview.ws.SeqSearchWSClient(sh).getSupportedDatabases();
-          } catch (Exception e)
-          {
-            jalview.bin.Cache.log.warn("Database list request failed, so disabling SeqSearch Service client "+sh.getName()+" at "+sh.getEndpointURL(), e);
-            continue;
-          }
-          JMenuItem method;
-          // do default entry
-          defmenu.add(method = new JMenuItem(sh.getName()));
-          method.addActionListener(new ActionListener()
-          {
-            public void actionPerformed(ActionEvent e)
-            {
-              // use same input gatherer as for secondary structure prediction
-              // we could actually parameterise the gatherer method here...
-              AlignmentView msa = gatherSeqOrMsaForSecStrPrediction();
-              new jalview.ws.SeqSearchWSClient(sh, title, msa, null, 
-                      viewport.getAlignment().getDataset(),
-                      af);
-              }
-            }
-          );
-          // add entry for each database the service supports
-          for (int db=0; dbs!=null && db<dbs.length; db++)
-          {
-            JMenu dbmenu = (JMenu) dbsrchs.get(dbs[db]);
-            if (dbmenu==null)
-            {
-              dbsrchs.put(dbs[db], dbmenu = new JMenu(dbs[db]));
-            }
-            // add the client handler code for this service
-            dbmenu.add(method = new JMenuItem(sh.getName()));
-            final String searchdb = dbs[db];
-            method.addActionListener(new ActionListener()
-            {
-              public void actionPerformed(ActionEvent e)
-              {
-                AlignmentView msa = gatherSeqOrMsaForSecStrPrediction();
-                new jalview.ws.SeqSearchWSClient(sh, title, msa, searchdb, 
-                          viewport.getAlignment().getDataset(),
-                          af);
-              }
-            });
-          }
-        }
-        // add the databases onto the seqsearch menu
-        Enumeration e = dbsrchs.elements();
-        while (e.hasMoreElements())
-        {
-          Object el = e.nextElement();
-          if (el instanceof JMenu)
-          {
-            seqsrchmenu.add((JMenu) el);
-          } else {
-            seqsrchmenu.add((JMenuItem) el);
-          }
+          jalview.ws.WSClient impl = jalview.ws.Discoverer.getServiceClient(sh);
+          impl.attachWSMenuEntry(seqsrchmenu, this);
         }
         // finally, add the whole shebang onto the webservices menu
-        wsmenu.add(seqsrchmenu); */
+        wsmenu.add(seqsrchmenu); 
       }
       resetWebServiceMenu();
       for (int i = 0, j = wsmenu.size(); i < j; i++)
index df18a62..b30837f 100755 (executable)
@@ -26,15 +26,15 @@ import java.awt.image.*;
 import javax.swing.*;
 
 import jalview.jbgui.*;
+import jalview.ws.WSClientI;
 
 /**
  * Base class for web service client thread and gui
- *
+ * 
  * @author $author$
  * @version $Revision$
  */
-public class WebserviceInfo
-    extends GWebserviceInfo
+public class WebserviceInfo extends GWebserviceInfo
 {
 
   /** Job is Queued */
@@ -54,17 +54,29 @@ public class WebserviceInfo
 
   /** job has failed because of some unavoidable service interruption */
   public static final int STATE_STOPPED_SERVERERROR = 5;
+
   int currentStatus = STATE_QUEUING;
+
   Image image;
+
   int angle = 0;
+
   String title = "";
+
   jalview.ws.WSClientI thisService;
+
   boolean serviceIsCancellable;
+
   JInternalFrame frame;
+
   JTabbedPane subjobs = null;
+
   java.util.Vector jobPanes = null;
+
   private boolean serviceCanMergeResults = false;
+
   private boolean viewResultsImmediatly = true;
+
   // tabbed or not
   public synchronized int addJobPane()
   {
@@ -109,9 +121,11 @@ public class WebserviceInfo
 
   /**
    * Creates a new WebserviceInfo object.
-   *
-   * @param title short name and job type
-   * @param info reference or other human readable description
+   * 
+   * @param title
+   *                short name and job type
+   * @param info
+   *                reference or other human readable description
    */
   public WebserviceInfo(String title, String info)
   {
@@ -120,11 +134,15 @@ public class WebserviceInfo
 
   /**
    * Creates a new WebserviceInfo object.
-   *
-   * @param title DOCUMENT ME!
-   * @param info DOCUMENT ME!
-   * @param width DOCUMENT ME!
-   * @param height DOCUMENT ME!
+   * 
+   * @param title
+   *                DOCUMENT ME!
+   * @param info
+   *                DOCUMENT ME!
+   * @param width
+   *                DOCUMENT ME!
+   * @param height
+   *                DOCUMENT ME!
    */
   public WebserviceInfo(String title, String info, int width, int height)
   {
@@ -133,7 +151,7 @@ public class WebserviceInfo
 
   /**
    * DOCUMENT ME!
-   *
+   * 
    * @return DOCUMENT ME!
    */
   public jalview.ws.WSClientI getthisService()
@@ -142,9 +160,11 @@ public class WebserviceInfo
   }
 
   /**
-   * DOCUMENT ME!
-   *
-   * @param newservice DOCUMENT ME!
+   * Update state of GUI based on client capabilities (like whether the job is
+   * cancellable, whether the 'merge results' button is shown.
+   * 
+   * @param newservice
+   *                service client to query for capabilities
    */
   public void setthisService(jalview.ws.WSClientI newservice)
   {
@@ -152,15 +172,37 @@ public class WebserviceInfo
     serviceIsCancellable = newservice.isCancellable();
     frame.setClosable(!serviceIsCancellable);
     serviceCanMergeResults = newservice.canMergeResults();
+    rebuildButtonPanel();
+  }
+
+  private void rebuildButtonPanel()
+  {
+    if (buttonPanel != null)
+    {
+      buttonPanel.removeAll();
+      if (serviceIsCancellable)
+      {
+        buttonPanel.add(cancel);
+        frame.setClosable(false);
+      }
+      else
+      {
+        frame.setClosable(true);
+      }
+    }
   }
 
   /**
    * DOCUMENT ME!
-   *
-   * @param title DOCUMENT ME!
-   * @param info DOCUMENT ME!
-   * @param width DOCUMENT ME!
-   * @param height DOCUMENT ME!
+   * 
+   * @param title
+   *                DOCUMENT ME!
+   * @param info
+   *                DOCUMENT ME!
+   * @param width
+   *                DOCUMENT ME!
+   * @param height
+   *                DOCUMENT ME!
    */
   void init(String title, String info, int width, int height)
   {
@@ -181,8 +223,7 @@ public class WebserviceInfo
     try
     {
       mt.waitForID(0);
-    }
-    catch (Exception ex)
+    } catch (Exception ex)
     {
     }
 
@@ -191,12 +232,29 @@ public class WebserviceInfo
 
     Thread thread = new Thread(ap);
     thread.start();
+    final WebserviceInfo thisinfo = this;
+    frame
+            .addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()
+            {
+              public void internalFrameClosed(
+                      javax.swing.event.InternalFrameEvent evt)
+              {
+                // System.out.println("Shutting down webservice client");
+                WSClientI service = thisinfo.getthisService();
+                if (service != null)
+                {
+                  service.cancelJob();
+                }
+              };
+            });
+
   }
 
   /**
    * DOCUMENT ME!
-   *
-   * @param status integer status from state constants
+   * 
+   * @param status
+   *                integer status from state constants
    */
   public void setStatus(int status)
   {
@@ -205,6 +263,7 @@ public class WebserviceInfo
 
   /**
    * subjob status indicator
+   * 
    * @param jobpane
    * @param status
    */
@@ -212,36 +271,37 @@ public class WebserviceInfo
   {
     if (jobpane < 0 || jobpane >= jobPanes.size())
     {
-      throw new Error("setStatus called for non-existent job pane." + jobpane);
+      throw new Error("setStatus called for non-existent job pane."
+              + jobpane);
     }
     switch (status)
     {
-      case STATE_QUEUING:
-        setProgressName(jobpane + " - QUEUED", jobpane);
-        break;
-      case STATE_RUNNING:
-        setProgressName(jobpane + " - RUNNING", jobpane);
-        break;
-      case STATE_STOPPED_OK:
-        setProgressName(jobpane + " - FINISHED", jobpane);
-        break;
-      case STATE_CANCELLED_OK:
-        setProgressName(jobpane + " - CANCELLED", jobpane);
-        break;
-      case STATE_STOPPED_ERROR:
-        setProgressName(jobpane + " - BROKEN", jobpane);
-        break;
-      case STATE_STOPPED_SERVERERROR:
-        setProgressName(jobpane + " - ALERT", jobpane);
-        break;
-      default:
-        setProgressName(jobpane + " - UNKNOWN STATE", jobpane);
+    case STATE_QUEUING:
+      setProgressName(jobpane + " - QUEUED", jobpane);
+      break;
+    case STATE_RUNNING:
+      setProgressName(jobpane + " - RUNNING", jobpane);
+      break;
+    case STATE_STOPPED_OK:
+      setProgressName(jobpane + " - FINISHED", jobpane);
+      break;
+    case STATE_CANCELLED_OK:
+      setProgressName(jobpane + " - CANCELLED", jobpane);
+      break;
+    case STATE_STOPPED_ERROR:
+      setProgressName(jobpane + " - BROKEN", jobpane);
+      break;
+    case STATE_STOPPED_SERVERERROR:
+      setProgressName(jobpane + " - ALERT", jobpane);
+      break;
+    default:
+      setProgressName(jobpane + " - UNKNOWN STATE", jobpane);
     }
   }
 
   /**
    * DOCUMENT ME!
-   *
+   * 
    * @return DOCUMENT ME!
    */
   public String getInfoText()
@@ -251,8 +311,9 @@ public class WebserviceInfo
 
   /**
    * DOCUMENT ME!
-   *
-   * @param text DOCUMENT ME!
+   * 
+   * @param text
+   *                DOCUMENT ME!
    */
   public void setInfoText(String text)
   {
@@ -261,8 +322,9 @@ public class WebserviceInfo
 
   /**
    * DOCUMENT ME!
-   *
-   * @param text DOCUMENT ME!
+   * 
+   * @param text
+   *                DOCUMENT ME!
    */
   public void appendInfoText(String text)
   {
@@ -271,7 +333,7 @@ public class WebserviceInfo
 
   /**
    * DOCUMENT ME!
-   *
+   * 
    * @return DOCUMENT ME!
    */
   public String getProgressText(int which)
@@ -280,14 +342,15 @@ public class WebserviceInfo
     {
       addJobPane();
     }
-    return ( (JTextArea) ( (JScrollPane) jobPanes.get(which)).getViewport().
-            getComponent(0)).getText();
+    return ((JTextArea) ((JScrollPane) jobPanes.get(which)).getViewport()
+            .getComponent(0)).getText();
   }
 
   /**
    * DOCUMENT ME!
-   *
-   * @param text DOCUMENT ME!
+   * 
+   * @param text
+   *                DOCUMENT ME!
    */
   public void setProgressText(int which, String text)
   {
@@ -295,14 +358,15 @@ public class WebserviceInfo
     {
       addJobPane();
     }
-    ( (JTextArea) ( (JScrollPane) jobPanes.get(which)).getViewport().
-     getComponent(0)).setText(text);
+    ((JTextArea) ((JScrollPane) jobPanes.get(which)).getViewport()
+            .getComponent(0)).setText(text);
   }
 
   /**
    * DOCUMENT ME!
-   *
-   * @param text DOCUMENT ME!
+   * 
+   * @param text
+   *                DOCUMENT ME!
    */
   public void appendProgressText(int which, String text)
   {
@@ -310,8 +374,8 @@ public class WebserviceInfo
     {
       addJobPane();
     }
-    ( (JTextArea) ( (JScrollPane) jobPanes.get(which)).getViewport().
-     getComponent(0)).append(text);
+    ((JTextArea) ((JScrollPane) jobPanes.get(which)).getViewport()
+            .getComponent(0)).append(text);
   }
 
   /**
@@ -340,7 +404,9 @@ public class WebserviceInfo
 
   /**
    * get the tab title for a subjob
-   * @param which int
+   * 
+   * @param which
+   *                int
    * @return String
    */
   public String getProgressName(int which)
@@ -355,15 +421,18 @@ public class WebserviceInfo
     }
     else
     {
-      return ( (JScrollPane) jobPanes.get(which)).getViewport().getComponent(0).
-          getName();
+      return ((JScrollPane) jobPanes.get(which)).getViewport()
+              .getComponent(0).getName();
     }
   }
 
   /**
    * set the tab title for a subjob
-   * @param name String
-   * @param which int
+   * 
+   * @param name
+   *                String
+   * @param which
+   *                int
    */
   public void setProgressName(String name, int which)
   {
@@ -380,17 +449,21 @@ public class WebserviceInfo
 
   /**
    * Gui action for cancelling the current job, if possible.
-   *
-   * @param e DOCUMENT ME!
+   * 
+   * @param e
+   *                DOCUMENT ME!
    */
   protected void cancel_actionPerformed(ActionEvent e)
   {
     if (!serviceIsCancellable)
     {
+      // JBPNote : TODO: We should REALLY just tell the WSClientI to cancel
+      // anyhow - it has to stop threads and clean up
+      // JBPNote : TODO: Instead of a warning, we should have an optional 'Are
+      // you sure?' prompt
       JOptionPane.showInternalMessageDialog(Desktop.desktop,
-                                            "This job cannot be cancelled.\nJust close the window.",
-                                            "Cancel job",
-                                            JOptionPane.WARNING_MESSAGE);
+              "This job cannot be cancelled.\nJust close the window.",
+              "Cancel job", JOptionPane.WARNING_MESSAGE);
     }
     else
     {
@@ -422,7 +495,8 @@ public class WebserviceInfo
   }
 
   /**
-   * called when job has finished but no result objects can be passed back to user
+   * called when job has finished but no result objects can be passed back to
+   * user
    */
   public void setFinishedNoResults()
   {
@@ -432,10 +506,10 @@ public class WebserviceInfo
     validate();
   }
 
-  class AnimatedPanel
-      extends JPanel implements Runnable
+  class AnimatedPanel extends JPanel implements Runnable
   {
     long startTime = 0;
+
     BufferedImage offscreen;
 
     public void run()
@@ -448,8 +522,7 @@ public class WebserviceInfo
         {
           Thread.sleep(50);
 
-          int units = (int) ( (System.currentTimeMillis() - startTime) /
-                             10f);
+          int units = (int) ((System.currentTimeMillis() - startTime) / 10f);
           angle += units;
           angle %= 360;
           startTime = System.currentTimeMillis();
@@ -460,8 +533,7 @@ public class WebserviceInfo
           }
 
           repaint();
-        }
-        catch (Exception ex)
+        } catch (Exception ex)
         {
         }
       }
@@ -472,10 +544,10 @@ public class WebserviceInfo
     void drawPanel()
     {
       if (offscreen == null || offscreen.getWidth(this) != getWidth()
-          || offscreen.getHeight(this) != getHeight())
+              || offscreen.getHeight(this) != getHeight())
       {
         offscreen = new BufferedImage(getWidth(), getHeight(),
-                                      BufferedImage.TYPE_INT_ARGB);
+                BufferedImage.TYPE_INT_ARGB);
       }
 
       Graphics2D g = (Graphics2D) offscreen.getGraphics();
@@ -488,44 +560,42 @@ public class WebserviceInfo
 
       switch (currentStatus)
       {
-        case STATE_QUEUING:
-          g.drawString(title.concat(" - queuing"), 60, 30);
+      case STATE_QUEUING:
+        g.drawString(title.concat(" - queuing"), 60, 30);
 
-          break;
+        break;
 
-        case STATE_RUNNING:
-          g.drawString(title.concat(" - running"), 60, 30);
+      case STATE_RUNNING:
+        g.drawString(title.concat(" - running"), 60, 30);
 
-          break;
+        break;
 
-        case STATE_STOPPED_OK:
-          g.drawString(title.concat(" - complete"), 60, 30);
+      case STATE_STOPPED_OK:
+        g.drawString(title.concat(" - complete"), 60, 30);
 
-          break;
+        break;
 
-        case STATE_CANCELLED_OK:
-          g.drawString(title.concat(" - job cancelled!"), 60, 30);
+      case STATE_CANCELLED_OK:
+        g.drawString(title.concat(" - job cancelled!"), 60, 30);
 
-          break;
+        break;
 
-        case STATE_STOPPED_ERROR:
-          g.drawString(title.concat(" - job error!"), 60, 30);
+      case STATE_STOPPED_ERROR:
+        g.drawString(title.concat(" - job error!"), 60, 30);
 
-          break;
+        break;
 
-        case STATE_STOPPED_SERVERERROR:
-          g.drawString(title.concat(" - Server Error! (try later)"),
-                       60,
-                       30);
+      case STATE_STOPPED_SERVERERROR:
+        g.drawString(title.concat(" - Server Error! (try later)"), 60, 30);
 
-          break;
+        break;
       }
 
       if (image != null)
       {
         g.rotate(Math.toRadians(angle), 28, 28);
         g.drawImage(image, 10, 10, this);
-        g.rotate( -Math.toRadians(angle), 28, 28);
+        g.rotate(-Math.toRadians(angle), 28, 28);
       }
     }
 
index 02028b4..8aea33d 100755 (executable)
@@ -380,4 +380,41 @@ public class Discoverer
     };
     discoverThread.start();
   }
+  /**
+   * binding service abstract name to handler class
+   */
+  private static Hashtable serviceClientBindings;
+  public static WSClient getServiceClient(ServiceHandle sh)
+  {
+    if (serviceClientBindings==null)
+    {
+      // get a list from Config or create below
+      serviceClientBindings = new Hashtable();
+      serviceClientBindings.put("MsaWS",new MsaWSClient());
+      serviceClientBindings.put("SecStrPred",new JPredClient());
+      serviceClientBindings.put("SeqSearch",new SeqSearchWSClient());
+    }
+    WSClient instance = (WSClient) serviceClientBindings.get(sh.getAbstractName());
+    if (instance==null)
+    {
+      System.err.println("WARNING - POSSIBLE IMPLEMENTATION ERROR - cannot find WSClient implementation for "+sh.getAbstractName());
+    } else
+    {
+      instance.serviceHandle = sh;
+    }
+    return instance;
+  }
+  /**
+   * notes on discovery service
+   * 1. need to allow multiple discovery source urls.
+   * 2. user interface to add/control list of urls in preferences
+   * notes on wsclient discovery
+   * 1. need a classpath property with list of additional plugin directories
+   * 2. optional config to cite specific bindings between class name and Abstract service name.
+   * 3. precedence for automatic discovery by using getAbstractName for WSClient - user added plugins override default plugins ?
+   * notes on wsclient gui
+   * code for gui attachment now moved to wsclient implementation. Needs more abstraction but approach seems to work.
+   * is it possible to 'generalise' the data retrieval calls further ? current methods are very specific (gatherForMSA or gatherForSeqOrMsaSecStrPred), new methods for conservation (group or alignment), treecalc (aligned profile), seqannot (sequences selected from dataset, annotation back to dataset).
+   *  
+   */
 }
index 80ed959..e14816c 100755 (executable)
@@ -18,6 +18,8 @@
  */
 package jalview.ws;
 
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
 import java.util.*;
 
 import javax.swing.*;
@@ -217,6 +219,13 @@ public class JPredClient
     startJPredClient(title, seq, null);
   }
 
+  public JPredClient()
+  {
+
+    super();
+    // add a class reference to the list
+  }
+
   private void startJPredClient(String title, SequenceI[] msf,
                                 AlignFrame parentFrame)
   {
@@ -328,4 +337,32 @@ public class JPredClient
 
     return server;
   }
+
+  public void attachWSMenuEntry(JMenu wsmenu, final ServiceHandle sh, final AlignFrame af)
+  {
+    final JMenuItem method = new JMenuItem(sh.getName());
+    method.setToolTipText(sh.getEndpointURL());
+    method.addActionListener(new ActionListener()
+    {
+      public void actionPerformed(ActionEvent e)
+      {
+        AlignmentView msa = af.gatherSeqOrMsaForSecStrPrediction();
+        if (msa.getSequences().length == 1)
+        {
+          // Single Sequence prediction
+          new jalview.ws.JPredClient(sh, af.getTitle(), false, msa, af, true);
+        }
+        else
+        {
+          if (msa.getSequences().length > 1)
+          {
+            // Sequence profile based prediction
+            new jalview.ws.JPredClient(sh,
+                af.getTitle(), true, msa, af, true);
+          }
+        }
+      }
+    });
+    wsmenu.add(method);
+  }
 }
index 03a801e..63e60d7 100755 (executable)
@@ -18,6 +18,9 @@
  */
 package jalview.ws;
 
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
 import javax.swing.*;
 
 import ext.vamsas.*;
@@ -83,6 +86,12 @@ public class MsaWSClient
 
   }
 
+  public MsaWSClient()
+  {
+    super();
+    // add a class reference to the list
+  }
+
   private void startMsaWSClient(String altitle, AlignmentView msa,
                                 boolean submitGaps, boolean preserveOrder,
                                 Alignment seqdataset)
@@ -167,4 +176,55 @@ public class MsaWSClient
   {
     return "Multiple Sequence Alignment";
   }
+  /**
+   * look at ourselves and work out if we are a service that can take a profile and align to it 
+   * @return true if we can send gapped sequences to the alignment service
+   */
+  private boolean canSubmitGaps()
+  {
+    // TODO: query service or extract service handle props to check if we can realign
+    return (WebServiceName.indexOf("lustal") > -1); // cheat!
+  }
+  public void attachWSMenuEntry(JMenu msawsmenu, final ServiceHandle serviceHandle, final AlignFrame alignFrame)
+  {
+    setWebService(serviceHandle, true); // headless
+    JMenuItem method = new JMenuItem(WebServiceName);
+    method.setToolTipText(WsURL);
+    method.addActionListener(new ActionListener()
+    {
+      public void actionPerformed(ActionEvent e)
+      {
+        AlignmentView msa = alignFrame.gatherSequencesForAlignment();
+        new jalview.ws.MsaWSClient(serviceHandle, alignFrame.getTitle(), msa,
+                                   false, true,
+                                   alignFrame.getViewport().getAlignment().getDataset(),
+                                   alignFrame);
+
+      }
+
+    });
+    msawsmenu.add(method);    
+    if (canSubmitGaps())
+    {
+      // We know that ClustalWS can accept partial alignments for refinement.
+      final JMenuItem methodR = new JMenuItem(serviceHandle.getName()+" Realign");
+      methodR.setToolTipText(WsURL);
+        methodR.addActionListener(new ActionListener()
+      {
+        public void actionPerformed(ActionEvent e)
+        {
+          AlignmentView msa = alignFrame.gatherSequencesForAlignment();
+          new jalview.ws.MsaWSClient(serviceHandle, alignFrame.getTitle(), msa,
+                                     true, true,
+                                     alignFrame.getViewport().getAlignment().getDataset(),
+                                     alignFrame);
+
+        }
+
+      });
+      msawsmenu.add(methodR);
+
+    }
+
+  }
 }
diff --git a/src/jalview/ws/SeqSearchWSClient.java b/src/jalview/ws/SeqSearchWSClient.java
new file mode 100644 (file)
index 0000000..e52cefd
--- /dev/null
@@ -0,0 +1,294 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer
+ * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ */
+package jalview.ws;
+
+import java.awt.Component;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.StringTokenizer;
+import java.util.Vector;
+
+import javax.swing.*;
+
+import ext.vamsas.*;
+import jalview.datamodel.*;
+import jalview.gui.*;
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author $author$
+ * @version $Revision$
+ */
+public class SeqSearchWSClient
+    extends WSClient
+{
+  /**
+   * server is a WSDL2Java generated stub for an archetypal MsaWSI service.
+   */
+  ext.vamsas.SeqSearchI server;
+  AlignFrame alignFrame;
+
+  /**
+   * Creates a new MsaWSClient object that uses a service
+   * given by an externally retrieved ServiceHandle
+   *
+   * @param sh service handle of type AbstractName(MsaWS)
+   * @param altitle DOCUMENT ME!
+   * @param msa DOCUMENT ME!
+   * @param submitGaps DOCUMENT ME!
+   * @param preserveOrder DOCUMENT ME!
+   */
+
+  public SeqSearchWSClient(ext.vamsas.ServiceHandle sh, String altitle,
+                     jalview.datamodel.AlignmentView msa, String db,
+                     Alignment seqdataset,
+                     AlignFrame _alignFrame)
+  {
+    super();
+    alignFrame = _alignFrame;
+    // can generalise the two errors below for metadata mapping from interface name to service client name
+    if (!sh.getAbstractName().equals(this.getServiceActionKey()))
+    {
+      JOptionPane.showMessageDialog(Desktop.desktop,
+                                    "The Service called \n" + sh.getName() +
+                                    "\nis not a \nSequence Search Service !",
+                                    "Internal Jalview Error",
+                                    JOptionPane.WARNING_MESSAGE);
+
+      return;
+    }
+
+    if ( (wsInfo = setWebService(sh)) == null)
+    {
+      JOptionPane.showMessageDialog(Desktop.desktop,
+                                    "The Sequence Search Service named " +
+                                    sh.getName() +
+                                    " is unknown", "Internal Jalview Error",
+                                    JOptionPane.WARNING_MESSAGE);
+
+      return;
+    }
+    startSeqSearchClient(altitle, msa, db, seqdataset);
+
+  }
+  /**
+ * non-process web service interaction - use this for calling HEADLESS synchronous service methods
+ * @param sh
+ */
+  public SeqSearchWSClient(ServiceHandle sh)
+  {
+    setWebService(sh, true);
+  }
+
+  public SeqSearchWSClient()
+  {
+
+    super();
+    // add a class reference to the list
+  }
+  private void startSeqSearchClient(String altitle, AlignmentView msa,
+                                String db,
+                                Alignment seqdataset)
+  {
+    if (!locateWebService())
+    {
+      return;
+    }
+    String visdb = (db==null || db == "") ? "default" : db; // need a visible name for a sequence db
+    boolean profileSearch = msa.getSequences().length>2 ? true : false;
+    // single sequence or profile from alignment view
+    wsInfo.setProgressText( "Searching "+visdb+(!profileSearch ? " with sequence "+msa.getSequences()[0].getRefSeq().getName()
+              : " with profile") +
+                           " from " + altitle + "\nJob details\n");
+    
+    String jobtitle = WebServiceName+((WebServiceName.indexOf("earch")>-1) ? " " : " search ")+" of "+visdb+(!profileSearch ? " with sequence "+msa.getSequences()[0].getRefSeq().getName()
+            : " with profile") +
+            " from " + altitle;
+    SeqSearchWSThread ssthread = new SeqSearchWSThread(server, WsURL, wsInfo, alignFrame,
+                                            WebServiceName,
+                                            jobtitle,
+                                            msa,
+                                            db,
+                                            seqdataset);
+    wsInfo.setthisService(ssthread);
+    ssthread.start();
+  }
+
+  /**
+   * Initializes the server field with a valid service implementation.
+   *
+   * @return true if service was located.
+   */
+  private boolean locateWebService()
+  {
+    // this can be abstracted using reflection
+    // TODO: MuscleWS transmuted to generic MsaWS client
+    SeqSearchServiceLocator loc = new SeqSearchServiceLocator(); // Default
+
+    try
+    {
+      this.server = (SeqSearchI) loc.getSeqSearchService(new java.net.URL(WsURL));
+      ( (SeqSearchServiceSoapBindingStub)this.server).setTimeout(60000); // One minute timeout
+    }
+    catch (Exception ex)
+    {
+      wsInfo.setProgressText("Serious! " + WebServiceName +
+                             " Service location failed\nfor URL :" + WsURL +
+                             "\n" +
+                             ex.getMessage());
+      wsInfo.setStatus(WebserviceInfo.ERROR);
+      ex.printStackTrace();
+
+      return false;
+    }
+
+    loc.getEngine().setOption("axis", "1");
+
+    return true;
+  }
+
+  protected String getServiceActionKey()
+  {
+    return "SeqSearch";
+  }
+
+  protected String getServiceActionDescription()
+  {
+    return "Sequence Database Search";
+  }
+  // simple caching of db parameters for each service endpoint
+  private static Hashtable dbParamsForEndpoint;
+  static { 
+    dbParamsForEndpoint = new Hashtable();
+  }
+  public String[] getSupportedDatabases() throws Exception
+  {
+    
+    // check that we haven't already been to this service endpoint
+    if (dbParamsForEndpoint.containsKey(WsURL))
+    {
+      return (String[]) dbParamsForEndpoint.get(WsURL);
+    }
+    if (!locateWebService())
+    {
+      throw new Exception("Cannot contact service endpoint at "+WsURL); 
+    }
+    String database = server.getDatabase();
+    if (database==null)
+    {
+      dbParamsForEndpoint.put(WsURL, new String[] {});
+      return null;
+    }
+    StringTokenizer en = new StringTokenizer(database.trim(), ",| ");
+    String[] dbs = new String[en.countTokens()];
+    for (int i=0; i<dbs.length; i++)
+    {
+      dbs[i++] = en.nextToken().trim();
+    }
+    dbParamsForEndpoint.put(WsURL, dbs);
+    return dbs;
+  }
+  public void attachWSMenuEntry(JMenu wsmenu, final ServiceHandle sh,
+          final AlignFrame af)
+  {
+    // look for existing database service submenus on wsmenu
+    Hashtable dbsrchs = new Hashtable();
+    Vector newdbsrch = new Vector();
+    Component entries[] =  wsmenu.getComponents();
+    for (int i = 0; entries!=null && i<entries.length; i++)
+    {
+      if (entries[i] instanceof JMenu)
+      {
+        dbsrchs.put(entries[i].getName(), entries[i]);
+      }
+    }
+    JMenu defmenu=(JMenu) dbsrchs.get("Default Database");
+    if (defmenu==null)
+    {
+      dbsrchs.put("Default Database", defmenu = new JMenu("Default Database"));
+      newdbsrch.addElement(defmenu);
+    }
+      
+      String dbs[] = null;
+      try {
+        dbs = new jalview.ws.SeqSearchWSClient(sh).getSupportedDatabases();
+      } catch (Exception e)
+      {
+        jalview.bin.Cache.log.warn("Database list request failed, so disabling SeqSearch Service client "+sh.getName()+" at "+sh.getEndpointURL(), e);
+        return;
+      }
+      JMenuItem method;
+      // do default entry
+      defmenu.add(method = new JMenuItem(sh.getName()));
+      method.setToolTipText(sh.getEndpointURL());
+      method.addActionListener(new ActionListener()
+      {
+        public void actionPerformed(ActionEvent e)
+        {
+          // use same input gatherer as for secondary structure prediction
+          // we could actually parameterise the gatherer method here...
+          AlignmentView msa = af.gatherSeqOrMsaForSecStrPrediction();
+          new jalview.ws.SeqSearchWSClient(sh, af.getTitle(), msa, null, 
+                  af.getViewport().getAlignment().getDataset(),
+                  af);
+          }
+        }
+      );
+      // add entry for each database the service supports
+      for (int db=0; dbs!=null && db<dbs.length; db++)
+      {
+        JMenu dbmenu = (JMenu) dbsrchs.get(dbs[db]);
+        if (dbmenu==null)
+        {
+          dbsrchs.put(dbs[db], dbmenu = new JMenu(dbs[db]));
+          newdbsrch.addElement(dbmenu);
+        }
+        // add the client handler code for this service
+        dbmenu.add(method = new JMenuItem(sh.getName()));
+        method.setToolTipText(sh.getEndpointURL());
+        final String searchdb = dbs[db];
+        method.addActionListener(new ActionListener()
+        {
+          public void actionPerformed(ActionEvent e)
+          {
+            AlignmentView msa = af.gatherSeqOrMsaForSecStrPrediction();
+            new jalview.ws.SeqSearchWSClient(sh, af.getTitle(), msa, searchdb, 
+                      af.getViewport().getAlignment().getDataset(),
+                      af);
+          }
+        });
+      }
+    // add the databases onto the seqsearch menu
+    Enumeration e = newdbsrch.elements();
+    while (e.hasMoreElements())
+    {
+      Object el = e.nextElement();
+      if (el instanceof JMenu)
+      {
+        wsmenu.add((JMenu) el);
+      } else {
+        wsmenu.add((JMenuItem) el);
+      }
+    }
+    
+  }
+}
diff --git a/src/jalview/ws/SeqSearchWSThread.java b/src/jalview/ws/SeqSearchWSThread.java
new file mode 100644 (file)
index 0000000..07686fe
--- /dev/null
@@ -0,0 +1,667 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer
+ * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ */
+package jalview.ws;
+
+import java.util.*;
+
+import jalview.analysis.*;
+import jalview.bin.*;
+import jalview.datamodel.*;
+import jalview.gui.*;
+import jalview.io.NewickFile;
+import vamsas.objects.simple.MsaResult;
+import vamsas.objects.simple.SeqSearchResult;
+
+/**
+ * <p>
+ * Title:
+ * </p>
+ *
+ * <p>
+ * Description:
+ * </p>
+ *
+ * <p>
+ * Copyright: Copyright (c) 2004
+ * </p>
+ *
+ * <p>
+ * Company: Dundee University
+ * </p>
+ *
+ * @author not attributable
+ * @version 1.0
+ */
+class SeqSearchWSThread
+    extends WSThread implements WSClientI
+{
+  String dbs=null;
+  boolean profile=false;
+
+  class SeqSearchWSJob
+      extends WSThread.WSJob
+  {
+    // hold special input for this
+    vamsas.objects.simple.SequenceSet seqs = new vamsas.objects.simple.
+        SequenceSet();
+
+    /**
+     * MsaWSJob
+     *
+     * @param jobNum
+     *            int
+     * @param jobId
+     *            String
+     */
+    public SeqSearchWSJob(int jobNum, SequenceI[] inSeqs)
+    {
+      this.jobnum = jobNum;
+      if (!prepareInput(inSeqs, 2))
+      {
+        submitted = true;
+        subjobComplete = true;
+        result = new MsaResult();
+        result.setFinished(true);
+        result.setStatus("Job never ran - input returned to user.");
+      }
+
+    }
+
+    Hashtable SeqNames = new Hashtable();
+    Vector emptySeqs = new Vector();
+    /**
+     * prepare input sequences for service
+     * @param seqs jalview sequences to be prepared
+     * @param minlen minimum number of residues required for this MsaWS service
+     * @return true if seqs contains sequences to be submitted to service.
+     */
+    private boolean prepareInput(SequenceI[] seqs, int minlen)
+    {
+      int nseqs = 0;
+      if (minlen < 0)
+      {
+        throw new Error("Implementation error: minlen must be zero or more.");
+      }
+      for (int i = 0; i < seqs.length; i++)
+      {
+        if (seqs[i].getEnd() - seqs[i].getStart() > minlen - 1)
+        {
+          nseqs++;
+        }
+      }
+      boolean valid = nseqs >= 1; // need at least one sequence for valid input TODO: generalise
+      vamsas.objects.simple.Sequence[] seqarray =
+          (valid)
+          ? new vamsas.objects.simple.Sequence[nseqs]
+          : null;
+      boolean submitGaps = (nseqs==1) ? false : true; // profile is submitted with gaps  
+      for (int i = 0, n = 0; i < seqs.length; i++)
+      {
+
+        String newname = jalview.analysis.SeqsetUtils.unique_name(i); // same
+        // for
+        // any
+        // subjob
+        SeqNames.put(newname, jalview.analysis.SeqsetUtils
+                     .SeqCharacterHash(seqs[i]));
+        if (valid && seqs[i].getEnd() - seqs[i].getStart() > minlen - 1)
+        {
+          seqarray[n] = new vamsas.objects.simple.Sequence();
+          seqarray[n].setId(newname);
+          seqarray[n++].setSeq( (submitGaps) ? seqs[i].getSequenceAsString()
+                               : AlignSeq.extractGaps(
+                                   jalview.util.Comparison.GapChars, seqs[i]
+                                   .getSequenceAsString()));
+        }
+        else
+        {
+          String empty = null;
+          if (seqs[i].getEnd() >= seqs[i].getStart())
+          {
+            empty = (submitGaps) ? seqs[i].getSequenceAsString()
+                : AlignSeq.extractGaps(
+                    jalview.util.Comparison.GapChars, seqs[i]
+                    .getSequenceAsString());
+          }
+          emptySeqs.add(new String[]
+                        {newname, empty});
+        }
+      }
+      if (submitGaps)
+      {
+        // almost certainly have to remove gapped columns here
+      }
+      this.seqs = new vamsas.objects.simple.SequenceSet();
+      this.seqs.setSeqs(seqarray);
+      return valid;
+    }
+
+    /**
+     *
+     * @return true if getAlignment will return a valid alignment result.
+     */
+    public boolean hasResults()
+    {
+      if (subjobComplete && result != null && result.isFinished()
+          && ( (SeqSearchResult) result).getAlignment() != null &&
+          ( (SeqSearchResult) result).getAlignment().getSeqs() != null)
+      {
+        return true;
+      }
+      return false;
+    }
+
+    /**
+     * return sequence search results for display
+     * @return null or { Alignment(+features and annotation), NewickFile)}
+     */
+    public Object[] getAlignment(Alignment dataset, Hashtable featureColours)
+    {
+
+      if (result != null && result.isFinished())
+      {
+        SequenceI[] alseqs = null;
+        //char alseq_gapchar = '-';
+        //int alseq_l = 0;
+        if ( ( (SeqSearchResult) result).getAlignment() != null)
+        {
+          alseqs = getVamsasAlignment( ( (SeqSearchResult) result).getAlignment());
+          //alseq_gapchar = ( (SeqSearchResult) result).getAlignment().getGapchar().charAt(0);
+          //alseq_l = alseqs.length;
+        }
+        /**
+         * what has to be done. 1 - annotate returned alignment with annotation file and sequence features file, and associate any tree-nodes.
+         * 2. connect alignment back to any associated dataset: 2.a. deuniquify recovers sequence information - but additionally, 
+         * relocations must be made from the returned aligned sequence back to the dataset.
+         */
+        // construct annotated alignment as it would be done by the jalview applet
+        jalview.datamodel.Alignment al = new Alignment(alseqs);
+        // al.setDataset(dataset);
+        // make dataset
+        String inFile=null;
+        try {
+          inFile = ((SeqSearchResult) result).getAnnotation();
+          if (inFile!=null && inFile.length()>0)
+          {
+            new jalview.io.AnnotationFile().readAnnotationFile(al, inFile, jalview.io.AppletFormatAdapter.PASTE);
+          }
+          }
+        catch (Exception e)
+        {
+          System.err.println("Failed to parse the annotation file associated with the alignment.");
+          System.err.println(">>>EOF"+inFile+"\n<<<EOF\n");
+          e.printStackTrace(System.err);
+        }
+        
+        try {
+          inFile = ((SeqSearchResult) result).getFeatures();
+          if (inFile!=null && inFile.length()>0)
+          {
+            jalview.io.FeaturesFile ff = new jalview.io.FeaturesFile(inFile, jalview.io.AppletFormatAdapter.PASTE);
+            ff.parse(al, featureColours, false);
+          }
+        }
+        catch (Exception e)
+        {
+          System.err.println("Failed to parse the Features file associated with the alignment.");
+          System.err.println(">>>EOF"+inFile+"\n<<<EOF\n");
+          e.printStackTrace(System.err);
+        }
+        jalview.io.NewickFile nf=null;
+        try {
+          inFile = ((SeqSearchResult) result).getNewickTree();
+          if (inFile!=null && inFile.length()>0)
+          {
+            nf = new jalview.io.NewickFile(inFile, jalview.io.AppletFormatAdapter.PASTE);
+            if (!nf.isValid()) {
+              nf.close();
+              nf = null;
+            }
+          }
+        }
+        catch (Exception e)
+        {
+          System.err.println("Failed to parse the treeFile associated with the alignment.");
+          System.err.println(">>>EOF"+inFile+"\n<<<EOF\n");
+          e.printStackTrace(System.err);
+        }
+        
+        /* TODO: housekeeping w.r.t. recovery of dataset and annotation references for input sequences, and then dataset sequence creation for new sequences retrieved from service
+         * // finally, attempt to de-uniquify to recover input sequence identity, and try to map back onto dataset
+        Note: this
+        jalview.analysis.SeqsetUtils.deuniquify(SeqNames, alseqs, true);
+        will NOT WORK - the returned alignment may contain multiple versions of the input sequence, each being a subsequence of the original.
+        deuniquify also removes existing annotation and features added in the previous step...
+        al.setDataset(dataset);
+        // add in new sequences retrieved from sequence search which are not already in dataset.
+        // trigger a 'fetchDBids' to annotate sequences with database ids...
+        */
+
+        return new Object[]
+            {
+            al, nf};
+      }
+      return null;
+    }
+
+    /**
+     * mark subjob as cancelled and set result object appropriatly
+     */
+    void cancel()
+    {
+      cancelled = true;
+      subjobComplete = true;
+      result = null;
+    }
+
+    /**
+     *
+     * @return boolean true if job can be submitted.
+     */
+    boolean hasValidInput()
+    {
+      if (seqs.getSeqs() != null)
+      {
+        return true;
+      }
+      return false;
+    }
+  }
+
+  String alTitle; // name which will be used to form new alignment window.
+  Alignment dataset; // dataset to which the new alignment will be
+
+  // associated.
+
+  ext.vamsas.SeqSearchI server = null;
+
+  private String dbArg;
+  /**
+   * set basic options for this (group) of Msa jobs
+   *
+   * @param subgaps
+   *            boolean
+   * @param presorder
+   *            boolean
+   */
+  SeqSearchWSThread(ext.vamsas.SeqSearchI server, String wsUrl,
+              WebserviceInfo wsinfo, jalview.gui.AlignFrame alFrame,
+              AlignmentView alview,
+              String wsname, String db)
+  {
+    super(alFrame, wsinfo, alview, wsname, wsUrl);
+    this.server = server;
+    this.dbArg = db;
+  }
+
+  /**
+   * create one or more Msa jobs to align visible seuqences in _msa
+   *
+   * @param title
+   *            String
+   * @param _msa
+   *            AlignmentView
+   * @param subgaps
+   *            boolean
+   * @param presorder
+   *            boolean
+   * @param seqset
+   *            Alignment
+   */
+  SeqSearchWSThread(ext.vamsas.SeqSearchI server, String wsUrl,
+              WebserviceInfo wsinfo, jalview.gui.AlignFrame alFrame,
+              String wsname, String title, AlignmentView _msa, String db, Alignment seqset)
+  {
+    this(server, wsUrl, wsinfo, alFrame, _msa, wsname, db);
+    OutputHeader = wsInfo.getProgressText();
+    alTitle = title;
+    dataset = seqset;
+
+    SequenceI[][] conmsa = _msa.getVisibleContigs('-');
+    if (conmsa != null)
+    {
+      int njobs = conmsa.length;
+      jobs = new SeqSearchWSJob[njobs];
+      for (int j = 0; j < njobs; j++)
+      {
+        if (j != 0)
+        {
+          jobs[j] = new SeqSearchWSJob(wsinfo.addJobPane(), conmsa[j]);
+        }
+        else
+        {
+          jobs[j] = new SeqSearchWSJob(0, conmsa[j]);
+        }
+        if (njobs > 0)
+        {
+          wsinfo.setProgressName("region " + jobs[j].jobnum, jobs[j].jobnum);
+        }
+        wsinfo.setProgressText(jobs[j].jobnum, OutputHeader);
+      }
+    }
+  }
+
+  public boolean isCancellable()
+  {
+    return true;
+  }
+
+  public void cancelJob()
+  {
+    if (!jobComplete && jobs != null)
+    {
+      boolean cancelled = true;
+      for (int job = 0; job < jobs.length; job++)
+      {
+        if (jobs[job].submitted && !jobs[job].subjobComplete)
+        {
+          String cancelledMessage = "";
+          try
+          {
+            vamsas.objects.simple.WsJobId cancelledJob = server
+                .cancel(jobs[job].jobId);
+            if (cancelledJob.getStatus() == 2)
+            {
+              // CANCELLED_JOB
+              cancelledMessage = "Job cancelled.";
+              ( (SeqSearchWSJob) jobs[job]).cancel();
+              wsInfo.setStatus(jobs[job].jobnum,
+                               WebserviceInfo.STATE_CANCELLED_OK);
+            }
+            else if (cancelledJob.getStatus() == 3)
+            {
+              // VALID UNSTOPPABLE JOB
+              cancelledMessage +=
+                  "Server cannot cancel this job. just close the window.\n";
+              cancelled = false;
+              // wsInfo.setStatus(jobs[job].jobnum,
+              //                 WebserviceInfo.STATE_RUNNING);
+            }
+
+            if (cancelledJob.getJobId() != null)
+            {
+              cancelledMessage += ("[" + cancelledJob.getJobId() + "]");
+            }
+
+            cancelledMessage += "\n";
+          }
+          catch (Exception exc)
+          {
+            cancelledMessage +=
+                ("\nProblems cancelling the job : Exception received...\n"
+                 + exc + "\n");
+            Cache.log.warn("Exception whilst cancelling " + jobs[job].jobId,
+                           exc);
+          }
+          wsInfo.setProgressText(jobs[job].jobnum, OutputHeader
+                                 + cancelledMessage + "\n");
+        }
+      }
+      if (cancelled)
+      {
+        wsInfo.setStatus(WebserviceInfo.STATE_CANCELLED_OK);
+        jobComplete = true;
+      }
+      this.interrupt(); // kick thread to update job states.
+    }
+    else
+    {
+      if (!jobComplete)
+      {
+        wsInfo
+            .setProgressText(OutputHeader
+                             + "Server cannot cancel this job because it has not been submitted properly. just close the window.\n");
+      }
+    }
+  }
+
+  void pollJob(WSJob job)
+      throws Exception
+  {
+    ( (SeqSearchWSJob) job).result = server.getResult( ( (SeqSearchWSJob) job).jobId);
+  }
+
+  void StartJob(WSJob job)
+  {
+    if (! (job instanceof SeqSearchWSJob))
+    {
+      throw new Error("StartJob(MsaWSJob) called on a WSJobInstance " +
+                      job.getClass());
+    }
+    SeqSearchWSJob j = (SeqSearchWSJob) job;
+    if (j.submitted)
+    {
+      if (Cache.log.isDebugEnabled())
+      {
+        Cache.log.debug("Tried to submit an already submitted job " + j.jobId);
+      }
+      return;
+    }
+    if (j.seqs.getSeqs() == null)
+    {
+      // special case - selection consisted entirely of empty sequences...
+      j.submitted = true;
+      j.result = new MsaResult();
+      j.result.setFinished(true);
+      j.result.setStatus("Empty Alignment Job");
+      ( (MsaResult) j.result).setMsa(null);
+    }
+    try
+    {
+      vamsas.objects.simple.WsJobId jobsubmit = server.search(j.seqs.getSeqs()[0], dbArg);
+
+      if ( (jobsubmit != null) && (jobsubmit.getStatus() == 1))
+      {
+        j.jobId = jobsubmit.getJobId();
+        j.submitted = true;
+        j.subjobComplete = false;
+        // System.out.println(WsURL + " Job Id '" + jobId + "'");
+      }
+      else
+      {
+        if (jobsubmit == null)
+        {
+          throw new Exception(
+              "Server at "
+              + WsUrl
+              +
+              " returned null object, it probably cannot be contacted. Try again later ?");
+        }
+
+        throw new Exception(jobsubmit.getJobId());
+      }
+    }
+    catch (Exception e)
+    {
+      // TODO: JBPNote catch timeout or other fault types explicitly
+      // For unexpected errors
+      System.err
+          .println(WebServiceName
+                   + "Client: Failed to submit the sequences for alignment (probably a server side problem)\n"
+                   + "When contacting Server:" + WsUrl + "\n"
+                   + e.toString() + "\n");
+      j.allowedServerExceptions = 0;
+      wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_SERVERERROR);
+      wsInfo.setStatus(j.jobnum, WebserviceInfo.STATE_STOPPED_SERVERERROR);
+      wsInfo
+          .appendProgressText(
+              j.jobnum,
+              "Failed to submit sequences for alignment.\n"
+              + "It is most likely that there is a problem with the server.\n"
+              + "Just close the window\n");
+
+      // e.printStackTrace(); // TODO: JBPNote DEBUG
+    }
+  }
+
+  private jalview.datamodel.Sequence[] getVamsasAlignment(
+      vamsas.objects.simple.Alignment valign)
+  {
+    vamsas.objects.simple.Sequence[] seqs = valign.getSeqs().getSeqs();
+    jalview.datamodel.Sequence[] msa = new jalview.datamodel.Sequence[seqs.
+        length];
+
+    for (int i = 0, j = seqs.length; i < j; i++)
+    {
+      msa[i] = new jalview.datamodel.Sequence(seqs[i].getId(), seqs[i]
+                                              .getSeq());
+    }
+
+    return msa;
+  }
+
+  void parseResult()
+  {
+    int results = 0; // number of result sets received
+    JobStateSummary finalState = new JobStateSummary();
+    try
+    {
+      for (int j = 0; j < jobs.length; j++)
+      {
+        finalState.updateJobPanelState(wsInfo, OutputHeader, jobs[j]);
+        if (jobs[j].submitted && jobs[j].subjobComplete && jobs[j].hasResults())
+        {
+          results++;
+          vamsas.objects.simple.Alignment valign = ( (SeqSearchResult) jobs[j].result).
+              getAlignment();
+          if (valign != null)
+          {
+            wsInfo.appendProgressText(jobs[j].jobnum,
+                                      "\nAlignment Object Method Notes\n");
+            String[] lines = valign.getMethod();
+            for (int line = 0; line < lines.length; line++)
+            {
+              wsInfo.appendProgressText(jobs[j].jobnum, lines[line] + "\n");
+            }
+            // JBPNote The returned files from a webservice could be
+            //  hidden behind icons in the monitor window that,
+            // when clicked, pop up their corresponding data
+          }
+        }
+      }
+    }
+    catch (Exception ex)
+    {
+
+      Cache.log.error("Unexpected exception when processing results for " +
+                      alTitle, ex);
+      wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_ERROR);
+    }
+    if (results > 0)
+    {
+      wsInfo.showResultsNewFrame
+          .addActionListener(new java.awt.event.ActionListener()
+      {
+        public void actionPerformed(
+            java.awt.event.ActionEvent evt)
+        {
+          displayResults(true);
+        }
+      });
+      wsInfo.mergeResults
+          .addActionListener(new java.awt.event.ActionListener()
+      {
+        public void actionPerformed(
+            java.awt.event.ActionEvent evt)
+        {
+          displayResults(false);
+        }
+      });
+      wsInfo.setResultsReady();
+    }
+    else
+    {
+      wsInfo.setFinishedNoResults();
+    }
+  }
+
+  void displayResults(boolean newFrame)
+  {
+    if (!newFrame)
+    {
+      System.err.println("MERGE WITH OLD FRAME NOT IMPLEMENTED");
+      return;
+    }
+    // each subjob is an independent alignment for the moment
+    //Alignment al[] = new Alignment[jobs.length];
+    //NewickFile nf[] = new NewickFile[jobs.length];
+    for (int j = 0; j < jobs.length; j++)
+    {
+      Hashtable featureColours = new Hashtable();
+      Alignment al=null;
+      NewickFile nf = null;
+      if (jobs[j].hasResults())
+      {
+        Object[] res = ( (SeqSearchWSJob) jobs[j]).getAlignment(dataset, featureColours);
+        if (res==null) { continue; };
+        al = (Alignment) res[0];
+        nf = (NewickFile) res[1];
+      }
+      else
+      {
+        al = null;
+        nf = null;
+        continue;
+      }
+    /*
+     * We can't map new alignment back with insertions from input's hidden regions until dataset mapping is sorted out...
+     * but basically it goes like this:
+     1. Merge each domain hit back onto the visible segments in the same way as a Jnet prediction is mapped back
+     
+     Object[] newview = input.getUpdatedView(results, orders, getGapChar());
+    // trash references to original result data
+    for (int j = 0; j < jobs.length; j++)
+    {
+      results[j] = null;
+      orders[j] = null;
+    }
+    SequenceI[] alignment = (SequenceI[]) newview[0];
+    ColumnSelection columnselection = (ColumnSelection) newview[1];
+    Alignment al = new Alignment(alignment);
+
+    if (dataset != null)
+    {
+      al.setDataset(dataset);
+    }
+
+    propagateDatasetMappings(al);
+    }
+    */
+      
+      AlignFrame af = new AlignFrame(al,//  columnselection,
+              AlignFrame.DEFAULT_WIDTH,
+              AlignFrame.DEFAULT_HEIGHT);
+      if (nf!=null)
+      {
+        af.ShowNewickTree(nf, "Tree from "+this.alTitle);
+      }
+      // initialise with same renderer settings as in parent alignframe.
+      af.getFeatureRenderer().transferSettings(
+              this.featureSettings);
+      Desktop.addInternalFrame(af, alTitle,
+              AlignFrame.DEFAULT_WIDTH,
+              AlignFrame.DEFAULT_HEIGHT);
+    }
+  }
+
+  public boolean canMergeResults()
+  {
+    return false;
+  }
+}
index 29a8b92..91fd4b0 100755 (executable)
  */
 package jalview.ws;
 
+import javax.swing.JMenu;
+
 import ext.vamsas.*;
 import jalview.gui.*;
 
-public class WSClient
+public abstract class WSClient
 {
   /**
    * WSClient holds the basic attributes that are displayed to the user
@@ -73,6 +75,10 @@ public class WSClient
   {
     return setWebService(sh, false);
   }
+  /**
+   * original service handle that this client was derived from
+   */
+  ServiceHandle serviceHandle=null;
     /**
      * initialise WSClient service information attributes from the service handle
      * @param sh
@@ -102,4 +108,26 @@ public class WSClient
     }
     return wsInfo;
   }
+  /**
+   * convenience method to pass the serviceHandle reference that instantiated this 
+   * service on to the menu entry constructor
+   * @param wsmenu the menu to which any menu entries/sub menus are to be attached
+   * @param alignFrame the alignFrame instance that provides input data for the service
+   */
+  public void attachWSMenuEntry(JMenu wsmenu, final AlignFrame alignFrame)
+  {
+    if (serviceHandle==null)
+    {
+      throw new Error("IMPLEMENTATION ERROR: cannot attach WS Menu Entry without service handle reference!");
+    }
+    attachWSMenuEntry(wsmenu, serviceHandle, alignFrame);
+  }
+  /**
+   * method implemented by each WSClient implementation that creates menu entries that enact their service
+   * using data from alignFrame.
+   * @param wsmenu where new menu entries (and submenus) are to be attached
+   * @param serviceHandle the serviceHandle document for the service that entries are created for
+   * @param alignFrame
+   */
+  public abstract void attachWSMenuEntry(JMenu wsmenu, final ServiceHandle serviceHandle, final AlignFrame alignFrame);
 }
index 7a2b212..92b7bb3 100755 (executable)
@@ -21,20 +21,24 @@ package jalview.ws;
 public interface WSClientI
 {
   /**
-   * basic interface supported by web service clients 
+   * basic interface supported by web service clients used by
+   * jalview.gui.WebserviceInfo to discover GUI properties and
+   * pass events back to the client. 
+   * 
    */
   /**
-   *
-   * @return boolean true if job is cancellable
+   * TODO: change this to be a WS Job Panel GUI 'attribute' 
+   * @return boolean true if a job cancel button should be shown
    */
   boolean isCancellable();
 
   /**
+   * TODO: change this to be a WS Job Panel GUI 'attribute' 
    * @return boolean true if results can be merged into the source of input data
    */
   boolean canMergeResults();
   /**
-   * instruct client to cancel the job
+   * instruct client to cancel the job. This is also used by the GUI to  
    */
   void cancelJob();
 }
index b81a38f..a9e9b0b 100644 (file)
@@ -352,6 +352,7 @@ public abstract class WSThread
     else
     {
       Cache.log.debug("WebServiceJob poll loop finished with no jobs created.");
+      wsInfo.setFinishedNoResults();
     }
   }
 
index bd9adfa..18fa20c 100755 (executable)
-/**\r
- * Alignment.java\r
- *\r
- * This file was auto-generated from WSDL\r
- * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.\r
- */\r
-\r
-/*\r
- * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
- *\r
- * This program is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU General Public License\r
- * as published by the Free Software Foundation; either version 2\r
- * of the License, or (at your option) any later version.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
- */\r
-package vamsas.objects.simple;\r
-\r
-public class Alignment\r
-    extends vamsas.objects.simple.Object implements java.io.Serializable\r
-{\r
-  private java.lang.String gapchar;\r
-  private java.lang.String[] method;\r
-  private vamsas.objects.simple.SequenceSet seqs;\r
-  private java.lang.Object __equalsCalc = null;\r
-  private boolean __hashCodeCalc = false;\r
-\r
-  public Alignment()\r
-  {\r
-  }\r
-\r
-  public Alignment(java.lang.String gapchar, java.lang.String[] method,\r
-                   vamsas.objects.simple.SequenceSet seqs)\r
-  {\r
-    this.gapchar = gapchar;\r
-    this.method = method;\r
-    this.seqs = seqs;\r
-  }\r
-\r
-  /**\r
-   * Gets the gapchar value for this Alignment.\r
-   *\r
-   * @return gapchar\r
-   */\r
-  public java.lang.String getGapchar()\r
-  {\r
-    return gapchar;\r
-  }\r
-\r
-  /**\r
-   * Sets the gapchar value for this Alignment.\r
-   *\r
-   * @param gapchar\r
-   */\r
-  public void setGapchar(java.lang.String gapchar)\r
-  {\r
-    this.gapchar = gapchar;\r
-  }\r
-\r
-  /**\r
-   * Gets the method value for this Alignment.\r
-   *\r
-   * @return method\r
-   */\r
-  public java.lang.String[] getMethod()\r
-  {\r
-    return method;\r
-  }\r
-\r
-  /**\r
-   * Sets the method value for this Alignment.\r
-   *\r
-   * @param method\r
-   */\r
-  public void setMethod(java.lang.String[] method)\r
-  {\r
-    this.method = method;\r
-  }\r
-\r
-  /**\r
-   * Gets the seqs value for this Alignment.\r
-   *\r
-   * @return seqs\r
-   */\r
-  public vamsas.objects.simple.SequenceSet getSeqs()\r
-  {\r
-    return seqs;\r
-  }\r
-\r
-  /**\r
-   * Sets the seqs value for this Alignment.\r
-   *\r
-   * @param seqs\r
-   */\r
-  public void setSeqs(vamsas.objects.simple.SequenceSet seqs)\r
-  {\r
-    this.seqs = seqs;\r
-  }\r
-\r
-  public synchronized boolean equals(java.lang.Object obj)\r
-  {\r
-    if (! (obj instanceof Alignment))\r
-    {\r
-      return false;\r
-    }\r
-\r
-    Alignment other = (Alignment) obj;\r
-\r
-    if (obj == null)\r
-    {\r
-      return false;\r
-    }\r
-\r
-    if (this == obj)\r
-    {\r
-      return true;\r
-    }\r
-\r
-    if (__equalsCalc != null)\r
-    {\r
-      return (__equalsCalc == obj);\r
-    }\r
-\r
-    __equalsCalc = obj;\r
-\r
-    boolean _equals;\r
-    _equals = super.equals(obj) &&\r
-        ( ( (this.gapchar == null) && (other.getGapchar() == null)) ||\r
-         ( (this.gapchar != null) && this.gapchar.equals(other.getGapchar()))) &&\r
-        ( ( (this.method == null) && (other.getMethod() == null)) ||\r
-         ( (this.method != null) &&\r
-          java.util.Arrays.equals(this.method, other.getMethod()))) &&\r
-        ( ( (this.seqs == null) && (other.getSeqs() == null)) ||\r
-         ( (this.seqs != null) && this.seqs.equals(other.getSeqs())));\r
-    __equalsCalc = null;\r
-\r
-    return _equals;\r
-  }\r
-\r
-  public synchronized int hashCode()\r
-  {\r
-    if (__hashCodeCalc)\r
-    {\r
-      return 0;\r
-    }\r
-\r
-    __hashCodeCalc = true;\r
-\r
-    int _hashCode = super.hashCode();\r
-\r
-    if (getGapchar() != null)\r
-    {\r
-      _hashCode += getGapchar().hashCode();\r
-    }\r
-\r
-    if (getMethod() != null)\r
-    {\r
-      for (int i = 0; i < java.lang.reflect.Array.getLength(getMethod());\r
-           i++)\r
-      {\r
-        java.lang.Object obj = java.lang.reflect.Array.get(getMethod(),\r
-            i);\r
-\r
-        if ( (obj != null) && !obj.getClass().isArray())\r
-        {\r
-          _hashCode += obj.hashCode();\r
-        }\r
-      }\r
-    }\r
-\r
-    if (getSeqs() != null)\r
-    {\r
-      _hashCode += getSeqs().hashCode();\r
-    }\r
-\r
-    __hashCodeCalc = false;\r
-\r
-    return _hashCode;\r
-  }\r
-}\r
+/**
+ * Alignment.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
+ */
+
+package vamsas.objects.simple;
+
+public class Alignment  extends vamsas.objects.simple.Object  implements java.io.Serializable {
+    private java.lang.String gapchar;
+    private java.lang.String[] method;
+    private vamsas.objects.simple.SequenceSet seqs;
+
+    public Alignment() {
+    }
+
+    public Alignment(
+           java.lang.String gapchar,
+           java.lang.String[] method,
+           vamsas.objects.simple.SequenceSet seqs) {
+           this.gapchar = gapchar;
+           this.method = method;
+           this.seqs = seqs;
+    }
+
+
+    /**
+     * Gets the gapchar value for this Alignment.
+     * 
+     * @return gapchar
+     */
+    public java.lang.String getGapchar() {
+        return gapchar;
+    }
+
+
+    /**
+     * Sets the gapchar value for this Alignment.
+     * 
+     * @param gapchar
+     */
+    public void setGapchar(java.lang.String gapchar) {
+        this.gapchar = gapchar;
+    }
+
+
+    /**
+     * Gets the method value for this Alignment.
+     * 
+     * @return method
+     */
+    public java.lang.String[] getMethod() {
+        return method;
+    }
+
+
+    /**
+     * Sets the method value for this Alignment.
+     * 
+     * @param method
+     */
+    public void setMethod(java.lang.String[] method) {
+        this.method = method;
+    }
+
+
+    /**
+     * Gets the seqs value for this Alignment.
+     * 
+     * @return seqs
+     */
+    public vamsas.objects.simple.SequenceSet getSeqs() {
+        return seqs;
+    }
+
+
+    /**
+     * Sets the seqs value for this Alignment.
+     * 
+     * @param seqs
+     */
+    public void setSeqs(vamsas.objects.simple.SequenceSet seqs) {
+        this.seqs = seqs;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof Alignment)) return false;
+        Alignment other = (Alignment) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = super.equals(obj) && 
+            ((this.gapchar==null && other.getGapchar()==null) || 
+             (this.gapchar!=null &&
+              this.gapchar.equals(other.getGapchar()))) &&
+            ((this.method==null && other.getMethod()==null) || 
+             (this.method!=null &&
+              java.util.Arrays.equals(this.method, other.getMethod()))) &&
+            ((this.seqs==null && other.getSeqs()==null) || 
+             (this.seqs!=null &&
+              this.seqs.equals(other.getSeqs())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = super.hashCode();
+        if (getGapchar() != null) {
+            _hashCode += getGapchar().hashCode();
+        }
+        if (getMethod() != null) {
+            for (int i=0;
+                 i<java.lang.reflect.Array.getLength(getMethod());
+                 i++) {
+                java.lang.Object obj = java.lang.reflect.Array.get(getMethod(), i);
+                if (obj != null &&
+                    !obj.getClass().isArray()) {
+                    _hashCode += obj.hashCode();
+                }
+            }
+        }
+        if (getSeqs() != null) {
+            _hashCode += getSeqs().hashCode();
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+}
index c1f7bad..5a54fe0 100755 (executable)
@@ -1,90 +1,65 @@
-/**\r
- * Alignment_Helper.java\r
- *\r
- * This file was auto-generated from WSDL\r
- * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.\r
- */\r
-\r
-/*\r
- * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
- *\r
- * This program is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU General Public License\r
- * as published by the Free Software Foundation; either version 2\r
- * of the License, or (at your option) any later version.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
- */\r
-package vamsas.objects.simple;\r
-\r
-public class Alignment_Helper\r
-{\r
-  // Type metadata\r
-  private static org.apache.axis.description.TypeDesc typeDesc = new org.apache.\r
-      axis.description.TypeDesc(Alignment.class,\r
-                                true);\r
-\r
-  static\r
-  {\r
-    typeDesc.setXmlType(new javax.xml.namespace.QName(\r
-        "simple.objects.vamsas", "Alignment"));\r
-\r
-    org.apache.axis.description.ElementDesc elemField = new org.apache.axis.\r
-        description.ElementDesc();\r
-    elemField.setFieldName("gapchar");\r
-    elemField.setXmlName(new javax.xml.namespace.QName("", "gapchar"));\r
-    elemField.setXmlType(new javax.xml.namespace.QName(\r
-        "http://schemas.xmlsoap.org/soap/encoding/", "string"));\r
-    typeDesc.addFieldDesc(elemField);\r
-    elemField = new org.apache.axis.description.ElementDesc();\r
-    elemField.setFieldName("method");\r
-    elemField.setXmlName(new javax.xml.namespace.QName("", "method"));\r
-    elemField.setXmlType(new javax.xml.namespace.QName(\r
-        "http://schemas.xmlsoap.org/soap/encoding/", "string"));\r
-    typeDesc.addFieldDesc(elemField);\r
-    elemField = new org.apache.axis.description.ElementDesc();\r
-    elemField.setFieldName("seqs");\r
-    elemField.setXmlName(new javax.xml.namespace.QName("", "seqs"));\r
-    elemField.setXmlType(new javax.xml.namespace.QName(\r
-        "simple.objects.vamsas", "SequenceSet"));\r
-    typeDesc.addFieldDesc(elemField);\r
-  }\r
-\r
-  /**\r
-   * Return type metadata object\r
-   */\r
-  public static org.apache.axis.description.TypeDesc getTypeDesc()\r
-  {\r
-    return typeDesc;\r
-  }\r
-\r
-  /**\r
-   * Get Custom Serializer\r
-   */\r
-  public static org.apache.axis.encoding.Serializer getSerializer(\r
-      java.lang.String mechType, java.lang.Class _javaType,\r
-      javax.xml.namespace.QName _xmlType)\r
-  {\r
-    return new org.apache.axis.encoding.ser.BeanSerializer(_javaType,\r
-        _xmlType, typeDesc);\r
-  }\r
-\r
-  /**\r
-   * Get Custom Deserializer\r
-   */\r
-  public static org.apache.axis.encoding.Deserializer getDeserializer(\r
-      java.lang.String mechType, java.lang.Class _javaType,\r
-      javax.xml.namespace.QName _xmlType)\r
-  {\r
-    return new org.apache.axis.encoding.ser.BeanDeserializer(_javaType,\r
-        _xmlType, typeDesc);\r
-  }\r
-}\r
+/**
+ * Alignment_Helper.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
+ */
+
+package vamsas.objects.simple;
+
+public class Alignment_Helper {
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(Alignment.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("simple.objects.vamsas", "Alignment"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("gapchar");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "gapchar"));
+        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("method");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "method"));
+        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("seqs");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "seqs"));
+        elemField.setXmlType(new javax.xml.namespace.QName("simple.objects.vamsas", "SequenceSet"));
+        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);
+    }
+
+}
index 4a37bc9..4bf69bd 100755 (executable)
@@ -1,85 +1,42 @@
-/**\r
- * Object.java\r
- *\r
- * This file was auto-generated from WSDL\r
- * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.\r
- */\r
-\r
-/*\r
- * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
- *\r
- * This program is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU General Public License\r
- * as published by the Free Software Foundation; either version 2\r
- * of the License, or (at your option) any later version.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
- */\r
-package vamsas.objects.simple;\r
-\r
-public abstract class Object\r
-    implements java.io.Serializable\r
-{\r
-  private java.lang.Object __equalsCalc = null;\r
-  private boolean __hashCodeCalc = false;\r
-\r
-  public Object()\r
-  {\r
-  }\r
-\r
-  public synchronized boolean equals(java.lang.Object obj)\r
-  {\r
-    if (! (obj instanceof Object))\r
-    {\r
-      return false;\r
-    }\r
-\r
-    //Object other = (Object) obj;\r
-\r
-    if (obj == null)\r
-    {\r
-      return false;\r
-    }\r
-\r
-    if (this == obj)\r
-    {\r
-      return true;\r
-    }\r
-\r
-    if (__equalsCalc != null)\r
-    {\r
-      return (__equalsCalc == obj);\r
-    }\r
-\r
-    __equalsCalc = obj;\r
-\r
-    boolean _equals;\r
-    _equals = true;\r
-    __equalsCalc = null;\r
-\r
-    return _equals;\r
-  }\r
-\r
-  public synchronized int hashCode()\r
-  {\r
-    if (__hashCodeCalc)\r
-    {\r
-      return 0;\r
-    }\r
-\r
-    __hashCodeCalc = true;\r
-\r
-    int _hashCode = 1;\r
-    __hashCodeCalc = false;\r
-\r
-    return _hashCode;\r
-  }\r
-}\r
+/**
+ * Object.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
+ */
+
+package vamsas.objects.simple;
+
+public abstract class Object  implements java.io.Serializable {
+
+    public Object() {
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof Object)) return false;
+        Object other = (Object) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true;
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+}
index 513790d..a1b944c 100755 (executable)
@@ -1,70 +1,50 @@
-/**\r
- * Object_Helper.java\r
- *\r
- * This file was auto-generated from WSDL\r
- * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.\r
- */\r
-\r
-/*\r
- * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
- *\r
- * This program is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU General Public License\r
- * as published by the Free Software Foundation; either version 2\r
- * of the License, or (at your option) any later version.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
- */\r
-package vamsas.objects.simple;\r
-\r
-public class Object_Helper\r
-{\r
-  // Type metadata\r
-  private static org.apache.axis.description.TypeDesc typeDesc = new org.apache.\r
-      axis.description.TypeDesc(Object.class,\r
-                                true);\r
-\r
-  static\r
-  {\r
-    typeDesc.setXmlType(new javax.xml.namespace.QName(\r
-        "http://simple.objects.vamsas", "Object"));\r
-  }\r
-\r
-  /**\r
-   * Return type metadata object\r
-   */\r
-  public static org.apache.axis.description.TypeDesc getTypeDesc()\r
-  {\r
-    return typeDesc;\r
-  }\r
-\r
-  /**\r
-   * Get Custom Serializer\r
-   */\r
-  public static org.apache.axis.encoding.Serializer getSerializer(\r
-      java.lang.String mechType, java.lang.Class _javaType,\r
-      javax.xml.namespace.QName _xmlType)\r
-  {\r
-    return new org.apache.axis.encoding.ser.BeanSerializer(_javaType,\r
-        _xmlType, typeDesc);\r
-  }\r
-\r
-  /**\r
-   * Get Custom Deserializer\r
-   */\r
-  public static org.apache.axis.encoding.Deserializer getDeserializer(\r
-      java.lang.String mechType, java.lang.Class _javaType,\r
-      javax.xml.namespace.QName _xmlType)\r
-  {\r
-    return new org.apache.axis.encoding.ser.BeanDeserializer(_javaType,\r
-        _xmlType, typeDesc);\r
-  }\r
-}\r
+/**
+ * Object_Helper.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
+ */
+
+package vamsas.objects.simple;
+
+public class Object_Helper {
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(Object.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://simple.objects.vamsas", "Object"));
+    }
+
+    /**
+     * 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);
+    }
+
+}
index fbcfddf..b349019 100755 (executable)
 
 package vamsas.objects.simple;
 
-public class Result
-    implements java.io.Serializable
-{
-  private boolean broken;
-  private boolean failed;
-  private boolean finished;
-  private boolean invalid;
-  private boolean jobFailed;
-  private boolean queued;
-  private boolean running;
-  private boolean serverError;
-  private int state;
-  private java.lang.String status;
-  private boolean suspended;
-
-  public Result()
-  {
-  }
-
-  public Result(
-      boolean broken,
-      boolean failed,
-      boolean finished,
-      boolean invalid,
-      boolean jobFailed,
-      boolean queued,
-      boolean running,
-      boolean serverError,
-      int state,
-      java.lang.String status,
-      boolean suspended)
-  {
-    this.broken = broken;
-    this.failed = failed;
-    this.finished = finished;
-    this.invalid = invalid;
-    this.jobFailed = jobFailed;
-    this.queued = queued;
-    this.running = running;
-    this.serverError = serverError;
-    this.state = state;
-    this.status = status;
-    this.suspended = suspended;
-  }
-
-  /**
-   * Gets the broken value for this Result.
-   *
-   * @return broken
-   */
-  public boolean isBroken()
-  {
-    return broken;
-  }
-
-  /**
-   * Sets the broken value for this Result.
-   *
-   * @param broken
-   */
-  public void setBroken(boolean broken)
-  {
-    this.broken = broken;
-  }
-
-  /**
-   * Gets the failed value for this Result.
-   *
-   * @return failed
-   */
-  public boolean isFailed()
-  {
-    return failed;
-  }
-
-  /**
-   * Sets the failed value for this Result.
-   *
-   * @param failed
-   */
-  public void setFailed(boolean failed)
-  {
-    this.failed = failed;
-  }
-
-  /**
-   * Gets the finished value for this Result.
-   *
-   * @return finished
-   */
-  public boolean isFinished()
-  {
-    return finished;
-  }
-
-  /**
-   * Sets the finished value for this Result.
-   *
-   * @param finished
-   */
-  public void setFinished(boolean finished)
-  {
-    this.finished = finished;
-  }
-
-  /**
-   * Gets the invalid value for this Result.
-   *
-   * @return invalid
-   */
-  public boolean isInvalid()
-  {
-    return invalid;
-  }
-
-  /**
-   * Sets the invalid value for this Result.
-   *
-   * @param invalid
-   */
-  public void setInvalid(boolean invalid)
-  {
-    this.invalid = invalid;
-  }
-
-  /**
-   * Gets the jobFailed value for this Result.
-   *
-   * @return jobFailed
-   */
-  public boolean isJobFailed()
-  {
-    return jobFailed;
-  }
-
-  /**
-   * Sets the jobFailed value for this Result.
-   *
-   * @param jobFailed
-   */
-  public void setJobFailed(boolean jobFailed)
-  {
-    this.jobFailed = jobFailed;
-  }
-
-  /**
-   * Gets the queued value for this Result.
-   *
-   * @return queued
-   */
-  public boolean isQueued()
-  {
-    return queued;
-  }
-
-  /**
-   * Sets the queued value for this Result.
-   *
-   * @param queued
-   */
-  public void setQueued(boolean queued)
-  {
-    this.queued = queued;
-  }
-
-  /**
-   * Gets the running value for this Result.
-   *
-   * @return running
-   */
-  public boolean isRunning()
-  {
-    return running;
-  }
-
-  /**
-   * Sets the running value for this Result.
-   *
-   * @param running
-   */
-  public void setRunning(boolean running)
-  {
-    this.running = running;
-  }
-
-  /**
-   * Gets the serverError value for this Result.
-   *
-   * @return serverError
-   */
-  public boolean isServerError()
-  {
-    return serverError;
-  }
-
-  /**
-   * Sets the serverError value for this Result.
-   *
-   * @param serverError
-   */
-  public void setServerError(boolean serverError)
-  {
-    this.serverError = serverError;
-  }
-
-  /**
-   * Gets the state value for this Result.
-   *
-   * @return state
-   */
-  public int getState()
-  {
-    return state;
-  }
-
-  /**
-   * Sets the state value for this Result.
-   *
-   * @param state
-   */
-  public void setState(int state)
-  {
-    this.state = state;
-  }
-
-  /**
-   * Gets the status value for this Result.
-   *
-   * @return status
-   */
-  public java.lang.String getStatus()
-  {
-    return status;
-  }
-
-  /**
-   * Sets the status value for this Result.
-   *
-   * @param status
-   */
-  public void setStatus(java.lang.String status)
-  {
-    this.status = status;
-  }
-
-  /**
-   * Gets the suspended value for this Result.
-   *
-   * @return suspended
-   */
-  public boolean isSuspended()
-  {
-    return suspended;
-  }
-
-  /**
-   * Sets the suspended value for this Result.
-   *
-   * @param suspended
-   */
-  public void setSuspended(boolean suspended)
-  {
-    this.suspended = suspended;
-  }
-
-  private java.lang.Object __equalsCalc = null;
-  public synchronized boolean equals(java.lang.Object obj)
-  {
-    if (! (obj instanceof Result))
-    {
-      return false;
+public class Result  implements java.io.Serializable {
+    private boolean broken;
+    private boolean failed;
+    private boolean finished;
+    private boolean invalid;
+    private boolean jobFailed;
+    private boolean queued;
+    private boolean running;
+    private boolean serverError;
+    private int state;
+    private java.lang.String status;
+    private boolean suspended;
+
+    public Result() {
+    }
+
+    public Result(
+           boolean broken,
+           boolean failed,
+           boolean finished,
+           boolean invalid,
+           boolean jobFailed,
+           boolean queued,
+           boolean running,
+           boolean serverError,
+           int state,
+           java.lang.String status,
+           boolean suspended) {
+           this.broken = broken;
+           this.failed = failed;
+           this.finished = finished;
+           this.invalid = invalid;
+           this.jobFailed = jobFailed;
+           this.queued = queued;
+           this.running = running;
+           this.serverError = serverError;
+           this.state = state;
+           this.status = status;
+           this.suspended = suspended;
+    }
+
+
+    /**
+     * Gets the broken value for this Result.
+     * 
+     * @return broken
+     */
+    public boolean isBroken() {
+        return broken;
+    }
+
+
+    /**
+     * Sets the broken value for this Result.
+     * 
+     * @param broken
+     */
+    public void setBroken(boolean broken) {
+        this.broken = broken;
+    }
+
+
+    /**
+     * Gets the failed value for this Result.
+     * 
+     * @return failed
+     */
+    public boolean isFailed() {
+        return failed;
+    }
+
+
+    /**
+     * Sets the failed value for this Result.
+     * 
+     * @param failed
+     */
+    public void setFailed(boolean failed) {
+        this.failed = failed;
+    }
+
+
+    /**
+     * Gets the finished value for this Result.
+     * 
+     * @return finished
+     */
+    public boolean isFinished() {
+        return finished;
+    }
+
+
+    /**
+     * Sets the finished value for this Result.
+     * 
+     * @param finished
+     */
+    public void setFinished(boolean finished) {
+        this.finished = finished;
+    }
+
+
+    /**
+     * Gets the invalid value for this Result.
+     * 
+     * @return invalid
+     */
+    public boolean isInvalid() {
+        return invalid;
+    }
+
+
+    /**
+     * Sets the invalid value for this Result.
+     * 
+     * @param invalid
+     */
+    public void setInvalid(boolean invalid) {
+        this.invalid = invalid;
+    }
+
+
+    /**
+     * Gets the jobFailed value for this Result.
+     * 
+     * @return jobFailed
+     */
+    public boolean isJobFailed() {
+        return jobFailed;
+    }
+
+
+    /**
+     * Sets the jobFailed value for this Result.
+     * 
+     * @param jobFailed
+     */
+    public void setJobFailed(boolean jobFailed) {
+        this.jobFailed = jobFailed;
+    }
+
+
+    /**
+     * Gets the queued value for this Result.
+     * 
+     * @return queued
+     */
+    public boolean isQueued() {
+        return queued;
+    }
+
+
+    /**
+     * Sets the queued value for this Result.
+     * 
+     * @param queued
+     */
+    public void setQueued(boolean queued) {
+        this.queued = queued;
+    }
+
+
+    /**
+     * Gets the running value for this Result.
+     * 
+     * @return running
+     */
+    public boolean isRunning() {
+        return running;
+    }
+
+
+    /**
+     * Sets the running value for this Result.
+     * 
+     * @param running
+     */
+    public void setRunning(boolean running) {
+        this.running = running;
+    }
+
+
+    /**
+     * Gets the serverError value for this Result.
+     * 
+     * @return serverError
+     */
+    public boolean isServerError() {
+        return serverError;
+    }
+
+
+    /**
+     * Sets the serverError value for this Result.
+     * 
+     * @param serverError
+     */
+    public void setServerError(boolean serverError) {
+        this.serverError = serverError;
     }
-    Result other = (Result) obj;
-    if (obj == null)
-    {
-      return false;
+
+
+    /**
+     * Gets the state value for this Result.
+     * 
+     * @return state
+     */
+    public int getState() {
+        return state;
     }
-    if (this == obj)
-    {
-      return true;
+
+
+    /**
+     * Sets the state value for this Result.
+     * 
+     * @param state
+     */
+    public void setState(int state) {
+        this.state = state;
     }
-    if (__equalsCalc != null)
-    {
-      return (__equalsCalc == obj);
+
+
+    /**
+     * Gets the status value for this Result.
+     * 
+     * @return status
+     */
+    public java.lang.String getStatus() {
+        return status;
     }
-    __equalsCalc = obj;
-    boolean _equals;
-    _equals = true &&
-        this.broken == other.isBroken() &&
-        this.failed == other.isFailed() &&
-        this.finished == other.isFinished() &&
-        this.invalid == other.isInvalid() &&
-        this.jobFailed == other.isJobFailed() &&
-        this.queued == other.isQueued() &&
-        this.running == other.isRunning() &&
-        this.serverError == other.isServerError() &&
-        this.state == other.getState() &&
-        ( (this.status == null && other.getStatus() == null) ||
-         (this.status != null &&
-          this.status.equals(other.getStatus()))) &&
-        this.suspended == other.isSuspended();
-    __equalsCalc = null;
-    return _equals;
-  }
-
-  private boolean __hashCodeCalc = false;
-  public synchronized int hashCode()
-  {
-    if (__hashCodeCalc)
-    {
-      return 0;
+
+
+    /**
+     * Sets the status value for this Result.
+     * 
+     * @param status
+     */
+    public void setStatus(java.lang.String status) {
+        this.status = status;
     }
-    __hashCodeCalc = true;
-    int _hashCode = 1;
-    _hashCode += (isBroken() ? Boolean.TRUE : Boolean.FALSE).hashCode();
-    _hashCode += (isFailed() ? Boolean.TRUE : Boolean.FALSE).hashCode();
-    _hashCode += (isFinished() ? Boolean.TRUE : Boolean.FALSE).hashCode();
-    _hashCode += (isInvalid() ? Boolean.TRUE : Boolean.FALSE).hashCode();
-    _hashCode += (isJobFailed() ? Boolean.TRUE : Boolean.FALSE).hashCode();
-    _hashCode += (isQueued() ? Boolean.TRUE : Boolean.FALSE).hashCode();
-    _hashCode += (isRunning() ? Boolean.TRUE : Boolean.FALSE).hashCode();
-    _hashCode += (isServerError() ? Boolean.TRUE : Boolean.FALSE).hashCode();
-    _hashCode += getState();
-    if (getStatus() != null)
-    {
-      _hashCode += getStatus().hashCode();
+
+
+    /**
+     * Gets the suspended value for this Result.
+     * 
+     * @return suspended
+     */
+    public boolean isSuspended() {
+        return suspended;
+    }
+
+
+    /**
+     * Sets the suspended value for this Result.
+     * 
+     * @param suspended
+     */
+    public void setSuspended(boolean suspended) {
+        this.suspended = suspended;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof Result)) return false;
+        Result other = (Result) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            this.broken == other.isBroken() &&
+            this.failed == other.isFailed() &&
+            this.finished == other.isFinished() &&
+            this.invalid == other.isInvalid() &&
+            this.jobFailed == other.isJobFailed() &&
+            this.queued == other.isQueued() &&
+            this.running == other.isRunning() &&
+            this.serverError == other.isServerError() &&
+            this.state == other.getState() &&
+            ((this.status==null && other.getStatus()==null) || 
+             (this.status!=null &&
+              this.status.equals(other.getStatus()))) &&
+            this.suspended == other.isSuspended();
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        _hashCode += (isBroken() ? Boolean.TRUE : Boolean.FALSE).hashCode();
+        _hashCode += (isFailed() ? Boolean.TRUE : Boolean.FALSE).hashCode();
+        _hashCode += (isFinished() ? Boolean.TRUE : Boolean.FALSE).hashCode();
+        _hashCode += (isInvalid() ? Boolean.TRUE : Boolean.FALSE).hashCode();
+        _hashCode += (isJobFailed() ? Boolean.TRUE : Boolean.FALSE).hashCode();
+        _hashCode += (isQueued() ? Boolean.TRUE : Boolean.FALSE).hashCode();
+        _hashCode += (isRunning() ? Boolean.TRUE : Boolean.FALSE).hashCode();
+        _hashCode += (isServerError() ? Boolean.TRUE : Boolean.FALSE).hashCode();
+        _hashCode += getState();
+        if (getStatus() != null) {
+            _hashCode += getStatus().hashCode();
+        }
+        _hashCode += (isSuspended() ? Boolean.TRUE : Boolean.FALSE).hashCode();
+        __hashCodeCalc = false;
+        return _hashCode;
     }
-    _hashCode += (isSuspended() ? Boolean.TRUE : Boolean.FALSE).hashCode();
-    __hashCodeCalc = false;
-    return _hashCode;
-  }
 
 }
index e4f4b8b..14ed2b5 100755 (executable)
 
 package vamsas.objects.simple;
 
-public class Result_Helper
-{
-  // Type metadata
-  private static org.apache.axis.description.TypeDesc typeDesc =
-      new org.apache.axis.description.TypeDesc(Result.class, true);
+public class Result_Helper {
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(Result.class, true);
 
-  static
-  {
-    typeDesc.setXmlType(new javax.xml.namespace.QName("simple.objects.vamsas",
-        "Result"));
-    org.apache.axis.description.ElementDesc elemField = new org.apache.axis.
-        description.ElementDesc();
-    elemField.setFieldName("broken");
-    elemField.setXmlName(new javax.xml.namespace.QName("", "broken"));
-    elemField.setXmlType(new javax.xml.namespace.QName(
-        "http://www.w3.org/2001/XMLSchema", "boolean"));
-    typeDesc.addFieldDesc(elemField);
-    elemField = new org.apache.axis.description.ElementDesc();
-    elemField.setFieldName("failed");
-    elemField.setXmlName(new javax.xml.namespace.QName("", "failed"));
-    elemField.setXmlType(new javax.xml.namespace.QName(
-        "http://www.w3.org/2001/XMLSchema", "boolean"));
-    typeDesc.addFieldDesc(elemField);
-    elemField = new org.apache.axis.description.ElementDesc();
-    elemField.setFieldName("finished");
-    elemField.setXmlName(new javax.xml.namespace.QName("", "finished"));
-    elemField.setXmlType(new javax.xml.namespace.QName(
-        "http://www.w3.org/2001/XMLSchema", "boolean"));
-    typeDesc.addFieldDesc(elemField);
-    elemField = new org.apache.axis.description.ElementDesc();
-    elemField.setFieldName("invalid");
-    elemField.setXmlName(new javax.xml.namespace.QName("", "invalid"));
-    elemField.setXmlType(new javax.xml.namespace.QName(
-        "http://www.w3.org/2001/XMLSchema", "boolean"));
-    typeDesc.addFieldDesc(elemField);
-    elemField = new org.apache.axis.description.ElementDesc();
-    elemField.setFieldName("jobFailed");
-    elemField.setXmlName(new javax.xml.namespace.QName("", "jobFailed"));
-    elemField.setXmlType(new javax.xml.namespace.QName(
-        "http://www.w3.org/2001/XMLSchema", "boolean"));
-    typeDesc.addFieldDesc(elemField);
-    elemField = new org.apache.axis.description.ElementDesc();
-    elemField.setFieldName("queued");
-    elemField.setXmlName(new javax.xml.namespace.QName("", "queued"));
-    elemField.setXmlType(new javax.xml.namespace.QName(
-        "http://www.w3.org/2001/XMLSchema", "boolean"));
-    typeDesc.addFieldDesc(elemField);
-    elemField = new org.apache.axis.description.ElementDesc();
-    elemField.setFieldName("running");
-    elemField.setXmlName(new javax.xml.namespace.QName("", "running"));
-    elemField.setXmlType(new javax.xml.namespace.QName(
-        "http://www.w3.org/2001/XMLSchema", "boolean"));
-    typeDesc.addFieldDesc(elemField);
-    elemField = new org.apache.axis.description.ElementDesc();
-    elemField.setFieldName("serverError");
-    elemField.setXmlName(new javax.xml.namespace.QName("", "serverError"));
-    elemField.setXmlType(new javax.xml.namespace.QName(
-        "http://www.w3.org/2001/XMLSchema", "boolean"));
-    typeDesc.addFieldDesc(elemField);
-    elemField = new org.apache.axis.description.ElementDesc();
-    elemField.setFieldName("state");
-    elemField.setXmlName(new javax.xml.namespace.QName("", "state"));
-    elemField.setXmlType(new javax.xml.namespace.QName(
-        "http://www.w3.org/2001/XMLSchema", "int"));
-    typeDesc.addFieldDesc(elemField);
-    elemField = new org.apache.axis.description.ElementDesc();
-    elemField.setFieldName("status");
-    elemField.setXmlName(new javax.xml.namespace.QName("", "status"));
-    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("suspended");
-    elemField.setXmlName(new javax.xml.namespace.QName("", "suspended"));
-    elemField.setXmlType(new javax.xml.namespace.QName(
-        "http://www.w3.org/2001/XMLSchema", "boolean"));
-    typeDesc.addFieldDesc(elemField);
-  }
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("simple.objects.vamsas", "Result"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("broken");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "broken"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("failed");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "failed"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("finished");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "finished"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("invalid");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "invalid"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("jobFailed");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "jobFailed"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("queued");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "queued"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("running");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "running"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("serverError");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "serverError"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("state");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "state"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("status");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "status"));
+        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("suspended");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "suspended"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
+        typeDesc.addFieldDesc(elemField);
+    }
 
-  /**
-   * Return type metadata object
-   */
-  public static org.apache.axis.description.TypeDesc getTypeDesc()
-  {
-    return typeDesc;
-  }
+    /**
+     * 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(
+    /**
+     * 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(
+    /**
+     * 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/vamsas/objects/simple/SeqSearchResult.java b/src/vamsas/objects/simple/SeqSearchResult.java
new file mode 100644 (file)
index 0000000..4d75aad
--- /dev/null
@@ -0,0 +1,161 @@
+/**\r
+ * SeqSearchResult.java\r
+ *\r
+ * This file was auto-generated from WSDL\r
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.\r
+ */\r
+\r
+package vamsas.objects.simple;\r
+\r
+public class SeqSearchResult  extends vamsas.objects.simple.Result  implements java.io.Serializable {\r
+    private vamsas.objects.simple.Alignment alignment;\r
+    private java.lang.String annotation;\r
+    private java.lang.String features;\r
+    private java.lang.String newickTree;\r
+\r
+    public SeqSearchResult() {\r
+    }\r
+\r
+    public SeqSearchResult(\r
+           vamsas.objects.simple.Alignment alignment,\r
+           java.lang.String annotation,\r
+           java.lang.String features,\r
+           java.lang.String newickTree) {\r
+           this.alignment = alignment;\r
+           this.annotation = annotation;\r
+           this.features = features;\r
+           this.newickTree = newickTree;\r
+    }\r
+\r
+\r
+    /**\r
+     * Gets the alignment value for this SeqSearchResult.\r
+     * \r
+     * @return alignment\r
+     */\r
+    public vamsas.objects.simple.Alignment getAlignment() {\r
+        return alignment;\r
+    }\r
+\r
+\r
+    /**\r
+     * Sets the alignment value for this SeqSearchResult.\r
+     * \r
+     * @param alignment\r
+     */\r
+    public void setAlignment(vamsas.objects.simple.Alignment alignment) {\r
+        this.alignment = alignment;\r
+    }\r
+\r
+\r
+    /**\r
+     * Gets the annotation value for this SeqSearchResult.\r
+     * \r
+     * @return annotation\r
+     */\r
+    public java.lang.String getAnnotation() {\r
+        return annotation;\r
+    }\r
+\r
+\r
+    /**\r
+     * Sets the annotation value for this SeqSearchResult.\r
+     * \r
+     * @param annotation\r
+     */\r
+    public void setAnnotation(java.lang.String annotation) {\r
+        this.annotation = annotation;\r
+    }\r
+\r
+\r
+    /**\r
+     * Gets the features value for this SeqSearchResult.\r
+     * \r
+     * @return features\r
+     */\r
+    public java.lang.String getFeatures() {\r
+        return features;\r
+    }\r
+\r
+\r
+    /**\r
+     * Sets the features value for this SeqSearchResult.\r
+     * \r
+     * @param features\r
+     */\r
+    public void setFeatures(java.lang.String features) {\r
+        this.features = features;\r
+    }\r
+\r
+\r
+    /**\r
+     * Gets the newickTree value for this SeqSearchResult.\r
+     * \r
+     * @return newickTree\r
+     */\r
+    public java.lang.String getNewickTree() {\r
+        return newickTree;\r
+    }\r
+\r
+\r
+    /**\r
+     * Sets the newickTree value for this SeqSearchResult.\r
+     * \r
+     * @param newickTree\r
+     */\r
+    public void setNewickTree(java.lang.String newickTree) {\r
+        this.newickTree = newickTree;\r
+    }\r
+\r
+    private java.lang.Object __equalsCalc = null;\r
+    public synchronized boolean equals(java.lang.Object obj) {\r
+        if (!(obj instanceof SeqSearchResult)) return false;\r
+        SeqSearchResult other = (SeqSearchResult) obj;\r
+        if (obj == null) return false;\r
+        if (this == obj) return true;\r
+        if (__equalsCalc != null) {\r
+            return (__equalsCalc == obj);\r
+        }\r
+        __equalsCalc = obj;\r
+        boolean _equals;\r
+        _equals = super.equals(obj) && \r
+            ((this.alignment==null && other.getAlignment()==null) || \r
+             (this.alignment!=null &&\r
+              this.alignment.equals(other.getAlignment()))) &&\r
+            ((this.annotation==null && other.getAnnotation()==null) || \r
+             (this.annotation!=null &&\r
+              this.annotation.equals(other.getAnnotation()))) &&\r
+            ((this.features==null && other.getFeatures()==null) || \r
+             (this.features!=null &&\r
+              this.features.equals(other.getFeatures()))) &&\r
+            ((this.newickTree==null && other.getNewickTree()==null) || \r
+             (this.newickTree!=null &&\r
+              this.newickTree.equals(other.getNewickTree())));\r
+        __equalsCalc = null;\r
+        return _equals;\r
+    }\r
+\r
+    private boolean __hashCodeCalc = false;\r
+    public synchronized int hashCode() {\r
+        if (__hashCodeCalc) {\r
+            return 0;\r
+        }\r
+        __hashCodeCalc = true;\r
+        int _hashCode = super.hashCode();\r
+        if (getAlignment() != null) {\r
+            _hashCode += getAlignment().hashCode();\r
+        }\r
+        if (getAnnotation() != null) {\r
+            _hashCode += getAnnotation().hashCode();\r
+        }\r
+        if (getFeatures() != null) {\r
+            _hashCode += getFeatures().hashCode();\r
+        }\r
+        if (getNewickTree() != null) {\r
+            _hashCode += getNewickTree().hashCode();\r
+        }\r
+        __hashCodeCalc = false;\r
+        return _hashCode;\r
+    }\r
+\r
+}\r
diff --git a/src/vamsas/objects/simple/SeqSearchResult_Helper.java b/src/vamsas/objects/simple/SeqSearchResult_Helper.java
new file mode 100644 (file)
index 0000000..3f6e30d
--- /dev/null
@@ -0,0 +1,70 @@
+/**\r
+ * SeqSearchResult_Helper.java\r
+ *\r
+ * This file was auto-generated from WSDL\r
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.\r
+ */\r
+\r
+package vamsas.objects.simple;\r
+\r
+public class SeqSearchResult_Helper {\r
+    // Type metadata\r
+    private static org.apache.axis.description.TypeDesc typeDesc =\r
+        new org.apache.axis.description.TypeDesc(SeqSearchResult.class, true);\r
+\r
+    static {\r
+        typeDesc.setXmlType(new javax.xml.namespace.QName("simple.objects.vamsas", "SeqSearchResult"));\r
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();\r
+        elemField.setFieldName("alignment");\r
+        elemField.setXmlName(new javax.xml.namespace.QName("", "alignment"));\r
+        elemField.setXmlType(new javax.xml.namespace.QName("simple.objects.vamsas", "Alignment"));\r
+        typeDesc.addFieldDesc(elemField);\r
+        elemField = new org.apache.axis.description.ElementDesc();\r
+        elemField.setFieldName("annotation");\r
+        elemField.setXmlName(new javax.xml.namespace.QName("", "annotation"));\r
+        elemField.setXmlType(new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"));\r
+        typeDesc.addFieldDesc(elemField);\r
+        elemField = new org.apache.axis.description.ElementDesc();\r
+        elemField.setFieldName("features");\r
+        elemField.setXmlName(new javax.xml.namespace.QName("", "features"));\r
+        elemField.setXmlType(new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"));\r
+        typeDesc.addFieldDesc(elemField);\r
+        elemField = new org.apache.axis.description.ElementDesc();\r
+        elemField.setFieldName("newickTree");\r
+        elemField.setXmlName(new javax.xml.namespace.QName("", "newickTree"));\r
+        elemField.setXmlType(new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/", "string"));\r
+        typeDesc.addFieldDesc(elemField);\r
+    }\r
+\r
+    /**\r
+     * Return type metadata object\r
+     */\r
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {\r
+        return typeDesc;\r
+    }\r
+\r
+    /**\r
+     * Get Custom Serializer\r
+     */\r
+    public static org.apache.axis.encoding.Serializer getSerializer(\r
+           java.lang.String mechType, \r
+           java.lang.Class _javaType,  \r
+           javax.xml.namespace.QName _xmlType) {\r
+        return \r
+          new  org.apache.axis.encoding.ser.BeanSerializer(\r
+            _javaType, _xmlType, typeDesc);\r
+    }\r
+\r
+    /**\r
+     * Get Custom Deserializer\r
+     */\r
+    public static org.apache.axis.encoding.Deserializer getDeserializer(\r
+           java.lang.String mechType, \r
+           java.lang.Class _javaType,  \r
+           javax.xml.namespace.QName _xmlType) {\r
+        return \r
+          new  org.apache.axis.encoding.ser.BeanDeserializer(\r
+            _javaType, _xmlType, typeDesc);\r
+    }\r
+\r
+}\r
index 308d34e..d2eccb0 100755 (executable)
 
 package vamsas.objects.simple;
 
-public class Sequence
-    implements java.io.Serializable
-{
-  private java.lang.String id;
-  private java.lang.String seq;
+public class Sequence  implements java.io.Serializable {
+    private java.lang.String id;
+    private java.lang.String seq;
 
-  public Sequence()
-  {
-  }
-
-  public Sequence(
-      java.lang.String id,
-      java.lang.String seq)
-  {
-    this.id = id;
-    this.seq = seq;
-  }
+    public Sequence() {
+    }
 
-  /**
-   * Gets the id value for this Sequence.
-   *
-   * @return id
-   */
-  public java.lang.String getId()
-  {
-    return id;
-  }
+    public Sequence(
+           java.lang.String id,
+           java.lang.String seq) {
+           this.id = id;
+           this.seq = seq;
+    }
 
-  /**
-   * Sets the id value for this Sequence.
-   *
-   * @param id
-   */
-  public void setId(java.lang.String id)
-  {
-    this.id = id;
-  }
 
-  /**
-   * Gets the seq value for this Sequence.
-   *
-   * @return seq
-   */
-  public java.lang.String getSeq()
-  {
-    return seq;
-  }
+    /**
+     * Gets the id value for this Sequence.
+     * 
+     * @return id
+     */
+    public java.lang.String getId() {
+        return id;
+    }
 
-  /**
-   * Sets the seq value for this Sequence.
-   *
-   * @param seq
-   */
-  public void setSeq(java.lang.String seq)
-  {
-    this.seq = seq;
-  }
 
-  private java.lang.Object __equalsCalc = null;
-  public synchronized boolean equals(java.lang.Object obj)
-  {
-    if (! (obj instanceof Sequence))
-    {
-      return false;
-    }
-    Sequence other = (Sequence) obj;
-    if (obj == null)
-    {
-      return false;
-    }
-    if (this == obj)
-    {
-      return true;
+    /**
+     * Sets the id value for this Sequence.
+     * 
+     * @param id
+     */
+    public void setId(java.lang.String id) {
+        this.id = id;
     }
-    if (__equalsCalc != null)
-    {
-      return (__equalsCalc == obj);
+
+
+    /**
+     * Gets the seq value for this Sequence.
+     * 
+     * @return seq
+     */
+    public java.lang.String getSeq() {
+        return seq;
     }
-    __equalsCalc = obj;
-    boolean _equals;
-    _equals = true &&
-        ( (this.id == null && other.getId() == null) ||
-         (this.id != null &&
-          this.id.equals(other.getId()))) &&
-        ( (this.seq == null && other.getSeq() == null) ||
-         (this.seq != null &&
-          this.seq.equals(other.getSeq())));
-    __equalsCalc = null;
-    return _equals;
-  }
 
-  private boolean __hashCodeCalc = false;
-  public synchronized int hashCode()
-  {
-    if (__hashCodeCalc)
-    {
-      return 0;
+
+    /**
+     * Sets the seq value for this Sequence.
+     * 
+     * @param seq
+     */
+    public void setSeq(java.lang.String seq) {
+        this.seq = seq;
     }
-    __hashCodeCalc = true;
-    int _hashCode = 1;
-    if (getId() != null)
-    {
-      _hashCode += getId().hashCode();
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof Sequence)) return false;
+        Sequence other = (Sequence) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.id==null && other.getId()==null) || 
+             (this.id!=null &&
+              this.id.equals(other.getId()))) &&
+            ((this.seq==null && other.getSeq()==null) || 
+             (this.seq!=null &&
+              this.seq.equals(other.getSeq())));
+        __equalsCalc = null;
+        return _equals;
     }
-    if (getSeq() != null)
-    {
-      _hashCode += getSeq().hashCode();
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getId() != null) {
+            _hashCode += getId().hashCode();
+        }
+        if (getSeq() != null) {
+            _hashCode += getSeq().hashCode();
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
     }
-    __hashCodeCalc = false;
-    return _hashCode;
-  }
 
 }
index 1bb765f..62e58b4 100755 (executable)
-/**\r
- * SequenceSet.java\r
- *\r
- * This file was auto-generated from WSDL\r
- * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.\r
- */\r
-\r
-/*\r
- * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
- *\r
- * This program is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU General Public License\r
- * as published by the Free Software Foundation; either version 2\r
- * of the License, or (at your option) any later version.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
- */\r
-package vamsas.objects.simple;\r
-\r
-public class SequenceSet\r
-    implements java.io.Serializable\r
-{\r
-  private vamsas.objects.simple.Sequence[] seqs;\r
-  private java.lang.Object __equalsCalc = null;\r
-  private boolean __hashCodeCalc = false;\r
-\r
-  public SequenceSet()\r
-  {\r
-  }\r
-\r
-  public SequenceSet(vamsas.objects.simple.Sequence[] seqs)\r
-  {\r
-    this.seqs = seqs;\r
-  }\r
-\r
-  /**\r
-   * Gets the seqs value for this SequenceSet.\r
-   *\r
-   * @return seqs\r
-   */\r
-  public vamsas.objects.simple.Sequence[] getSeqs()\r
-  {\r
-    return seqs;\r
-  }\r
-\r
-  /**\r
-   * Sets the seqs value for this SequenceSet.\r
-   *\r
-   * @param seqs\r
-   */\r
-  public void setSeqs(vamsas.objects.simple.Sequence[] seqs)\r
-  {\r
-    this.seqs = seqs;\r
-  }\r
-\r
-  public synchronized boolean equals(java.lang.Object obj)\r
-  {\r
-    if (! (obj instanceof SequenceSet))\r
-    {\r
-      return false;\r
-    }\r
-\r
-    SequenceSet other = (SequenceSet) obj;\r
-\r
-    if (obj == null)\r
-    {\r
-      return false;\r
-    }\r
-\r
-    if (this == obj)\r
-    {\r
-      return true;\r
-    }\r
-\r
-    if (__equalsCalc != null)\r
-    {\r
-      return (__equalsCalc == obj);\r
-    }\r
-\r
-    __equalsCalc = obj;\r
-\r
-    boolean _equals;\r
-    _equals = true &&\r
-        ( ( (this.seqs == null) && (other.getSeqs() == null)) ||\r
-         ( (this.seqs != null) &&\r
-          java.util.Arrays.equals(this.seqs, other.getSeqs())));\r
-    __equalsCalc = null;\r
-\r
-    return _equals;\r
-  }\r
-\r
-  public synchronized int hashCode()\r
-  {\r
-    if (__hashCodeCalc)\r
-    {\r
-      return 0;\r
-    }\r
-\r
-    __hashCodeCalc = true;\r
-\r
-    int _hashCode = 1;\r
-\r
-    if (getSeqs() != null)\r
-    {\r
-      for (int i = 0; i < java.lang.reflect.Array.getLength(getSeqs());\r
-           i++)\r
-      {\r
-        java.lang.Object obj = java.lang.reflect.Array.get(getSeqs(), i);\r
-\r
-        if ( (obj != null) && !obj.getClass().isArray())\r
-        {\r
-          _hashCode += obj.hashCode();\r
-        }\r
-      }\r
-    }\r
-\r
-    __hashCodeCalc = false;\r
-\r
-    return _hashCode;\r
-  }\r
-}\r
+/**
+ * SequenceSet.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
+ */
+
+package vamsas.objects.simple;
+
+public class SequenceSet  implements java.io.Serializable {
+    private vamsas.objects.simple.Sequence[] seqs;
+
+    public SequenceSet() {
+    }
+
+    public SequenceSet(
+           vamsas.objects.simple.Sequence[] seqs) {
+           this.seqs = seqs;
+    }
+
+
+    /**
+     * Gets the seqs value for this SequenceSet.
+     * 
+     * @return seqs
+     */
+    public vamsas.objects.simple.Sequence[] getSeqs() {
+        return seqs;
+    }
+
+
+    /**
+     * Sets the seqs value for this SequenceSet.
+     * 
+     * @param seqs
+     */
+    public void setSeqs(vamsas.objects.simple.Sequence[] seqs) {
+        this.seqs = seqs;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof SequenceSet)) return false;
+        SequenceSet other = (SequenceSet) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.seqs==null && other.getSeqs()==null) || 
+             (this.seqs!=null &&
+              java.util.Arrays.equals(this.seqs, other.getSeqs())));
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getSeqs() != null) {
+            for (int i=0;
+                 i<java.lang.reflect.Array.getLength(getSeqs());
+                 i++) {
+                java.lang.Object obj = java.lang.reflect.Array.get(getSeqs(), i);
+                if (obj != null &&
+                    !obj.getClass().isArray()) {
+                    _hashCode += obj.hashCode();
+                }
+            }
+        }
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+}
index 9f6bedc..77586ba 100755 (executable)
@@ -1,78 +1,55 @@
-/**\r
- * SequenceSet_Helper.java\r
- *\r
- * This file was auto-generated from WSDL\r
- * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.\r
- */\r
-\r
-/*\r
- * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
- *\r
- * This program is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU General Public License\r
- * as published by the Free Software Foundation; either version 2\r
- * of the License, or (at your option) any later version.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
- */\r
-package vamsas.objects.simple;\r
-\r
-public class SequenceSet_Helper\r
-{\r
-  // Type metadata\r
-  private static org.apache.axis.description.TypeDesc typeDesc = new org.apache.\r
-      axis.description.TypeDesc(SequenceSet.class,\r
-                                true);\r
-\r
-  static\r
-  {\r
-    typeDesc.setXmlType(new javax.xml.namespace.QName(\r
-        "simple.objects.vamsas", "SequenceSet"));\r
-\r
-    org.apache.axis.description.ElementDesc elemField = new org.apache.axis.\r
-        description.ElementDesc();\r
-    elemField.setFieldName("seqs");\r
-    elemField.setXmlName(new javax.xml.namespace.QName("", "seqs"));\r
-    elemField.setXmlType(new javax.xml.namespace.QName(\r
-        "simple.objects.vamsas", "Sequence"));\r
-    typeDesc.addFieldDesc(elemField);\r
-  }\r
-\r
-  /**\r
-   * Return type metadata object\r
-   */\r
-  public static org.apache.axis.description.TypeDesc getTypeDesc()\r
-  {\r
-    return typeDesc;\r
-  }\r
-\r
-  /**\r
-   * Get Custom Serializer\r
-   */\r
-  public static org.apache.axis.encoding.Serializer getSerializer(\r
-      java.lang.String mechType, java.lang.Class _javaType,\r
-      javax.xml.namespace.QName _xmlType)\r
-  {\r
-    return new org.apache.axis.encoding.ser.BeanSerializer(_javaType,\r
-        _xmlType, typeDesc);\r
-  }\r
-\r
-  /**\r
-   * Get Custom Deserializer\r
-   */\r
-  public static org.apache.axis.encoding.Deserializer getDeserializer(\r
-      java.lang.String mechType, java.lang.Class _javaType,\r
-      javax.xml.namespace.QName _xmlType)\r
-  {\r
-    return new org.apache.axis.encoding.ser.BeanDeserializer(_javaType,\r
-        _xmlType, typeDesc);\r
-  }\r
-}\r
+/**
+ * SequenceSet_Helper.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
+ */
+
+package vamsas.objects.simple;
+
+public class SequenceSet_Helper {
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(SequenceSet.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("simple.objects.vamsas", "SequenceSet"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("seqs");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "seqs"));
+        elemField.setXmlType(new javax.xml.namespace.QName("simple.objects.vamsas", "Sequence"));
+        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);
+    }
+
+}
index 04fc493..f675384 100755 (executable)
@@ -7,63 +7,54 @@
 
 package vamsas.objects.simple;
 
-public class Sequence_Helper
-{
-  // Type metadata
-  private static org.apache.axis.description.TypeDesc typeDesc =
-      new org.apache.axis.description.TypeDesc(Sequence.class, true);
+public class Sequence_Helper {
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(Sequence.class, true);
 
-  static
-  {
-    typeDesc.setXmlType(new javax.xml.namespace.QName("simple.objects.vamsas",
-        "Sequence"));
-    org.apache.axis.description.ElementDesc elemField = new org.apache.axis.
-        description.ElementDesc();
-    elemField.setFieldName("id");
-    elemField.setXmlName(new javax.xml.namespace.QName("", "id"));
-    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("seq");
-    elemField.setXmlName(new javax.xml.namespace.QName("", "seq"));
-    elemField.setXmlType(new javax.xml.namespace.QName(
-        "http://schemas.xmlsoap.org/soap/encoding/", "string"));
-    typeDesc.addFieldDesc(elemField);
-  }
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("simple.objects.vamsas", "Sequence"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("id");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "id"));
+        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("seq");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "seq"));
+        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;
-  }
+    /**
+     * 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(
+    /**
+     * 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(
+    /**
+     * 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);
-  }
+    }
 
 }
index cd5fe54..4bc1f2e 100755 (executable)
-/**\r
- * WsJobId.java\r
- *\r
- * This file was auto-generated from WSDL\r
- * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.\r
- */\r
-\r
-/*\r
- * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
- *\r
- * This program is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU General Public License\r
- * as published by the Free Software Foundation; either version 2\r
- * of the License, or (at your option) any later version.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
- */\r
-package vamsas.objects.simple;\r
-\r
-public class WsJobId\r
-    implements java.io.Serializable\r
-{\r
-  private java.lang.String jobId;\r
-  private int status;\r
-  private java.lang.Object __equalsCalc = null;\r
-  private boolean __hashCodeCalc = false;\r
-\r
-  public WsJobId()\r
-  {\r
-  }\r
-\r
-  public WsJobId(java.lang.String jobId, int status)\r
-  {\r
-    this.jobId = jobId;\r
-    this.status = status;\r
-  }\r
-\r
-  /**\r
-   * Gets the jobId value for this WsJobId.\r
-   *\r
-   * @return jobId\r
-   */\r
-  public java.lang.String getJobId()\r
-  {\r
-    return jobId;\r
-  }\r
-\r
-  /**\r
-   * Sets the jobId value for this WsJobId.\r
-   *\r
-   * @param jobId\r
-   */\r
-  public void setJobId(java.lang.String jobId)\r
-  {\r
-    this.jobId = jobId;\r
-  }\r
-\r
-  /**\r
-   * Gets the status value for this WsJobId.\r
-   *\r
-   * @return status\r
-   */\r
-  public int getStatus()\r
-  {\r
-    return status;\r
-  }\r
-\r
-  /**\r
-   * Sets the status value for this WsJobId.\r
-   *\r
-   * @param status\r
-   */\r
-  public void setStatus(int status)\r
-  {\r
-    this.status = status;\r
-  }\r
-\r
-  public synchronized boolean equals(java.lang.Object obj)\r
-  {\r
-    if (! (obj instanceof WsJobId))\r
-    {\r
-      return false;\r
-    }\r
-\r
-    WsJobId other = (WsJobId) obj;\r
-\r
-    if (obj == null)\r
-    {\r
-      return false;\r
-    }\r
-\r
-    if (this == obj)\r
-    {\r
-      return true;\r
-    }\r
-\r
-    if (__equalsCalc != null)\r
-    {\r
-      return (__equalsCalc == obj);\r
-    }\r
-\r
-    __equalsCalc = obj;\r
-\r
-    boolean _equals;\r
-    _equals = true &&\r
-        ( ( (this.jobId == null) && (other.getJobId() == null)) ||\r
-         ( (this.jobId != null) && this.jobId.equals(other.getJobId()))) &&\r
-        (this.status == other.getStatus());\r
-    __equalsCalc = null;\r
-\r
-    return _equals;\r
-  }\r
-\r
-  public synchronized int hashCode()\r
-  {\r
-    if (__hashCodeCalc)\r
-    {\r
-      return 0;\r
-    }\r
-\r
-    __hashCodeCalc = true;\r
-\r
-    int _hashCode = 1;\r
-\r
-    if (getJobId() != null)\r
-    {\r
-      _hashCode += getJobId().hashCode();\r
-    }\r
-\r
-    _hashCode += getStatus();\r
-    __hashCodeCalc = false;\r
-\r
-    return _hashCode;\r
-  }\r
-}\r
+/**
+ * WsJobId.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
+ */
+
+package vamsas.objects.simple;
+
+public class WsJobId  implements java.io.Serializable {
+    private java.lang.String jobId;
+    private int status;
+
+    public WsJobId() {
+    }
+
+    public WsJobId(
+           java.lang.String jobId,
+           int status) {
+           this.jobId = jobId;
+           this.status = status;
+    }
+
+
+    /**
+     * Gets the jobId value for this WsJobId.
+     * 
+     * @return jobId
+     */
+    public java.lang.String getJobId() {
+        return jobId;
+    }
+
+
+    /**
+     * Sets the jobId value for this WsJobId.
+     * 
+     * @param jobId
+     */
+    public void setJobId(java.lang.String jobId) {
+        this.jobId = jobId;
+    }
+
+
+    /**
+     * Gets the status value for this WsJobId.
+     * 
+     * @return status
+     */
+    public int getStatus() {
+        return status;
+    }
+
+
+    /**
+     * Sets the status value for this WsJobId.
+     * 
+     * @param status
+     */
+    public void setStatus(int status) {
+        this.status = status;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof WsJobId)) return false;
+        WsJobId other = (WsJobId) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.jobId==null && other.getJobId()==null) || 
+             (this.jobId!=null &&
+              this.jobId.equals(other.getJobId()))) &&
+            this.status == other.getStatus();
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getJobId() != null) {
+            _hashCode += getJobId().hashCode();
+        }
+        _hashCode += getStatus();
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+}
index 43eed40..3988ce9 100755 (executable)
@@ -1,84 +1,60 @@
-/**\r
- * WsJobId_Helper.java\r
- *\r
- * This file was auto-generated from WSDL\r
- * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.\r
- */\r
-\r
-/*\r
- * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
- *\r
- * This program is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU General Public License\r
- * as published by the Free Software Foundation; either version 2\r
- * of the License, or (at your option) any later version.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
- */\r
-package vamsas.objects.simple;\r
-\r
-public class WsJobId_Helper\r
-{\r
-  // Type metadata\r
-  private static org.apache.axis.description.TypeDesc typeDesc = new org.apache.\r
-      axis.description.TypeDesc(WsJobId.class,\r
-                                true);\r
-\r
-  static\r
-  {\r
-    typeDesc.setXmlType(new javax.xml.namespace.QName(\r
-        "simple.objects.vamsas", "WsJobId"));\r
-\r
-    org.apache.axis.description.ElementDesc elemField = new org.apache.axis.\r
-        description.ElementDesc();\r
-    elemField.setFieldName("jobId");\r
-    elemField.setXmlName(new javax.xml.namespace.QName("", "jobId"));\r
-    elemField.setXmlType(new javax.xml.namespace.QName(\r
-        "http://schemas.xmlsoap.org/soap/encoding/", "string"));\r
-    typeDesc.addFieldDesc(elemField);\r
-    elemField = new org.apache.axis.description.ElementDesc();\r
-    elemField.setFieldName("status");\r
-    elemField.setXmlName(new javax.xml.namespace.QName("", "status"));\r
-    elemField.setXmlType(new javax.xml.namespace.QName(\r
-        "http://www.w3.org/2001/XMLSchema", "int"));\r
-    typeDesc.addFieldDesc(elemField);\r
-  }\r
-\r
-  /**\r
-   * Return type metadata object\r
-   */\r
-  public static org.apache.axis.description.TypeDesc getTypeDesc()\r
-  {\r
-    return typeDesc;\r
-  }\r
-\r
-  /**\r
-   * Get Custom Serializer\r
-   */\r
-  public static org.apache.axis.encoding.Serializer getSerializer(\r
-      java.lang.String mechType, java.lang.Class _javaType,\r
-      javax.xml.namespace.QName _xmlType)\r
-  {\r
-    return new org.apache.axis.encoding.ser.BeanSerializer(_javaType,\r
-        _xmlType, typeDesc);\r
-  }\r
-\r
-  /**\r
-   * Get Custom Deserializer\r
-   */\r
-  public static org.apache.axis.encoding.Deserializer getDeserializer(\r
-      java.lang.String mechType, java.lang.Class _javaType,\r
-      javax.xml.namespace.QName _xmlType)\r
-  {\r
-    return new org.apache.axis.encoding.ser.BeanDeserializer(_javaType,\r
-        _xmlType, typeDesc);\r
-  }\r
-}\r
+/**
+ * WsJobId_Helper.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
+ */
+
+package vamsas.objects.simple;
+
+public class WsJobId_Helper {
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(WsJobId.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("simple.objects.vamsas", "WsJobId"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("jobId");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "jobId"));
+        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("status");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "status"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+        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);
+    }
+
+}