Merge from ECOMP's repository
[vid.git] / vid-app-common / src / main / java / org / onap / vid / job / impl / JobAdapterImpl.java
1 package org.onap.vid.job.impl;
2
3 import com.google.common.collect.ImmutableMap;
4 import org.onap.vid.job.Job;
5 import org.onap.vid.job.JobAdapter;
6 import org.onap.vid.job.JobType;
7 import org.onap.vid.model.JobModel;
8 import org.springframework.stereotype.Component;
9
10 import java.util.Map;
11 import java.util.UUID;
12
13 @Component
14 public class JobAdapterImpl implements JobAdapter {
15
16     @Override
17     public JobModel toModel(Job job) {
18         JobModel jobModel = new JobModel();
19         jobModel.setUuid(job.getUuid());
20         jobModel.setStatus(job.getStatus());
21         jobModel.setTemplateId(job.getTemplateId());
22         return jobModel;
23     }
24
25     @Override
26     public Job createServiceInstantiationJob(JobType jobType, AsyncJobRequest request, UUID templateId, String userId, String optimisticUniqueServiceInstanceName, Integer indexInBulk){
27         JobDaoImpl job = createJob(jobType, Job.JobStatus.PENDING , userId);
28         job.setSharedData(new JobSharedData(job.getUuid(), userId, request));
29         job.setTypeAndData(jobType, ImmutableMap.of(
30                 "optimisticUniqueServiceInstanceName", optimisticUniqueServiceInstanceName
31         ));
32         job.setTemplateId(templateId);
33         job.setIndexInBulk(indexInBulk);
34         return job;
35     }
36
37     @Override
38     public Job createChildJob(JobType jobType, Job.JobStatus jobStatus, AsyncJobRequest request, JobSharedData parentSharedData, Map<String, Object> jobData) {
39         JobDaoImpl job = createJob(jobType, jobStatus , parentSharedData.getUserId());
40         job.setSharedData(new JobSharedData(job.getUuid(), request, parentSharedData));
41         job.setTypeAndData(jobType, jobData);
42         return job;
43     }
44
45     protected JobDaoImpl createJob(JobType jobType, Job.JobStatus jobStatus, String userId) {
46         JobDaoImpl job = new JobDaoImpl();
47         job.setTypeAndData(jobType, null);
48         job.setStatus(jobStatus);
49         job.setUuid(UUID.randomUUID());
50         job.setUserId(userId);
51         return job;
52     }
53
54 }