PROT-7 fixed report by dates
[proteocache.git] / server / compbio / statistic / CassandraRequester.java
index 92ca531..ec74c6f 100755 (executable)
@@ -10,13 +10,14 @@ import java.util.List;
 import java.util.Map;
 
 import compbio.cassandra.CassandraNativeConnector;
+import compbio.cassandra.CassandraReader;
 import compbio.cassandra.DataBase;
 import compbio.cassandra.Pair;
 import compbio.cassandra.StructureJobLog;
 import compbio.cassandra.StructureProteinPrediction;
 
 public class CassandraRequester {
-       private CassandraNativeConnector DBInstance = new CassandraNativeConnector();
+       private CassandraReader db = new CassandraReader();
        private ArrayList<DataBase> query;
        private static long currentDate = 0;
        private static long earlestDate = 0;
@@ -54,7 +55,7 @@ public class CassandraRequester {
                List<Integer> totalTime = new ArrayList<Integer>();
                for (int i = 0; i < nbins; i++)
                        totalTime.add(i, 0);
-               List<Pair<String, String>> res = DBInstance.ReadProteinDataTable();
+               List<Pair<String, String>> res = db.ReadProteinDataTable();
                List<Pair<Date, Long>> numres = new ArrayList<Pair<Date, Long>>();
 
                for (Pair<String, String> entry : res) {
@@ -140,15 +141,18 @@ public class CassandraRequester {
                end.setTime(new Date(dateEnd));
                query = new ArrayList<DataBase>();
                for (Date date = start.getTime(); !start.after(end); start.add(Calendar.DATE, 1), date = start.getTime()) {
-                       Integer res = DBInstance.ReadDateTable(date.getTime());
-                       System.out.println("Command: " + res);
+                       List<Long> res = db.ReadDateTable(date.getTime());
                        if (res == null)
                                continue;
-                       DataBase db = new DataBase();
-                       db.setTotal(res);
-                       db.setDate(DateFormat(date.getTime()));
-                       query.add(db);
-               }                       
+                       DataBase bean = new DataBase();
+                       bean.setTotal((int)(long)res.get(0));
+                       bean.setTotalOK((int)(long)res.get(1));
+                       bean.setTotalStopped((int)(long)res.get(2));
+                       bean.setTotalError((int)(long)res.get(3));
+                       bean.setTotalTimeOut((int)(long)res.get(4));
+                       bean.setDate(DateFormat(date.getTime()));
+                       query.add(bean);
+               }
                System.out.println("StatisticsProt.readLength: total number of dates = " + query.size());
                return query;
        }
@@ -159,9 +163,11 @@ public class CassandraRequester {
                query = new ArrayList<DataBase>();
                List<StructureProteinPrediction> res;
                if (flag.equals("whole")) 
-                       res = DBInstance.ReadWholeSequence(protIn);
+                       res = db.ReadWholeSequence(protIn);
                 else 
-                       res = DBInstance.ReadPartOfSequence(protIn);
+                       res = db.ReadPartOfSequence(protIn);
+               if (res == null)
+                       return null;
                for (StructureProteinPrediction entry : res) {
                        Map<String,String> pred = entry.getPrediction();
                        Iterator it = pred.entrySet().iterator();
@@ -180,17 +186,17 @@ public class CassandraRequester {
        }
        
        /* 
-        * query  protein sequences with number of jobs
-        * */
-       public List<DataBase> readProteinByCounter(int counter) {
+        * query protein sequences with number of jobs
+        */
+       public List<DataBase> readProteinByCounter(int minimalcounter) {
                query = new ArrayList<DataBase>();
-               Map<String, Integer> map = DBInstance.ReadProteinDataByCounter();
+               Map<String, Integer> map = db.ReadProteinSequenceByCounter();
                for (Map.Entry<String, Integer> entry : map.entrySet()) {
-                       if (entry.getValue() > counter) {
-                               DataBase db = new DataBase();
-                               db.setTotalId(entry.getValue());
-                               db.setProt(entry.getKey());
-                               query.add(db);
+                       if (entry.getValue() > minimalcounter && entry.getKey().length() > 0) {
+                               DataBase bean = new DataBase();
+                               bean.setTotalId(entry.getValue());
+                               bean.setProt(entry.getKey());
+                               query.add(bean);
                        }
                }
                return query;
@@ -201,7 +207,7 @@ public class CassandraRequester {
         */
        public DataBase readJobLog(String jobid) {
        //      query = new ArrayList<DataBase>();
-               StructureJobLog res = DBInstance.ReadJobLog(jobid);
+               StructureJobLog res = db.ReadJobLog(jobid);
                DataBase query = new DataBase();
                query.setLogInfo(res);
        //      query.setres);
@@ -282,7 +288,7 @@ public class CassandraRequester {
         * find the earliest date in the database
         */
        public long earliestDate() {
-               earlestDate =  DBInstance.getEarliestDateInDB();
+               earlestDate = CassandraNativeConnector.getEarliestDateInDB();
                return earlestDate;
        }