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