Improve javadoc
[proteocache.git] / datadb / compbio / cassandra / readers / JobReader.java
index 178ff4b..5cd8f81 100644 (file)
@@ -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));
+               Map<String, String> predictions = new HashMap<String, String>();
+               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;
        }
 }