2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.onap.so.db.catalog.beans;
23 import java.io.Serializable;
24 import java.util.ArrayList;
25 import java.util.Date;
26 import java.util.List;
29 import javax.persistence.CascadeType;
30 import javax.persistence.Column;
31 import javax.persistence.Entity;
32 import javax.persistence.FetchType;
33 import javax.persistence.Id;
34 import javax.persistence.JoinColumn;
35 import javax.persistence.JoinTable;
36 import javax.persistence.ManyToOne;
37 import javax.persistence.MapKey;
38 import javax.persistence.OneToMany;
39 import javax.persistence.PrePersist;
40 import javax.persistence.Table;
41 import javax.persistence.Temporal;
42 import javax.persistence.TemporalType;
43 import org.apache.commons.lang3.builder.EqualsBuilder;
44 import org.apache.commons.lang3.builder.HashCodeBuilder;
45 import org.apache.commons.lang3.builder.ToStringBuilder;
46 import com.fasterxml.jackson.annotation.JsonFormat;
47 import com.openpojo.business.annotation.BusinessKey;
48 import uk.co.blackpepper.bowman.annotation.LinkedResource;
51 @Table(name = "service")
52 public class Service implements Serializable {
54 private static final long serialVersionUID = 768026109321305392L;
56 @Column(name = "MODEL_NAME")
57 private String modelName;
59 @Column(name = "DESCRIPTION", length = 1200)
60 private String description;
64 @Column(name = "MODEL_UUID")
65 private String modelUUID;
67 @Column(name = "MODEL_INVARIANT_UUID")
68 private String modelInvariantUUID;
70 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
71 @Column(name = "CREATION_TIMESTAMP", updatable = false)
72 @Temporal(TemporalType.TIMESTAMP)
75 @Column(name = "MODEL_VERSION")
76 private String modelVersion;
78 @Column(name = "SERVICE_TYPE")
79 private String serviceType;
81 @Column(name = "SERVICE_ROLE")
82 private String serviceRole;
84 @Column(name = "ENVIRONMENT_CONTEXT")
85 private String environmentContext;
87 @Column(name = "WORKLOAD_CONTEXT")
88 private String workloadContext;
90 @Column(name = "SERVICE_CATEGORY")
91 private String category;
93 @Column(name = "RESOURCE_ORDER")
94 private String resourceOrder;
96 @OneToMany(cascade = CascadeType.ALL)
97 @JoinTable(name = "network_resource_customization_to_service",
98 joinColumns = @JoinColumn(name = "SERVICE_MODEL_UUID"),
99 inverseJoinColumns = @JoinColumn(name = "RESOURCE_MODEL_CUSTOMIZATION_UUID"))
100 private List<NetworkResourceCustomization> networkCustomizations;
102 @OneToMany(cascade = CascadeType.ALL, mappedBy = "service")
103 private List<VnfResourceCustomization> vnfCustomizations;
105 @OneToMany(cascade = CascadeType.ALL)
106 @JoinTable(name = "allotted_resource_customization_to_service",
107 joinColumns = @JoinColumn(name = "SERVICE_MODEL_UUID"),
108 inverseJoinColumns = @JoinColumn(name = "RESOURCE_MODEL_CUSTOMIZATION_UUID"))
109 private List<AllottedResourceCustomization> allottedCustomizations;
111 @OneToMany(cascade = CascadeType.ALL)
112 @JoinTable(name = "collection_resource_customization_to_service",
113 joinColumns = @JoinColumn(name = "SERVICE_MODEL_UUID"),
114 inverseJoinColumns = @JoinColumn(name = "RESOURCE_MODEL_CUSTOMIZATION_UUID"))
115 private List<CollectionResourceCustomization> collectionResourceCustomizations;
117 @OneToMany(cascade = CascadeType.ALL)
118 @JoinTable(name = "service_proxy_customization_to_service", joinColumns = @JoinColumn(name = "SERVICE_MODEL_UUID"),
119 inverseJoinColumns = @JoinColumn(name = "RESOURCE_MODEL_CUSTOMIZATION_UUID"))
120 private List<ServiceProxyResourceCustomization> serviceProxyCustomizations;
122 @OneToMany(cascade = CascadeType.ALL, mappedBy = "service")
123 private List<ConfigurationResourceCustomization> configurationCustomizations;
125 @OneToMany(cascade = CascadeType.ALL)
126 @JoinTable(name = "pnf_resource_customization_to_service", joinColumns = @JoinColumn(name = "SERVICE_MODEL_UUID"),
127 inverseJoinColumns = @JoinColumn(name = "RESOURCE_MODEL_CUSTOMIZATION_UUID"))
128 private List<PnfResourceCustomization> pnfCustomizations;
130 @OneToMany(cascade = CascadeType.ALL, mappedBy = "service")
131 @MapKey(name = "action")
132 private Map<String, ServiceRecipe> recipes;
134 @ManyToOne(cascade = CascadeType.ALL)
135 @JoinColumn(name = "TOSCA_CSAR_ARTIFACT_UUID")
136 private ToscaCsar csar;
139 public String toString() {
140 return new ToStringBuilder(this).append("modelName", modelName).append("description", description)
141 .append("modelUUID", modelUUID).append("modelInvariantUUID", modelInvariantUUID)
142 .append("created", created).append("modelVersion", modelVersion).append("serviceType", serviceType)
143 .append("serviceRole", serviceRole).append("environmentContext", environmentContext)
144 .append("workloadContext", workloadContext).append("category", category)
145 .append("networkCustomizations", networkCustomizations).append("vnfCustomizations", vnfCustomizations)
146 .append("allottedCustomizations", allottedCustomizations)
147 .append("collectionResourceCustomizations", collectionResourceCustomizations)
148 .append("serviceProxyCustomizations", serviceProxyCustomizations)
149 .append("configurationCustomizations", configurationCustomizations)
150 .append("pnfCustomizations", pnfCustomizations).append("recipes", recipes).append("csar", csar)
155 protected void onCreate() {
156 this.created = new Date();
160 public boolean equals(final Object other) {
161 if (!(other instanceof Service)) {
164 Service castOther = (Service) other;
165 return new EqualsBuilder().append(modelUUID, castOther.modelUUID).isEquals();
169 public int hashCode() {
170 return new HashCodeBuilder().append(modelUUID).toHashCode();
174 public List<ServiceProxyResourceCustomization> getServiceProxyCustomizations() {
175 return serviceProxyCustomizations;
178 public void setServiceProxyCustomizations(List<ServiceProxyResourceCustomization> serviceProxyCustomizations) {
179 this.serviceProxyCustomizations = serviceProxyCustomizations;
183 public List<NetworkResourceCustomization> getNetworkCustomizations() {
184 if (networkCustomizations == null) {
185 networkCustomizations = new ArrayList<>();
187 return networkCustomizations;
190 public void setNetworkCustomizations(List<NetworkResourceCustomization> networkCustomizations) {
191 this.networkCustomizations = networkCustomizations;
195 public List<VnfResourceCustomization> getVnfCustomizations() {
196 if (vnfCustomizations == null) {
197 vnfCustomizations = new ArrayList<>();
199 return vnfCustomizations;
202 public void setVnfCustomizations(List<VnfResourceCustomization> vnfCustomizations) {
203 this.vnfCustomizations = vnfCustomizations;
207 public List<AllottedResourceCustomization> getAllottedCustomizations() {
208 if (allottedCustomizations == null) {
209 allottedCustomizations = new ArrayList<>();
211 return allottedCustomizations;
214 public void setAllottedCustomizations(List<AllottedResourceCustomization> allotedCustomizations) {
215 this.allottedCustomizations = allotedCustomizations;
219 public List<CollectionResourceCustomization> getCollectionResourceCustomizations() {
220 if (collectionResourceCustomizations == null) {
221 collectionResourceCustomizations = new ArrayList<>();
223 return collectionResourceCustomizations;
226 public void setCollectionResourceCustomizations(
227 List<CollectionResourceCustomization> collectionResourceCustomizations) {
228 this.collectionResourceCustomizations = collectionResourceCustomizations;
232 public List<ConfigurationResourceCustomization> getConfigurationCustomizations() {
233 if (configurationCustomizations == null) {
234 configurationCustomizations = new ArrayList<>();
236 return configurationCustomizations;
239 public void setConfigurationCustomizations(List<ConfigurationResourceCustomization> configurationCustomizations) {
240 this.configurationCustomizations = configurationCustomizations;
244 public List<PnfResourceCustomization> getPnfCustomizations() {
245 if (pnfCustomizations == null) {
246 pnfCustomizations = new ArrayList<>();
248 return pnfCustomizations;
251 public void setPnfCustomizations(List<PnfResourceCustomization> pnfCustomizations) {
252 this.pnfCustomizations = pnfCustomizations;
255 public String getModelName() {
259 public void setModelName(String modelName) {
260 this.modelName = modelName;
263 public String getDescription() {
267 public void setDescription(String description) {
268 this.description = description;
272 public Map<String, ServiceRecipe> getRecipes() {
276 public void setRecipes(Map<String, ServiceRecipe> recipes) {
277 this.recipes = recipes;
280 public Date getCreated() {
284 public String getModelUUID() {
288 public void setModelUUID(String modelUUID) {
289 this.modelUUID = modelUUID;
292 public String getModelInvariantUUID() {
293 return modelInvariantUUID;
296 public void setModelInvariantUUID(String modelInvariantUUID) {
297 this.modelInvariantUUID = modelInvariantUUID;
300 public String getModelVersion() {
304 public void setModelVersion(String modelVersion) {
305 this.modelVersion = modelVersion;
309 * @return Returns the category.
311 public String getCategory() {
316 * @param category The category to set.
318 public void setCategory(String category) {
319 this.category = category;
322 public String getServiceType() {
326 public void setServiceType(String serviceType) {
327 this.serviceType = serviceType;
330 public String getServiceRole() {
334 public void setServiceRole(String serviceRole) {
335 this.serviceRole = serviceRole;
338 public String getEnvironmentContext() {
339 return this.environmentContext;
342 public void setEnvironmentContext(String environmentContext) {
343 this.environmentContext = environmentContext;
347 public ToscaCsar getCsar() {
351 public void setCsar(ToscaCsar csar) {
355 public String getWorkloadContext() {
356 return this.workloadContext;
359 public void setWorkloadContext(String workloadContext) {
360 this.workloadContext = workloadContext;
363 public String getResourceOrder() {
364 return resourceOrder;
367 public void setResourceOrder(String resourceOrder) {
368 this.resourceOrder = resourceOrder;