public Map<String, Object> inverseTransform(Map<String, Object> job) {
if (job == null)
return null;
String jobName = (String) job.get(JSON_JOB_NAME_FIELD);
Map<String, Object> inverseJob = new LinkedTreeMap<>();
Map<String, Object> jobData = new LinkedTreeMap<>();
addOptionalInt(jobData, job, JSON_JOB_TIMEOUT_FIELD, YAML_JOB_TIMEOUT_FIELD);
addInverseRunInstances(jobData, job);
Map<String, Object> yamlEnvVariables = environmentTransform.inverseTransform((List<Map<String, Object>>) job.get(JSON_ENV_VAR_FIELD));
if (yamlEnvVariables != null && yamlEnvVariables.size() > 0)
jobData.putAll(yamlEnvVariables);
addInverseTabs(jobData, job);
addOptionalList(jobData, job, JSON_JOB_RESOURCES_FIELD, YAML_JOB_RESOURCES_FIELD);
addOptionalValue(jobData, job, JSON_JOB_ELASTIC_PROFILE_FIELD, YAML_JOB_ELASTIC_PROFILE_FIELD);
addInverseArtifacts(jobData, job);
addInverseProperties(jobData, job);
addInverseTasks(jobData, job);
inverseJob.put(jobName, jobData);
return inverseJob;
}