d1e60a0f76185efb5e1fda7c1760a8b8c9671c77
[so.git] / mso-catalog-db / src / main / java / org / onap / so / db / catalog / beans / Workflow.java
1 package org.onap.so.db.catalog.beans;
2
3 import java.io.Serializable;
4 import java.util.Date;
5 import java.util.List;
6 import javax.persistence.Column;
7 import javax.persistence.Entity;
8 import javax.persistence.FetchType;
9 import javax.persistence.GeneratedValue;
10 import javax.persistence.GenerationType;
11 import javax.persistence.Id;
12 import javax.persistence.Lob;
13 import javax.persistence.OneToMany;
14 import javax.persistence.PrePersist;
15 import javax.persistence.Table;
16 import javax.persistence.Temporal;
17 import javax.persistence.TemporalType;
18 import org.apache.commons.lang3.builder.EqualsBuilder;
19 import org.apache.commons.lang3.builder.HashCodeBuilder;
20 import org.apache.commons.lang3.builder.ToStringBuilder;
21 import uk.co.blackpepper.bowman.annotation.LinkedResource;
22
23 @Entity
24 @Table(name = "workflow")
25 public class Workflow implements Serializable {
26
27     private static final long serialVersionUID = 1485794141983033264L;
28
29     @Id
30     @Column(name = "ID", nullable = false, updatable = false)
31     @GeneratedValue(strategy = GenerationType.IDENTITY)
32     private Integer ID;
33
34     @Column(name = "ARTIFACT_UUID")
35     private String artifactUUID;
36
37     @Column(name = "ARTIFACT_NAME")
38     private String artifactName;
39
40     @Column(name = "NAME")
41     private String name;
42
43     @Column(name = "OPERATION_NAME")
44     private String operationName;
45
46     @Column(name = "VERSION")
47     private Double version;
48
49     @Column(name = "DESCRIPTION")
50     private String description;
51
52     @Lob
53     @Column(name = "BODY", columnDefinition = "LONGTEXT")
54     private String body = null;
55
56     @Column(name = "RESOURCE_TARGET")
57     private String resourceTarget;
58
59     @Column(name = "SOURCE")
60     private String source;
61
62     @Column(name = "TIMEOUT_MINUTES")
63     private Integer timeoutMinutes;
64
65     @Column(name = "ARTIFACT_CHECKSUM")
66     private String artifactChecksum;
67
68     @Column(name = "CREATION_TIMESTAMP", updatable = false)
69     @Temporal(TemporalType.TIMESTAMP)
70     private Date created;
71
72     @OneToMany(fetch = FetchType.LAZY, mappedBy = "workflow")
73     private List<VnfResourceWorkflow> vnfResourceWorkflow;
74
75     @OneToMany(fetch = FetchType.LAZY, mappedBy = "workflow")
76     private List<WorkflowActivitySpecSequence> workflowActivitySpecSequence;
77
78     @PrePersist
79     protected void onCreate() {
80         this.created = new Date();
81     }
82
83     public Integer getID() {
84         return ID;
85     }
86
87     public String getArtifactUUID() {
88         return artifactUUID;
89     }
90
91     public void setArtifactUUID(String artifactUUID) {
92         this.artifactUUID = artifactUUID;
93     }
94
95     public String getArtifactName() {
96         return artifactName;
97     }
98
99     public void setArtifactName(String artifactName) {
100         this.artifactName = artifactName;
101     }
102
103     public String getName() {
104         return name;
105     }
106
107     public void setName(String name) {
108         this.name = name;
109     }
110
111     public String getOperationName() {
112         return operationName;
113     }
114
115     public void setOperationName(String operationName) {
116         this.operationName = operationName;
117     }
118
119     public Double getVersion() {
120         return version;
121     }
122
123     public void setVersion(Double version) {
124         this.version = version;
125     }
126
127     public String getDescription() {
128         return description;
129     }
130
131     public void setDescription(String description) {
132         this.description = description;
133     }
134
135     public String getBody() {
136         return body;
137     }
138
139     public void setBody(String body) {
140         this.body = body;
141     }
142
143     public String getResourceTarget() {
144         return resourceTarget;
145     }
146
147     public void setResourceTarget(String resourceTarget) {
148         this.resourceTarget = resourceTarget;
149     }
150
151     public String getSource() {
152         return source;
153     }
154
155     public void setSource(String source) {
156         this.source = source;
157     }
158
159     public Integer getTimeoutMinutes() {
160         return timeoutMinutes;
161     }
162
163     public void setTimeoutMinutes(Integer timeoutMinutes) {
164         this.timeoutMinutes = timeoutMinutes;
165     }
166
167     public String getArtifactChecksum() {
168         return artifactChecksum;
169     }
170
171     public void setArtifactChecksum(String artifactChecksum) {
172         this.artifactChecksum = artifactChecksum;
173     }
174
175     public Date getCreated() {
176         return created;
177     }
178
179     public void setCreated(Date created) {
180         this.created = created;
181     }
182
183     @LinkedResource
184     public List<VnfResourceWorkflow> getVnfResourceWorkflow() {
185         return vnfResourceWorkflow;
186     }
187
188     public void setVnfResourceWorkflow(List<VnfResourceWorkflow> vnfResourceWorkflow) {
189         this.vnfResourceWorkflow = vnfResourceWorkflow;
190     }
191
192     @LinkedResource
193     public List<WorkflowActivitySpecSequence> getWorkflowActivitySpecSequence() {
194         return workflowActivitySpecSequence;
195     }
196
197     public void setWorkflowActivitySpecSequence(List<WorkflowActivitySpecSequence> workflowActivitySpecSequence) {
198         this.workflowActivitySpecSequence = workflowActivitySpecSequence;
199     }
200
201     @Override
202     public String toString() {
203         return new ToStringBuilder(this).append("ID", ID).append("artifactUUID", artifactUUID)
204                 .append("artifactName", artifactName).append("name", name).append("operationName", operationName)
205                 .append("version", version).append("description", description).append("body", body)
206                 .append("resourceTarget", resourceTarget).append("source", source)
207                 .append("timeoutMinutes", timeoutMinutes).append("artifactChecksum", artifactChecksum)
208                 .append("created", created).append("vnfResourceWorkflow", vnfResourceWorkflow)
209                 .append("WorkflowActivitySpecSequence", workflowActivitySpecSequence).toString();
210     }
211
212     @Override
213     public boolean equals(final Object other) {
214         if (!(other instanceof Workflow)) {
215             return false;
216         }
217         Workflow castOther = (Workflow) other;
218         return new EqualsBuilder().append(ID, castOther.ID).isEquals();
219     }
220
221     @Override
222     public int hashCode() {
223         return new HashCodeBuilder().append(ID).toHashCode();
224     }
225 }