00eff8f0c923d18426fef714e85f9b3f91b143d3
[so.git] / mso-catalog-db / src / main / java / org / onap / so / db / catalog / beans / ActivitySpec.java
1 package org.onap.so.db.catalog.beans;
2
3 import java.io.Serializable;
4 import java.util.ArrayList;
5 import java.util.Date;
6 import java.util.List;
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.JoinColumn;
14 import javax.persistence.Lob;
15 import javax.persistence.ManyToOne;
16 import javax.persistence.OneToMany;
17 import javax.persistence.PrePersist;
18 import javax.persistence.Table;
19 import javax.persistence.Temporal;
20 import javax.persistence.TemporalType;
21 import org.apache.commons.lang3.builder.EqualsBuilder;
22 import org.apache.commons.lang3.builder.HashCodeBuilder;
23 import org.apache.commons.lang3.builder.ToStringBuilder;
24 import com.openpojo.business.annotation.BusinessKey;
25 import org.hibernate.annotations.NotFound;
26 import org.hibernate.annotations.NotFoundAction;
27 import uk.co.blackpepper.bowman.annotation.LinkedResource;
28
29 @Entity
30 @Table(name = "ACTIVITY_SPEC")
31 public class ActivitySpec implements Serializable {
32
33     private static final long serialVersionUID = 6902290480087262973L;
34
35     @Id
36     @Column(name = "ID", nullable = false, updatable = false)
37     @GeneratedValue(strategy = GenerationType.IDENTITY)
38     private Integer ID;
39
40     @BusinessKey
41     @Column(name = "NAME")
42     private String name;
43
44     @Column(name = "DESCRIPTION")
45     private String description;
46
47     @BusinessKey
48     @Column(name = "VERSION")
49     private Double version;
50
51     @Column(name = "CREATION_TIMESTAMP", updatable = false)
52     @Temporal(TemporalType.TIMESTAMP)
53     private Date created;
54
55     @OneToMany(fetch = FetchType.LAZY, mappedBy = "activitySpec")
56     private List<WorkflowActivitySpecSequence> workflowActivitySpecSequence;
57
58     @OneToMany(fetch = FetchType.LAZY, mappedBy = "activitySpec")
59     private List<ActivitySpecActivitySpecCategories> activitySpecActivitySpecCategories;
60
61     @OneToMany(fetch = FetchType.LAZY, mappedBy = "activitySpec")
62     private List<ActivitySpecUserParameters> activitySpecUserParameters;
63
64     @OneToMany(fetch = FetchType.LAZY, mappedBy = "activitySpec")
65     private List<ActivitySpecActivitySpecParameters> activitySpecActivitySpecParameters;
66
67     @PrePersist
68     protected void onCreate() {
69         this.created = new Date();
70     }
71
72     public Integer getID() {
73         return ID;
74     }
75
76     public String getName() {
77         return name;
78     }
79
80     public void setName(String name) {
81         this.name = name;
82     }
83
84     public String getDescription() {
85         return description;
86     }
87
88     public void setDescription(String description) {
89         this.description = description;
90     }
91
92
93     public Double getVersion() {
94         return version;
95     }
96
97     public void setVersion(Double version) {
98         this.version = version;
99     }
100
101     public Date getCreated() {
102         return created;
103     }
104
105     public void setCreated(Date created) {
106         this.created = created;
107     }
108
109     @LinkedResource
110     public List<WorkflowActivitySpecSequence> getWorkflowActivitySpecSequence() {
111         return workflowActivitySpecSequence;
112     }
113
114     public void setWorkflowActivitySpecSequence(List<WorkflowActivitySpecSequence> workflowActivitySpecSequence) {
115         this.workflowActivitySpecSequence = workflowActivitySpecSequence;
116     }
117
118     @LinkedResource
119     public List<ActivitySpecUserParameters> getActivitySpecUserParameters() {
120         return activitySpecUserParameters;
121     }
122
123     public void setActivitySpecUserParameters(List<ActivitySpecUserParameters> activitySpecUserParameters) {
124         this.activitySpecUserParameters = activitySpecUserParameters;
125     }
126
127     @LinkedResource
128     public List<ActivitySpecActivitySpecCategories> getActivitySpecActivitySpecCategories() {
129         return activitySpecActivitySpecCategories;
130     }
131
132     public void setActivitySpecActivitySpecCategories(
133             List<ActivitySpecActivitySpecCategories> activitySpecActivitySpecCategories) {
134         this.activitySpecActivitySpecCategories = activitySpecActivitySpecCategories;
135     }
136
137     @LinkedResource
138     public List<ActivitySpecActivitySpecParameters> getActivitySpecActivitySpecParameters() {
139         return activitySpecActivitySpecParameters;
140     }
141
142     public void setActivitySpecActivitySpecParameters(
143             List<ActivitySpecActivitySpecParameters> activitySpecActivitySpecParameters) {
144         this.activitySpecActivitySpecParameters = activitySpecActivitySpecParameters;
145     }
146
147
148
149     @Override
150     public String toString() {
151         return new ToStringBuilder(this).append("name", name).append("description", description)
152                 .append("version", version).append("created", created)
153                 .append("workflowActivitySpecSequence", workflowActivitySpecSequence)
154                 .append("activitySpecActivitySpecCategories", activitySpecActivitySpecCategories).toString();
155     }
156
157     @Override
158     public boolean equals(final Object other) {
159         if (!(other instanceof ActivitySpec)) {
160             return false;
161         }
162         ActivitySpec castOther = (ActivitySpec) other;
163         return new EqualsBuilder().append(name, castOther.name).append(version, castOther.version).isEquals();
164     }
165
166     @Override
167     public int hashCode() {
168         return new HashCodeBuilder().append(name).append(version).toHashCode();
169     }
170 }