9ea1f1326f6762c03e01d1112c6dfa6545ec798e
[vid.git] / vid-app-common / src / main / java / org / onap / vid / job / impl / JobAdapterImpl.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * VID
4  * ================================================================================
5  * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.vid.job.impl;
22
23 import com.google.common.collect.ImmutableMap;
24 import org.onap.vid.job.Job;
25 import org.onap.vid.job.JobAdapter;
26 import org.onap.vid.job.JobType;
27 import org.onap.vid.model.JobModel;
28 import org.springframework.stereotype.Component;
29
30 import java.util.Map;
31 import java.util.UUID;
32
33 @Component
34 public class JobAdapterImpl implements JobAdapter {
35
36     @Override
37     public JobModel toModel(Job job) {
38         JobModel jobModel = new JobModel();
39         jobModel.setUuid(job.getUuid());
40         jobModel.setStatus(job.getStatus());
41         jobModel.setTemplateId(job.getTemplateId());
42         return jobModel;
43     }
44
45     @Override
46     public Job createServiceInstantiationJob(JobType jobType, AsyncJobRequest request, UUID templateId, String userId, String optimisticUniqueServiceInstanceName, Integer indexInBulk){
47         JobDaoImpl job = createJob(jobType, Job.JobStatus.PENDING , userId);
48         job.setSharedData(new JobSharedData(job.getUuid(), userId, request));
49         job.setTypeAndData(jobType, ImmutableMap.of(
50                 "optimisticUniqueServiceInstanceName", optimisticUniqueServiceInstanceName
51         ));
52         job.setTemplateId(templateId);
53         job.setIndexInBulk(indexInBulk);
54         return job;
55     }
56
57     @Override
58     public Job createChildJob(JobType jobType, Job.JobStatus jobStatus, AsyncJobRequest request, JobSharedData parentSharedData, Map<String, Object> jobData) {
59         JobDaoImpl job = createJob(jobType, jobStatus , parentSharedData.getUserId());
60         job.setSharedData(new JobSharedData(job.getUuid(), request, parentSharedData));
61         job.setTypeAndData(jobType, jobData);
62         return job;
63     }
64
65     protected JobDaoImpl createJob(JobType jobType, Job.JobStatus jobStatus, String userId) {
66         JobDaoImpl job = new JobDaoImpl();
67         job.setTypeAndData(jobType, null);
68         job.setStatus(jobStatus);
69         job.setUuid(UUID.randomUUID());
70         job.setUserId(userId);
71         return job;
72     }
73
74 }