2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 AT&T Intellectual Property. All rights
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END============================================
20 * ===================================================================
24 package org.onap.clamp.loop.template;
26 import com.google.gson.annotations.Expose;
28 import java.io.Serializable;
30 import javax.persistence.CascadeType;
31 import javax.persistence.Column;
32 import javax.persistence.EmbeddedId;
33 import javax.persistence.Entity;
34 import javax.persistence.FetchType;
35 import javax.persistence.JoinColumn;
36 import javax.persistence.ManyToOne;
37 import javax.persistence.MapsId;
38 import javax.persistence.Table;
41 @Table(name = "templates_microservicemodels")
42 public class TemplateMicroServiceModel implements Serializable, Comparable<TemplateMicroServiceModel> {
47 private static final long serialVersionUID = 5924989899078094245L;
50 private TemplateMicroServiceModelId templateMicroServiceModelId;
52 @ManyToOne(fetch = FetchType.LAZY)
53 @MapsId("loopTemplateName")
54 @JoinColumn(name = "loop_template_name")
55 private LoopTemplate loopTemplate;
58 @ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH })
59 @MapsId("microServiceModelName")
60 @JoinColumn(name = "micro_service_model_name")
61 private MicroServiceModel microServiceModel;
64 @Column(nullable = false, name = "flow_order")
65 private Integer flowOrder;
68 * Default constructor for serialization.
70 public TemplateMicroServiceModel() {
77 * @param loopTemplate The loop template object
78 * @param microServiceModel The microServiceModel object
79 * @param flowOrder The position of the micro service in the flow
81 public TemplateMicroServiceModel(LoopTemplate loopTemplate, MicroServiceModel microServiceModel,
83 this.loopTemplate = loopTemplate;
84 this.microServiceModel = microServiceModel;
85 this.flowOrder = flowOrder;
86 this.templateMicroServiceModelId = new TemplateMicroServiceModelId(loopTemplate.getName(),
87 microServiceModel.getName());
91 * loopTemplate getter.
93 * @return the loopTemplate
95 public LoopTemplate getLoopTemplate() {
100 * loopTemplate setter.
102 * @param loopTemplate the loopTemplate to set
104 public void setLoopTemplate(LoopTemplate loopTemplate) {
105 this.loopTemplate = loopTemplate;
109 * microServiceModel getter.
111 * @return the microServiceModel
113 public MicroServiceModel getMicroServiceModel() {
114 return microServiceModel;
118 * microServiceModel setter.
120 * @param microServiceModel the microServiceModel to set
122 public void setMicroServiceModel(MicroServiceModel microServiceModel) {
123 this.microServiceModel = microServiceModel;
129 * @return the flowOrder
131 public Integer getFlowOrder() {
138 * @param flowOrder the flowOrder to set
140 public void setFlowOrder(Integer flowOrder) {
141 this.flowOrder = flowOrder;
145 public int compareTo(TemplateMicroServiceModel arg0) {
146 // Reverse it, so that by default we have the latest
147 if (getFlowOrder() == null) {
150 if (arg0.getFlowOrder() == null) {
153 return arg0.getFlowOrder().compareTo(this.getFlowOrder());
157 public int hashCode() {
158 final int prime = 31;
160 result = prime * result + ((loopTemplate == null) ? 0 : loopTemplate.hashCode());
161 result = prime * result + ((microServiceModel == null) ? 0 : microServiceModel.hashCode());
166 public boolean equals(Object obj) {
173 if (getClass() != obj.getClass()) {
176 TemplateMicroServiceModel other = (TemplateMicroServiceModel) obj;
177 if (loopTemplate == null) {
178 if (other.loopTemplate != null) {
181 } else if (!loopTemplate.equals(other.loopTemplate)) {
184 if (microServiceModel == null) {
185 if (other.microServiceModel != null) {
188 } else if (!microServiceModel.equals(other.microServiceModel)) {