package compbio.cassandra.readers; import java.util.HashMap; import java.util.Map; import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Row; import compbio.beans.JobBean; public class JobReader extends CassandraReader { public JobReader() { super(); } /** * query jobs log info * * @param jobid * * @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 row1 = results.one(); ResultSet results1 = CassandraQuery("SELECT * FROM ProteinRow WHERE JobID = '" + jobid + "' ALLOW FILTERING;"); 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; } }