-/* Copyright (c) 2009 Peter Troshin\r
+/* Copyright (c) 2011 Peter Troshin\r
* \r
- * JAva Bioinformatics Analysis Web Services (JABAWS) @version: 1.0\r
+ * JAva Bioinformatics Analysis Web Services (JABAWS) @version: 2.0 \r
* \r
* This library is free software; you can redistribute it and/or modify it under the terms of the\r
* Apache License version 2 as published by the Apache Software Foundation\r
import compbio.metadata.LimitExceededException;\r
import compbio.metadata.Option;\r
import compbio.metadata.ResultNotAvailableException;\r
+import compbio.ws.client.Services;\r
+import compbio.ws.client.ServicesUtil;\r
\r
public final class WSUtil {\r
\r
compbio.runner.Util.writeInput(sequences, confExec);\r
AsyncExecutor engine = Configurator.getAsyncEngine(confExec);\r
String jobId = engine.submitJob(confExec);\r
+ reportUsage(confExec, logger);\r
return jobId;\r
}\r
\r
+ static <T> void reportUsage(ConfiguredExecutable<T> confExec, Logger logger) {\r
+ if (GAUtils.IS_GA_ENABLED) {\r
+ Services service = ServicesUtil.getServiceByRunner(confExec\r
+ .getExecutable().getClass());\r
+ GAUtils.reportUsage(service);\r
+ logger.info("Reporting GA usage for " + service);\r
+ }\r
+ }\r
+\r
public static <T> String analize(List<FastaSequence> sequences,\r
ConfiguredExecutable<T> confExec, Logger log, String method,\r
Limit<T> limit) throws JobSubmissionException {\r
compbio.runner.Util.writeInput(sequences, confExec);\r
AsyncExecutor engine = Configurator.getAsyncEngine(confExec);\r
String jobId = engine.submitJob(confExec);\r
-\r
+ reportUsage(confExec, log);\r
return jobId;\r
}\r
\r
}\r
if (fs.getLength() != len) {\r
throw new JobSubmissionException(\r
- "All sequences must be of the same length. Please align "\r
- + "the sequences prior to submission! The first sequence length is : "\r
- + len + " but the sequence '" + fs.getId()\r
- + "' length is " + fs.getLength());\r
+ "All sequences must be of the same length. Please align the sequences " + \r
+ " prior to submission! The first sequence length is : " + len + \r
+ " but the sequence '" + fs.getId() + "' length is " + fs.getLength());\r
+ }\r
+ }\r
+ }\r
+\r
+ public static void validateJpredInput(List<FastaSequence> sequences)\r
+ throws JobSubmissionException {\r
+ validateFastaInput(sequences);\r
+ int len = 0;\r
+ for (FastaSequence fs : sequences) {\r
+ if (len == 0) {\r
+ len = fs.getLength();\r
+ continue;\r
+ }\r
+ if (fs.getLength() != len) {\r
+ System.out.println("FASTA rec: id = " + fs.getId() + ": seq = " + fs.getSequence());\r
+ throw new JobSubmissionException(\r
+ "All sequences must be of the same length. Please align the sequences " + \r
+ " prior to submission! The first sequence length is : " + len + \r
+ " but the sequence '" + fs.getId() + "' length is " + fs.getLength());\r
}\r
}\r
}\r
throws ResultNotAvailableException {\r
WSUtil.validateJobId(jobId);\r
AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId);\r
- ConfiguredExecutable<T> aacon = (ConfiguredExecutable<T>) asyncEngine\r
- .getResults(jobId);\r
+ ConfiguredExecutable<T> aacon = (ConfiguredExecutable<T>) asyncEngine.getResults(jobId);\r
ScoreManager mas = aacon.getResults();\r
log.trace(jobId + " getConservation : " + mas);\r
return mas;\r