@Override public Job to(UriInfo uriInfo, JobModel representation) { return Job.Builder.build( j -> { j.setJobName(representation.getName()); j.setExternalIds(representation.getExternalIds()); j.setJobType(JobType.valueOf(representation.getType())); Optional.ofNullable(representation.getStatus()) .map(ResourceStatusModel::getCurrent) .map(JobStatus::valueOf) .ifPresent(j::setStatus); j.setJobConfiguration( modelMapper.map( representation.getConfiguration(), getJobConfigurationClass(representation.getType()))); Optional.ofNullable(representation.getPriority()).ifPresent(j::setPriority); }); }