package compbio.cassandra.readers; import org.apache.log4j.Logger; import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Session; import com.datastax.driver.core.exceptions.QueryExecutionException; import com.datastax.driver.core.exceptions.QueryValidationException; 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); } public void setSession(Session s) { assert s != null; 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); return results; } catch (QueryExecutionException e) { String mess = "ProteoCache Cassandra DB interface: query execution exception...\n Command: " + command; System.out.println(mess); log.error(mess); log.error(e.getLocalizedMessage(), e.getCause()); return null; } catch (QueryValidationException e) { String mess = "CProteoCache Cassandra DB interface: query validation exception...\n Command: " + command; System.out.println(mess); log.error(mess); log.error(e.getLocalizedMessage(), e.getCause()); return null; } } /** * 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 * * @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 ""; } }