Centralize initial examples of job id and IP
[proteocache.git] / server / compbio / statistic / CassandraRequester.java
index e95291a..0ce458b 100755 (executable)
@@ -5,13 +5,14 @@ import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import compbio.cassandra.DateBean;
 import compbio.cassandra.ProteinBean;
 import compbio.cassandra.CassandraNativeConnector;
-import compbio.cassandra.CassandraReader;
+import compbio.cassandra.CassandraReaderOld;
 import compbio.cassandra.DataBase;
 import compbio.cassandra.Pair;
 import compbio.cassandra.JobBean;
@@ -22,7 +23,7 @@ import compbio.cassandra.UserBean;
 import compbio.engine.JobStatus;
 
 public class CassandraRequester {
-       private CassandraReader db = new CassandraReader();
+       private CassandraReaderOld db = new CassandraReaderOld();
        private ArrayList<DataBase> query;
        private static long currentDate = 0;
        private static long earlestDate = 0;
@@ -121,26 +122,21 @@ public class CassandraRequester {
         * query: total number of jobs for the period from date1 till date2
         */
        public TotalJobsStatisticBean countJobs(String date1, String date2) {
-               if (null == date1) {
-                       date1 = "1970/1/1";
-               }
-               if (null == date2) {
-                       date1 = "2100/1/1";
-               }
-               if (!isThisDateValid(date1, formatYYMMDD) || !isThisDateValid(date2, formatYYMMDD)) {
-                       System.out.println("CassandraRequester.countJobs: wrong format for date1 " + date1 + "or date2 " + date2);
-                       return null;
-               }
+               /*
+                * if (null == date1) { date1 = "1970/1/1"; } if (null == date2) { date1
+                * = "2100/1/1"; } 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, formatYYMMDD);
                long dateEnd = DateParsing(date2, formatYYMMDD);
-               if (dateEnd < earlestDate || dateStart > currentDate || dateStart > dateEnd)
-                       return null;
-               if (dateStart < earlestDate)
-                       dateStart = earlestDate;
-               if (dateEnd > currentDate)
-                       dateStart = currentDate;
-
+               /*
+                * if (dateEnd < earlestDate || dateStart > currentDate || dateStart >
+                * dateEnd) return null; if (dateStart < earlestDate) dateStart =
+                * earlestDate; if (dateEnd > currentDate) dateStart = currentDate;
+                */
                Calendar start = Calendar.getInstance();
                start.setTime(new Date(dateStart));
                Calendar end = Calendar.getInstance();
@@ -174,7 +170,7 @@ public class CassandraRequester {
                long day = DateParsing(date, formatDDMMYY);
                if (day < earlestDate || day > currentDate)
                        return null;
-               
+
                if (status == JobStatus.OK) {
                        return db.ReadProteinData(day, date);
                }
@@ -184,16 +180,16 @@ public class CassandraRequester {
        /*
         * query: protein sequence
         */
-       public List<ProteinBean> readProteins(String protIn, String flag) {
+       public List<ProteinBean> readProteins(String protIn, String searchtype) {
                List<ProteinBean> result;
-               if (flag.equals("whole"))
+               if (searchtype.equals("whole"))
                        result = db.ReadWholeSequence(protIn);
                else
                        result = db.ReadPartOfSequence(protIn);
                if (result == null)
                        return null;
 
-               if (flag.equals("part")) {
+               if (searchtype.equals("partial")) {
                        for (ProteinBean entry : result) {
                                entry.setSubProt(CreateSubprot(entry.getSequence(), protIn));
                        }
@@ -202,6 +198,25 @@ public class CassandraRequester {
        }
 
        /*
+        * query: protein feature
+        */
+       public Map<String, String> readProteinsPrediction(String feature, int percent) {
+               Map<String, String> result = db.ReadProtein();
+               ;
+               if (result == null)
+                       return null;
+               Map<String, String> query = new HashMap<String, String>();
+               for (Map.Entry<String, String> entry : result.entrySet()) {
+                       String pred = entry.getValue();
+                       if (pred.replaceAll("[^" + feature + "]", "").length() > pred.length() * percent / 100 && (!entry.getKey().equals(""))) {
+                               // if (!entry.getKey().equals(""))
+                               query.put(entry.getKey(), pred);
+                       }
+               }
+               return query;
+       }
+
+       /*
         * query protein sequences with number of jobs
         */
        public List<TotalByCounterBean> readProteinByCounter(int minimalcounter) {
@@ -342,4 +357,22 @@ public class CassandraRequester {
                return earlestDate;
        }
 
+       /**
+        * prepares an example of either job id or IP for the DB
+        * 
+        * @param exampletype
+        *            defines which example you need (an existing job from the DB -
+        *            jobid, an IP - "ip")
+        * @return a string representation of the requested example, if the example
+        *         type is not known empty string is returned
+        */
+       public String getExample(String exampletype) {
+               if (exampletype.equals("jobid")) {
+                       return "jp_NzBOJKo";
+               } else if (exampletype.equals("ip")) {
+                       return "127.0.0.1";
+               }
+               return "";
+       }
+
 }