Merge from ECOMP's repository
[vid.git] / vid-app-common / src / main / java / org / onap / vid / job / Job.java
1 package org.onap.vid.job;
2
3 import com.fasterxml.jackson.annotation.JsonIgnore;
4 import org.onap.vid.job.impl.JobSharedData;
5
6 import java.util.Map;
7 import java.util.UUID;
8
9 public interface Job {
10
11     UUID getUuid();
12
13     void setUuid(UUID uuid);
14
15     JobStatus getStatus();
16
17     void setStatus(JobStatus status);
18
19     @JsonIgnore
20     Map<String, Object> getData();
21
22     JobSharedData getSharedData();
23
24     void setTypeAndData(JobType jobType, Map<String, Object> data);
25
26     UUID getTemplateId();
27
28     void setTemplateId(UUID templateId);
29
30     Integer getIndexInBulk();
31
32     void setIndexInBulk(Integer indexInBulk);
33
34     JobType getType();
35
36     enum JobStatus {
37         COMPLETED(true, false),
38         FAILED(true, true),
39         IN_PROGRESS(false),
40         RESOURCE_IN_PROGRESS(false),
41         PAUSE(false),
42         PENDING(false),
43         STOPPED(true, true),
44         COMPLETED_WITH_ERRORS(true, true),
45         COMPLETED_WITH_NO_ACTION(true, false),
46         CREATING(false);
47
48         private final Boolean finalStatus;
49         public Boolean isFinal(){return finalStatus;}
50
51         private final Boolean failure;
52         public Boolean isFailure() {
53             return failure;
54         }
55
56         JobStatus(Boolean finalStatus)
57         {
58             this(finalStatus, false);
59         }
60
61         JobStatus(Boolean finalStatus, boolean failure) {
62             this.finalStatus = finalStatus;
63             this.failure = failure;
64         }
65
66     }
67 }