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 = "looptemplates_to_loopelementmodels")
42 public class LoopTemplateLoopElementModel implements Serializable, Comparable<LoopTemplateLoopElementModel> {
47 private static final long serialVersionUID = 5924989899078094245L;
50 private LoopTemplateLoopElementModelId loopTemplateLoopElementModelId;
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("loopElementModelName")
60 @JoinColumn(name = "loop_element_model_name")
61 private LoopElementModel loopElementModel;
64 @Column(nullable = false, name = "flow_order")
65 private Integer flowOrder;
68 * Default constructor for serialization.
70 public LoopTemplateLoopElementModel() {
77 * @param loopTemplate The loop template object
78 * @param loopElementModel The loopElementModel object
79 * @param flowOrder The position of the micro service in the flow
81 public LoopTemplateLoopElementModel(LoopTemplate loopTemplate, LoopElementModel loopElementModel,
83 this.loopTemplate = loopTemplate;
84 this.loopElementModel = loopElementModel;
85 this.flowOrder = flowOrder;
86 this.loopTemplateLoopElementModelId = new LoopTemplateLoopElementModelId(loopTemplate.getName(),
87 loopElementModel.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 * loopElementModel getter.
111 * @return the loopElementModel
113 public LoopElementModel getLoopElementModel() {
114 return loopElementModel;
118 * loopElementModel setter.
120 * @param loopElementModel the loopElementModel to set
122 public void setLoopElementModel(LoopElementModel loopElementModel) {
123 this.loopElementModel = loopElementModel;
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(LoopTemplateLoopElementModel 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 + ((loopElementModel == null) ? 0 : loopElementModel.hashCode());
166 public boolean equals(Object obj) {
173 if (getClass() != obj.getClass()) {
176 LoopTemplateLoopElementModel other = (LoopTemplateLoopElementModel) obj;
177 if (loopTemplate == null) {
178 if (other.loopTemplate != null) {
181 } else if (!loopTemplate.equals(other.loopTemplate)) {
184 if (loopElementModel == null) {
185 if (other.loopElementModel != null) {
188 } else if (!loopElementModel.equals(other.loopElementModel)) {