public AnalysisJobBuilder create(final JobType job, final SourceColumnMapping sourceColumnMapping,
final Map<String, String> variableOverrides) throws NoSuchDatastoreException {
if (job == null) {
throw new IllegalArgumentException("Job cannot be null");
}
if (sourceColumnMapping != null && !sourceColumnMapping.isSatisfied()) {
throw new IllegalArgumentException("Source column mapping is not satisfied!");
}
final Map<String, String> variables = getVariables(job);
overrideVariables(variables, variableOverrides);
final JobMetadataType metadata = job.getJobMetadata();
if (metadata != null) {
logger.info("Job name: {}", metadata.getJobName());
logger.info("Job version: {}", metadata.getJobVersion());
logger.info("Job description: {}", metadata.getJobDescription());
logger.info("Author: {}", metadata.getAuthor());
logger.info("Created date: {}", metadata.getCreatedDate());
logger.info("Updated date: {}", metadata.getUpdatedDate());
logger.info("Job metadata properties: {}", getMetadataProperties(metadata));
}
final AnalysisJobBuilder builder = new AnalysisJobBuilder(_configuration);
try {
return create(job, sourceColumnMapping, metadata, variables, variableOverrides, builder);
} catch (final RuntimeException e) {
FileHelper.safeClose(builder);
throw e;
}
}