@Override public List<AnalyzerResult> getResults() throws IllegalStateException { await(); if (isErrornous()) { throw new AnalysisJobFailedException(getErrors()); } final ArrayList<JobAndResult> resultQueueCopy = new ArrayList<>(_resultQueue); final ArrayList<AnalyzerResult> result = new ArrayList<>(resultQueueCopy.size()); for (final JobAndResult jobResult : resultQueueCopy) { result.add(jobResult.getResult()); } return result; }
@Override public JobStatus getStatus() { if (isDone()) { if (isSuccessful()) { return JobStatus.SUCCESSFUL; } return JobStatus.ERRORNOUS; } if (!_errorAware.isErrornous()) { return JobStatus.NOT_FINISHED; } return JobStatus.ERRORNOUS; }
@Override public void await(final long timeout, final TimeUnit timeUnit) { if (!isDone()) { try { logger.debug("_closeCompletionListener.await({},{})", timeout, timeUnit); _jobTaskListener.await(timeout, timeUnit); } catch (final InterruptedException e) { logger.error("Unexpected error while retreiving results", e); } } }
@Override public boolean isErrornous() { return !isSuccessful(); }
@Override public boolean isSuccessful() { await(); return !_errorAware.isErrornous(); }
analysisJobMetrics); return new AnalysisResultFutureImpl(_resultQueue, jobCompletionTaskListener, _errorAware); } catch (final RuntimeException e) { _analysisListener.errorUnknown(_job, e);
@Override public void await() { while (!isDone()) { try { logger.debug("_closeCompletionListener.await()"); _jobTaskListener.await(); } catch (final Exception e) { logger.error("Unexpected error while retreiving results", e); } } }
@Override public AnalyzerResult getResult(final ComponentJob componentJob) throws AnalysisJobFailedException { await(); if (isErrornous()) { throw new AnalysisJobFailedException(getErrors()); } final ArrayList<JobAndResult> resultQueueCopy = new ArrayList<>(_resultQueue); for (final JobAndResult jobResult : resultQueueCopy) { if (jobResult.getJob().equals(componentJob)) { return jobResult.getResult(); } } return null; }
@Override public Map<ComponentJob, AnalyzerResult> getResultMap() throws IllegalStateException { await(); if (isErrornous()) { throw new AnalysisJobFailedException(getErrors()); } final ArrayList<JobAndResult> resultQueueCopy = new ArrayList<>(_resultQueue); final Map<ComponentJob, AnalyzerResult> result = new HashMap<>(); for (final JobAndResult jobResult : resultQueueCopy) { final ComponentJob job = jobResult.getJob(); final AnalyzerResult analyzerResult = jobResult.getResult(); result.put(job, analyzerResult); } return result; }