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;
27 import org.onap.aai.domain.yang.Pnf;
28 import org.onap.policy.sdc.Resource;
29 import org.onap.policy.sdc.Service;
31 public class ControlLoop implements Serializable {
32 private static final long serialVersionUID = 1L;
34 private static final String COMPILER_VERSION = "2.0.0";
36 private String controlLoopName;
37 private String version = COMPILER_VERSION;
38 private List<Service> services;
39 private List<Resource> resources;
41 private String triggerPolicy = FinalResult.FINAL_OPENLOOP.toString();
42 private Integer timeout;
43 private Boolean abatement = false;
45 public ControlLoop() {
52 * @param controlLoop copy object
54 public ControlLoop(ControlLoop controlLoop) {
55 this.controlLoopName = controlLoop.controlLoopName;
56 this.services = new LinkedList<>();
57 if (controlLoop.services != null) {
58 for (Service service : controlLoop.services) {
59 this.services.add(service);
62 this.resources = new LinkedList<>();
63 if (controlLoop.resources != null) {
64 for (Resource resource : controlLoop.resources) {
65 this.resources.add(resource);
68 this.triggerPolicy = controlLoop.triggerPolicy;
69 this.timeout = controlLoop.timeout;
70 this.abatement = controlLoop.abatement;
73 public static String getCompilerVersion() {
74 return ControlLoop.COMPILER_VERSION;
77 public String getControlLoopName() {
78 return controlLoopName;
81 public void setControlLoopName(String controlLoopName) {
82 this.controlLoopName = controlLoopName;
85 public List<Service> getServices() {
89 public void setServices(List<Service> services) {
90 this.services = services;
93 public List<Resource> getResources() {
97 public void setResources(List<Resource> resources) {
98 this.resources = resources;
101 public String getTrigger_policy() {
102 return triggerPolicy;
105 public void setTrigger_policy(String triggerPolicy) {
106 this.triggerPolicy = triggerPolicy;
109 public Integer getTimeout() {
113 public void setTimeout(Integer timeout) {
114 this.timeout = timeout;
117 public Boolean getAbatement() {
121 public void setAbatement(Boolean abatement) {
122 this.abatement = abatement;
125 public String getVersion() {
129 public void setVersion(String version) {
130 this.version = version;
133 public Pnf getPnf() {
137 public void setPnf(Pnf pnf) {
142 public String toString() {
143 return "ControlLoop [controlLoopName=" + controlLoopName + ", version=" + version + ", services=" + services
144 + ", resources=" + resources + ", trigger_policy=" + triggerPolicy + ", timeout=" + timeout
145 + ", abatement=" + abatement + "]";
149 public int hashCode() {
150 final int prime = 31;
152 result = prime * result + ((controlLoopName == null) ? 0 : controlLoopName.hashCode());
153 result = prime * result + ((resources == null) ? 0 : resources.hashCode());
154 result = prime * result + ((services == null) ? 0 : services.hashCode());
155 result = prime * result + ((timeout == null) ? 0 : timeout.hashCode());
156 result = prime * result + ((triggerPolicy == null) ? 0 : triggerPolicy.hashCode());
157 result = prime * result + ((version == null) ? 0 : version.hashCode());
158 result = prime * result + ((abatement == null) ? 0 : abatement.hashCode());
163 public boolean equals(Object obj) {
170 if (getClass() != obj.getClass()) {
173 ControlLoop other = (ControlLoop) obj;
175 boolean isEq = equalsMayBeNull(controlLoopName, other.controlLoopName)
176 && equalsMayBeNull(resources, other.resources) && equalsMayBeNull(services, other.services);
177 isEq = isEq && equalsMayBeNull(timeout, other.timeout) && equalsMayBeNull(triggerPolicy, other.triggerPolicy)
178 && equalsMayBeNull(version, other.version);
179 return (isEq && equalsMayBeNull(abatement, other.abatement));
182 private boolean equalsMayBeNull(final Object obj1, final Object obj2) {
186 return obj1.equals(obj2);