Remove system prints
[proteocache.git] / server / compbio / statistic / CassandraRequester.java
index 214bf6f..0494a83 100755 (executable)
@@ -21,6 +21,8 @@ public class CassandraRequester {
        private ArrayList<DataBase> query;
        private static long currentDate = 0;
        private static long earlestDate = 0;
+       private final static SimpleDateFormat formatYYMMDD = new SimpleDateFormat("yyyy/MM/dd");
+       private final static SimpleDateFormat formatDDMMYY = new SimpleDateFormat("dd/MM/yyyy");
 
        /*
         * query: execution time for the period from date1 till date2
@@ -32,14 +34,14 @@ public class CassandraRequester {
                if (null == date2) {
                        date1 = "2100/1/1";
                }
-               if (!isThisDateValid(date1) || !isThisDateValid(date2)) {
-                       System.out.println("Wrong date: point 3");
+               if (!isThisDateValid(date1,formatYYMMDD) || !isThisDateValid(date2,formatYYMMDD)) {
+                       System.out.println("CassandraRequester.extractExecutionTime: wrong format for date1 " + date1 + "or date2 " + date2);
                        return null;
                }
                SetDateRange();
                int nbins = 5;
-               long dateStart = DateParsing(date1);
-               long dateEnd = DateParsing(date2);
+               long dateStart = DateParsing(date1, formatYYMMDD);
+               long dateEnd = DateParsing(date2, formatYYMMDD);
                if (dateEnd < earlestDate || dateStart > currentDate || dateStart > dateEnd)
                        return null;
                if (dateStart < earlestDate)
@@ -107,7 +109,6 @@ public class CassandraRequester {
                DataBase db = new DataBase();
                db.setTimeTotalExec(totalTime);
                query.add(db);
-               System.out.println("StatisticsProt.readLength: total number of dates = " + query.size());
                return query;
        }
        
@@ -121,13 +122,13 @@ public class CassandraRequester {
                if (null == date2) {
                        date1 = "2100/1/1";
                }
-               if (!isThisDateValid(date1) || !isThisDateValid(date2)) {
-                       System.out.println("Wrong date: point 3");
+               if (!isThisDateValid(date1, formatYYMMDD) || !isThisDateValid(date2, formatYYMMDD)) {
+                       System.out.println("CassandraRequester.countJobs: wrong format for date1 " + date1 + "or date2 " + date2);
                        return null;
                }
                SetDateRange();
-               long dateStart = DateParsing(date1);
-               long dateEnd = DateParsing(date2);
+               long dateStart = DateParsing(date1, formatYYMMDD);
+               long dateEnd = DateParsing(date2, formatYYMMDD);
                if (dateEnd < earlestDate || dateStart > currentDate || dateStart > dateEnd)
                        return null;
                if (dateStart < earlestDate)
@@ -153,10 +154,39 @@ public class CassandraRequester {
                        bean.setDate(DateFormat(date.getTime()));
                        query.add(bean);
                }
-               System.out.println("StatisticsProt.readLength: total number of dates = " + query.size());
                return query;
        }
 
+       /*
+        * query: jobs and sequence at date
+        */
+       public List<DataBase> readJobByDay (String date) {
+               if (null == date) {
+                       return null;
+               }
+               if (!isThisDateValid(date, formatDDMMYY)) {
+                       System.out.println("CassandraRequester.readJobByDay: Wrong date format for " + date);
+                       return null;
+               }
+               SetDateRange();
+               long day = DateParsing(date, formatDDMMYY);
+               if (day < earlestDate || day > currentDate)
+                       return null;    
+               List<Pair<String, String>>      res = db.ReadProteinData(day);
+               if (res == null)
+                       return null;
+               query = new ArrayList<DataBase>();
+               for (Pair<String, String> entry : res) {                
+                       DataBase bean = new DataBase();
+                       bean.setDate(date);
+                       bean.setId(entry.getElement0());
+                       bean.setProt(entry.getElement1());
+                       query.add(bean);
+               }
+               return query;
+       }
+
+
        /* 
         * query: protein sequence
         * */
@@ -181,6 +211,7 @@ public class CassandraRequester {
                }
                return query;
        }
+       
 
        /* 
         * query protein sequences with number of jobs
@@ -199,17 +230,61 @@ public class CassandraRequester {
                return query;
        }
        
+       /* 
+        * query ip with number of jobs
+        */
+       public List<DataBase> readIpByCounter(Integer minimalcounter) {
+               query = new ArrayList<DataBase>();
+               Map<String, Integer> map = db.ReadIpByCounter();
+               if (minimalcounter == null)
+                       minimalcounter = 0;
+               if (map == null)
+                       return null;
+               for (Map.Entry<String, Integer> entry : map.entrySet()) {
+                       if (entry.getValue() > minimalcounter) {
+                               DataBase bean = new DataBase();
+                               bean.setTotalId(entry.getValue());
+                               bean.setIp(entry.getKey());
+                               query.add(bean);
+                       }
+               }
+               return query;
+       }
        /*
         * query jobs log info
         */
        public DataBase readJobLog(String jobid) {
-       //      query = new ArrayList<DataBase>();
+               if (jobid == null)
+                       return null;
                StructureJobLog res = db.ReadJobLog(jobid);
+               if (res == null)
+                       return null;
                DataBase query = new DataBase();
                query.setLogInfo(res);
-       //      query.setres);
                return query;
        }
+       
+       
+       /*
+        * query jobs by ipStructureJobLog
+        */
+       public List<DataBase> readIp(String ip) {
+               if (ip == null)
+                       return null;
+               List<Pair<String, String>> res = db.ReadIpWithJobs(ip);
+               if (res == null) 
+                       return null;
+               query = new ArrayList<DataBase>();
+               for (Pair<String, String> entry : res) {
+                       DataBase bean = new DataBase();
+                       bean.setIp(ip);
+                       bean.setId(entry.getElement0());
+                       bean.setProt(entry.getElement1());
+                       query.add(bean);
+               }
+               return query;
+       }
+       
        /*
         * create list of parts of protein sequence;
         */
@@ -230,12 +305,12 @@ public class CassandraRequester {
        /*
         * convert String date into long date (miliseconds since the epoch start)
         */
-       private static long DateParsing(String datInput) {
+       private static long DateParsing(String datInput, SimpleDateFormat formatter) {
                if (datInput == null) {
                        return 0;
                }
                long dateWorkSt = 0;
-               SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
+               
                try {
                        dateWorkSt = formatter.parse(datInput).getTime();
                } catch (ParseException e) {
@@ -256,20 +331,17 @@ public class CassandraRequester {
         */
        private static void SetDateRange() {
                Calendar cal = Calendar.getInstance();
-               currentDate = DateParsing(cal.get(Calendar.YEAR) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.DAY_OF_MONTH));
+               currentDate = DateParsing(cal.get(Calendar.YEAR) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.DAY_OF_MONTH), formatYYMMDD);
                if (0 == earlestDate) {
                        CassandraRequester cr = new CassandraRequester();
                        earlestDate = cr.earliestDate();
-                       System.out.println("Set earlest Date = " + earlestDate);
                }
        }
 
-       public boolean isThisDateValid(String dateToValidate) {
+       public boolean isThisDateValid(String dateToValidate, SimpleDateFormat sdf) {
                if (dateToValidate == null || dateToValidate.equals("")) {
-                       System.out.println("Undefined date");
                        return false;
                }
-               SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
                try {
                        // if not valid, this will throw ParseException
                        sdf.setLenient(false);