Allow less full jobs (with failed status) to be reported
[proteocache.git] / datadb / compbio / cassandra / readers / JobReader.java
1 package compbio.cassandra.readers;
2
3 import java.util.HashMap;
4 import java.util.Map;
5
6 import com.datastax.driver.core.ResultSet;
7 import com.datastax.driver.core.Row;
8
9 import compbio.beans.JobBean;
10
11 public class JobReader extends CassandraReader {
12
13         public JobReader() {
14                 super();
15         }
16
17         /**
18          * query jobs log info
19          * 
20          * @param jobid
21          * 
22          * @return JobBean to the controller JobController
23          * 
24          **/
25         public JobBean readJobLog(String jobid) {
26                 ResultSet results = CassandraQuery("SELECT * FROM ProteinLog WHERE JobID = '" + jobid + "';");
27                 if (results.isExhausted())
28                         return null;
29                 Row row1 = results.one();
30                 ResultSet results1 = CassandraQuery("SELECT * FROM ProteinRow WHERE JobID = '" + jobid + "' ALLOW FILTERING;");
31                 Map<String, String> predictions = new HashMap<String, String>();
32                 if (!results1.isExhausted()) {
33                         Row row2 = results1.one();
34                         predictions = row2.getMap("Predictions", String.class, String.class);
35                 }
36
37                 JobBean res = new JobBean(row1.getString("Protein"), row1.getString("JobID"), row1.getString("DataBegin"),
38                                 row1.getString("DataEnd"), row1.getString("ip"), predictions);
39
40                 String programname = row1.getString("ProgramName");
41                 String programversion = row1.getString("ProgramVersion");
42                 if (null != programname && null != programversion) {
43                         res.setProgramName(programname);
44                         res.setProgramVersion(programversion);
45                         ResultSet results3 = CassandraQuery("SELECT * FROM Programs WHERE Program = '" + programname + "' and Version = '" + programversion
46                                         + "' ALLOW FILTERING;");
47                         if (!results3.isExhausted()) {
48                                 Row row3 = results3.one();
49                                 String link = row3.getString("weblink");
50                                 if (null != link) {
51                                         res.setProgramLink(link);
52                                 }
53                         }
54                 }
55
56                 return res;
57         }
58 }