+ public static void validateAAConInput(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
+ 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
+ }\r
+ }\r
+ }\r
+\r
+ public static <T> ScoreManager getAnnotation(String jobId, Logger log)\r
+ throws ResultNotAvailableException {\r
+ WSUtil.validateJobId(jobId);\r
+ AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId);\r
+ ConfiguredExecutable<T> aacon = (ConfiguredExecutable<T>) asyncEngine\r
+ .getResults(jobId);\r
+ \r
+ ScoreManager mas = aacon.getResults();\r
+ \r
+ log.trace(jobId + " getConservation : " + mas);\r
+ return mas;\r
+ }\r
+ \r
+\r
+ /*\r
+ * UNUSED\r
+ * \r
+ * @SuppressWarnings("unchecked") static <T> LimitsManager<T>\r
+ * getLimits(Class<? extends Executable<T>> clazz, WebServiceContext\r
+ * wsContext) {\r
+ * \r
+ * String LIMIT_KEY = CACHE_KEY + clazz.getCanonicalName(); LimitsManager<T>\r
+ * limit = (LimitsManager<T>) getObjectFromApplContext( LIMIT_KEY,\r
+ * wsContext); if (limit == null) { synchronized (WSUtil.class) { limit =\r
+ * (LimitsManager<T>) getObjectFromApplContext(LIMIT_KEY, wsContext); if\r
+ * (limit == null) { limit = compbio.runner.Util\r
+ * .getLimits((Class<Executable<T>>) clazz);\r
+ * addObjectToApplContext(wsContext, LIMIT_KEY, limit); } } } return limit;\r
+ * }\r
+ * \r
+ * static void addObjectToApplContext(WebServiceContext wsContext, String\r
+ * objKey, Object obj) { assert !Util.isEmpty(objKey) :\r
+ * "Key for the object must not be empty! "; assert wsContext != null;\r
+ * \r
+ * ServletContext ctx = ((javax.servlet.ServletContext) wsContext\r
+ * .getMessageContext().get(MessageContext. SERVLET_CONTEXT)); assert ctx !=\r
+ * null; log.debug("Adding object with key '" + objKey + "' and value '" +\r
+ * obj + "' to the application context"); ctx.setAttribute(objKey, obj); }\r
+ * static Object getObjectFromApplContext(String objKey, WebServiceContext\r
+ * wsContext) { assert !Util.isEmpty(objKey) :\r
+ * "Key for the object must not be empty! "; assert wsContext != null;\r
+ * \r
+ * ServletContext ctx = ((javax.servlet.ServletContext) wsContext\r
+ * .getMessageContext().get(MessageContext. SERVLET_CONTEXT)); Object obj =\r
+ * ctx.getAttribute(objKey); log.trace("Retrieving object with key '" +\r
+ * objKey + "' and value '" + obj + "' from the application context");\r
+ * return obj; }\r
+ */\r