Add new method to ProteoCacheWS web service
[proteocache.git] / server / compbio / ws / jpred / JpredWS.java
index 9978cc4..3688fb6 100644 (file)
@@ -10,9 +10,19 @@ import org.apache.log4j.Logger;
 
 import compbio.beans.ProteinBean;
 import compbio.cassandra.CassandraNativeConnector;
+import compbio.cassandra.readers.JobReader;
 import compbio.cassandra.readers.SequenceReader;
 import compbio.engine.archive.ArchivedJob;
 
+/**
+ * Implementation of the Jpred web service in ProteoCache
+ * 
+ * @author Alexander Sherstnev
+ * @author Natasha Sherstneva
+ * 
+ * @version 1.0
+ * @since Jan 2014
+ */
 @WebService(endpointInterface = "compbio.ws.jpred.Jpred", targetNamespace = "http://server.proteocache.ws", serviceName = "ProteoCacheWS", portName = "ProteoCacheWSPort")
 public class JpredWS implements Jpred {
        private static Logger log = Logger.getLogger(CassandraNativeConnector.class);
@@ -39,12 +49,12 @@ public class JpredWS implements Jpred {
        }
 
        @Override
-       public String findSequence(String sequence, String program, String version) {
+       public int findSequence(String sequence, String program, String version) {
                List<String> jobs = findJobs(sequence, program, version);
                if (null != jobs) {
-                       return jobs.size() + " jobs found";
+                       return jobs.size();
                }
-               return "no jobs found";
+               return 0;
        }
 
        @Override
@@ -71,7 +81,7 @@ public class JpredWS implements Jpred {
 
        @Override
        public String getArchive(String jobid) {
-               String link = "undefined";
+               String link = null;
                ArchivedJob aj = new ArchivedJob(jobid);
                try {
                        link = aj.prepareJobArchiveToWeb();
@@ -79,7 +89,19 @@ public class JpredWS implements Jpred {
                        log.error("JpredWS.findSequence: IO exception with job archive file");
                        log.error(e.getLocalizedMessage(), e.getCause());
                }
+               // if the archive file is not available null is returned
                return link;
        }
 
+       @Override
+       public int jobExists(String jobid) {
+               CassandraNativeConnector dbconnector = new CassandraNativeConnector();
+               JobReader reader = new JobReader();
+               reader.setSession(dbconnector.getSession());
+               if (null != reader.readJobLog(jobid)) {
+                       return 1;
+               }
+               return 0;
+       }
+
 }