+ private static Logger log = Logger.getLogger(CassandraNativeConnector.class);
+ String jobid;
+
+ private List<String> findJobs(String sequence, String program, String version) {
+ CassandraNativeConnector dbconnector = new CassandraNativeConnector();
+ SequenceReader reader = new SequenceReader();
+ reader.setSession(dbconnector.getSession());
+ log.debug("ProteoCacheWS is connected:\n search for sequence: " + sequence + "\ncalculated with " + program + " (version: "
+ + version + ")");
+ List<String> jobs = new ArrayList<String>();
+ List<ProteinBean> result = reader.readProteins(sequence, "whole");
+ if (null != result) {
+ for (ProteinBean protein : result) {
+ List<String> thejobs = protein.getJobid();
+ jobid = thejobs.get(0);
+ for (String job : thejobs) {
+ jobs.add(job);
+ }
+ }
+ }
+ return jobs;
+ }
+
+ @Override
+ public int findSequence(String sequence, String program, String version) {
+ List<String> jobs = findJobs(sequence, program, version);
+ if (null != jobs) {
+ return jobs.size();
+ }
+ return 0;
+ }
+
+ @Override
+ public String findJobForSequence(String sequence, String program, String version) {
+ List<String> jobs = findJobs(sequence, program, version);
+ if (null != jobs) {
+ for (String job : jobs) {
+ String link = null;
+ ArchivedJob aj = new ArchivedJob(job);
+ try {
+ link = aj.prepareJobArchiveToWeb();
+ } catch (IOException e) {
+ log.error("JpredWS.findSequence: IO exception with job archive file");
+ log.error(e.getLocalizedMessage(), e.getCause());
+ }
+ if (null != link) {
+ return job;
+ }
+ }
+ return "";
+ }
+ return "";
+ }
+
+ @Override
+ public String getArchive(String jobid) {
+ String link = null;
+ ArchivedJob aj = new ArchivedJob(jobid);
+ try {
+ link = aj.prepareJobArchiveToWeb();
+ } catch (IOException e) {
+ log.error("JpredWS.findSequence: IO exception with job archive file");
+ log.error(e.getLocalizedMessage(), e.getCause());
+ }
+ // if the archive file is not available null is returned
+ return link;
+ }