1 package compbio.cassandra.readers;
3 import java.util.ArrayList;
4 import java.util.HashMap;
8 import com.datastax.driver.core.ResultSet;
9 import com.datastax.driver.core.Row;
11 import compbio.beans.TotalByCounterBean;
13 public class ReaderByCounter extends CassandraReader{
15 public ReaderByCounter() {
22 * query protein sequences with number of jobs
24 * @param minimalcounter
26 * @return List<TotalByCounterBean> to the controller SequenceController
29 public List<TotalByCounterBean> readProteinByCounter(int minimalcounter) {
30 ResultSet results = CassandraQuery("SELECT Protein, JobID FROM ProteinRow;");
31 return QueryByCounter(results, "Protein", minimalcounter);
35 * query ip with number of jobs
37 * @param minimalcounter
39 * @return List<TotalByCounterBean> to the controller IPDataController
42 public List<TotalByCounterBean> readIpByCounter(Integer minimalcounter) {
43 ResultSet results = CassandraQuery("SELECT JobID, ip FROM ProteinLog;");
44 return QueryByCounter(results, "ip", minimalcounter);
49 * query number of jobs by counter and parameter: ip or protein
52 * cassandra query result
53 * @param counterParameter
54 * parameter for a query: ip or proteint
55 * @param minimalcounter
57 * @return List<TotalByCounterBean>
60 public List<TotalByCounterBean> QueryByCounter(ResultSet results, String counterParameter, int minimalcounter) {
61 List<TotalByCounterBean> query = new ArrayList<TotalByCounterBean>();
62 if (results.isExhausted())
64 List<Row> rows = results.all();
65 Map<String, Integer> res = new HashMap<String, Integer>();
67 String parameter = r.getString(counterParameter);
68 if (res.containsKey(parameter))
69 res.put(parameter, res.get(parameter) + 1);
71 res.put(parameter, 1);
73 for (Map.Entry<String, Integer> entry : res.entrySet()) {
74 if (entry.getValue() > minimalcounter) {
75 TotalByCounterBean bean = new TotalByCounterBean();
76 bean.setTotaljobs(entry.getValue());
77 bean.setName(entry.getKey());