2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
6 * Modifications Copyright (C) 2019 Nordix Foundation.
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=========================================================
22 package org.onap.policy.controlloop.policy;
24 import java.io.Serializable;
25 import java.util.LinkedList;
26 import java.util.List;
28 import org.onap.aai.domain.yang.Pnf;
29 import org.onap.policy.sdc.Resource;
30 import org.onap.policy.sdc.Service;
32 public class ControlLoop implements Serializable {
33 private static final long serialVersionUID = 1L;
35 private static final String COMPILER_VERSION = "2.0.0";
37 private String controlLoopName;
38 private String version = COMPILER_VERSION;
39 private List<Service> services;
40 private List<Resource> resources;
42 private String triggerPolicy = FinalResult.FINAL_OPENLOOP.toString();
43 private Integer timeout;
44 private Boolean abatement = false;
46 public ControlLoop() {
53 * @param controlLoop copy object
55 public ControlLoop(ControlLoop controlLoop) {
56 this.controlLoopName = controlLoop.controlLoopName;
57 this.services = new LinkedList<>();
58 if (controlLoop.services != null) {
59 for (Service service : controlLoop.services) {
60 this.services.add(service);
63 this.resources = new LinkedList<>();
64 if (controlLoop.resources != null) {
65 for (Resource resource : controlLoop.resources) {
66 this.resources.add(resource);
69 this.triggerPolicy = controlLoop.triggerPolicy;
70 this.timeout = controlLoop.timeout;
71 this.abatement = controlLoop.abatement;
74 public static String getCompilerVersion() {
75 return ControlLoop.COMPILER_VERSION;
78 public String getControlLoopName() {
79 return controlLoopName;
82 public void setControlLoopName(String controlLoopName) {
83 this.controlLoopName = controlLoopName;
86 public List<Service> getServices() {
90 public void setServices(List<Service> services) {
91 this.services = services;
94 public List<Resource> getResources() {
98 public void setResources(List<Resource> resources) {
99 this.resources = resources;
102 public String getTrigger_policy() {
103 return triggerPolicy;
106 public void setTrigger_policy(String triggerPolicy) {
107 this.triggerPolicy = triggerPolicy;
110 public Integer getTimeout() {
114 public void setTimeout(Integer timeout) {
115 this.timeout = timeout;
118 public Boolean getAbatement() {
122 public void setAbatement(Boolean abatement) {
123 this.abatement = abatement;
126 public String getVersion() {
130 public void setVersion(String version) {
131 this.version = version;
134 public Pnf getPnf() {
138 public void setPnf(Pnf pnf) {
143 public String toString() {
144 return "ControlLoop [controlLoopName=" + controlLoopName + ", version=" + version + ", services=" + services
145 + ", resources=" + resources + ", trigger_policy=" + triggerPolicy + ", timeout=" + timeout
146 + ", abatement=" + abatement + "]";
150 public int hashCode() {
151 final int prime = 31;
153 result = prime * result + ((controlLoopName == null) ? 0 : controlLoopName.hashCode());
154 result = prime * result + ((resources == null) ? 0 : resources.hashCode());
155 result = prime * result + ((services == null) ? 0 : services.hashCode());
156 result = prime * result + ((timeout == null) ? 0 : timeout.hashCode());
157 result = prime * result + ((triggerPolicy == null) ? 0 : triggerPolicy.hashCode());
158 result = prime * result + ((version == null) ? 0 : version.hashCode());
159 result = prime * result + ((abatement == null) ? 0 : abatement.hashCode());
164 public boolean equals(Object obj) {
171 if (getClass() != obj.getClass()) {
174 ControlLoop other = (ControlLoop) obj;
176 boolean isEq = equalsMayBeNull(controlLoopName, other.controlLoopName)
177 && equalsMayBeNull(resources, other.resources) && equalsMayBeNull(services, other.services);
178 isEq = isEq && equalsMayBeNull(timeout, other.timeout) && equalsMayBeNull(triggerPolicy, other.triggerPolicy)
179 && equalsMayBeNull(version, other.version);
180 return (isEq && equalsMayBeNull(abatement, other.abatement));
183 private boolean equalsMayBeNull(final Object obj1, final Object obj2) {
187 return obj1.equals(obj2);