X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=datadb%2Fcompbio%2Fcassandra%2Freaders%2FJobReader.java;h=5cd8f8177fd473a1aec072ac85ec354247b54cad;hb=a800da3ae360d3b3430265ed5385056c16155b4c;hp=c632542b8d38dc84b4d7a0a15e47d408afb691df;hpb=db09514e58b52d44ef52d7c4591924a762c99c4b;p=proteocache.git diff --git a/datadb/compbio/cassandra/readers/JobReader.java b/datadb/compbio/cassandra/readers/JobReader.java index c632542..5cd8f81 100644 --- a/datadb/compbio/cassandra/readers/JobReader.java +++ b/datadb/compbio/cassandra/readers/JobReader.java @@ -1,5 +1,8 @@ package compbio.cassandra.readers; +import java.util.HashMap; +import java.util.Map; + import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Row; @@ -16,20 +19,40 @@ public class JobReader extends CassandraReader { * * @param jobid * - * @return JobBean to the controller JobController + * @return JobBean if a job with this job ID exist, null otherwise * **/ public JobBean readJobLog(String jobid) { ResultSet results = CassandraQuery("SELECT * FROM ProteinLog WHERE JobID = '" + jobid + "';"); if (results.isExhausted()) return null; - Row row = results.one(); + Row row1 = results.one(); ResultSet results1 = CassandraQuery("SELECT * FROM ProteinRow WHERE JobID = '" + jobid + "' ALLOW FILTERING;"); - if (results1.isExhausted()) - return null; - Row row1 = results1.one(); - JobBean res = new JobBean(row.getString("Protein"), row.getString("JobID"), row.getString("DataBegin"), row.getString("DataEnd"), - row.getString("ip"), row1.getMap("Predictions", String.class, String.class), row.getString("ProgrammeName"), row.getString("Version")); + Map predictions = new HashMap(); + if (!results1.isExhausted()) { + Row row2 = results1.one(); + predictions = row2.getMap("Predictions", String.class, String.class); + } + + JobBean res = new JobBean(row1.getString("Protein"), row1.getString("JobID"), row1.getString("DataBegin"), + row1.getString("DataEnd"), row1.getString("ip"), predictions); + + String programname = row1.getString("ProgramName"); + String programversion = row1.getString("ProgramVersion"); + if (null != programname && null != programversion) { + res.setProgramName(programname); + res.setProgramVersion(programversion); + ResultSet results3 = CassandraQuery("SELECT * FROM Programs WHERE Program = '" + programname + "' and Version = '" + programversion + + "' ALLOW FILTERING;"); + if (!results3.isExhausted()) { + Row row3 = results3.one(); + String link = row3.getString("weblink"); + if (null != link) { + res.setProgramLink(link); + } + } + } + return res; } }