import compbio.cassandra.CassandraNativeConnector;
+/**
+ * basic reader of the ProteoCache database. It depends on open
+ * CassandraNativeConnector, which should provide an open session to the
+ * ProteoCache DB (in the default constructor)
+ *
+ * @author as373024
+ *
+ */
public class CassandraReader {
protected static long earlestDate = 0;
protected Session session;
protected static Logger log = Logger.getLogger(CassandraNativeConnector.class);
+ /**
+ * default constructor.
+ */
public CassandraReader() {
Session inis = CassandraNativeConnector.getSession();
setSession(inis);
session = s;
}
+ /**
+ * Basic query to the DB. The method throws exception if the input command
+ * is not valid or if there is a problem with execution of the command
+ *
+ * @param command - reading CQL command
+ * @return resulting outout of the command
+ */
protected ResultSet CassandraQuery(String command) {
try {
ResultSet results = session.execute(command);
}
- /*
- * find the earliest date in the database
+ /**
+ * finds the earliest date in the database
+ *
+ * @return the earliest date (long)
*/
public static long earliestDate() {
earlestDate = CassandraNativeConnector.getEarliestDateInDB();
return earlestDate;
}
-
+
/**
* prepares an example of either job id or IP for the DB
*
import compbio.cassandra.readers.ReaderByCounter;
/**
+ * The controller
+ *
* @author Alexander Sherstnev
* @author Natasha Sherstneva
+ * @version 1.0
*/
@Controller
public class IPDataController extends BasicController {
-
+ /**
+ * default minimal jobs to consider a user "heavy user"
+ */
+ private int minimalJobsFromIP = 5;
+
+ /**
+ * for initial page for request "heavy users"
+ *
+ */
@RequestMapping(value = "/admin/ip/counts/query", method = RequestMethod.GET)
public String initStatisticsForm(Map<String, Object> model) {
model.put("username", getPrincipalName());
- model.put("value", 5);
+ model.put("value", minimalJobsFromIP);
return "query/IPStatistics";
}
+ /**
+ * form query page for requesting a single IP
+ *
+ * @param model - MVC abstract model
+ * @return
+ */
@RequestMapping(value = "/admin/ip/query", method = RequestMethod.GET)
public String initOneIPForm(Map<String, Object> model) {
model.put("username", getPrincipalName());
return "query/IP";
}
+ /**
+ * Form output model with statistics on "heavy users"
+ * @param counter - the number of jobs for requested "heavy users"
+ * @param model - abstract MVC model
+ * @return
+ */
@RequestMapping(value = "/admin/ip/counts/results", method = RequestMethod.GET)
public String findIPwithCounter(@RequestParam("JobCounter") String counter, Map<String, Object> model) {
model.put("username", getPrincipalName());