diff options
author | Ram Krishna Verma <ram_krishna.verma@bell.ca> | 2021-02-18 16:34:29 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2021-02-18 16:34:29 +0000 |
commit | 7e4f9950ed004042e36e7e1f6f78224d62888e74 (patch) | |
tree | 4f02e0ac17344efb9812d4cde82956a4426eec6d /models-tosca/src/main | |
parent | fefe7e58cdfeab741483bda15ea15ebef5cdd8da (diff) | |
parent | 1f7ddcb95f4de6fc7a05d7a74d95a5f6bd41f9c5 (diff) |
Merge "Remove more duplicate code from models"
Diffstat (limited to 'models-tosca/src/main')
3 files changed, 111 insertions, 85 deletions
diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifier.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifier.java index 4cc8892c2..9033c8fa0 100644 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifier.java +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifier.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Models * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -22,43 +22,33 @@ package org.onap.policy.models.tosca.authorative.concepts; import java.io.Serializable; -import lombok.Data; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.NonNull; -import org.apache.commons.lang3.ObjectUtils; import org.onap.policy.common.parameters.BeanValidationResult; import org.onap.policy.common.parameters.ValidationResult; -import org.onap.policy.models.base.PfConceptKey; import org.onap.policy.models.base.PfKey; /** * Identifies a concept. Both the name and version must be non-null. */ -@Data +@EqualsAndHashCode(callSuper = true) @NoArgsConstructor -public class ToscaConceptIdentifier implements Serializable, Comparable<ToscaConceptIdentifier> { +public class ToscaConceptIdentifier extends ToscaNameVersion + implements Serializable, Comparable<ToscaConceptIdentifier> { private static final long serialVersionUID = 8010649773816325786L; - @NonNull - private String name; - - @NonNull - private String version; - public ToscaConceptIdentifier(@NonNull String name, @NonNull String version) { - this.name = name; - this.version = version; + super(name, version); } public ToscaConceptIdentifier(@NonNull PfKey key) { - this.name = key.getName(); - this.version = key.getVersion(); + super(key); } public ToscaConceptIdentifier(ToscaConceptIdentifier source) { - this.name = source.name; - this.version = source.version; + super(source); } /** @@ -67,43 +57,16 @@ public class ToscaConceptIdentifier implements Serializable, Comparable<ToscaCon * @return the validation result */ public ValidationResult validatePapRest() { - BeanValidationResult result = new BeanValidationResult("group", this); + BeanValidationResult result = new BeanValidationResult("identifier", this); - result.validateNotNull("name", name); - result.validateNotNull("version", version); + result.validateNotNull("name", getName()); + result.validateNotNull("version", getVersion()); return result; } - /** - * Create a PfConcceptKey from the TOSCA identifier. - * - * @return the key - */ - public PfConceptKey asConceptKey() { - return new PfConceptKey(name, version); - } - @Override public int compareTo(ToscaConceptIdentifier other) { - if (this == other) { - return 0; - } - - if (other == null) { - return 1; - } - - int result = ObjectUtils.compare(getName(), other.getName()); - if (result != 0) { - return result; - } - - return ObjectUtils.compare(getVersion(), other.getVersion()); - } - - @Override - public String toString() { - return this.name + " " + this.version; + return commonCompareTo(other); } } diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifierOptVersion.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifierOptVersion.java index c23c04fe8..62c1ed7ef 100644 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifierOptVersion.java +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifierOptVersion.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Models * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -21,58 +21,34 @@ package org.onap.policy.models.tosca.authorative.concepts; -import lombok.Data; +import java.io.Serializable; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.NonNull; -import org.apache.commons.lang3.ObjectUtils; /** - * Concept identifier with an optional version; only the "name" is required. + * Concept identifier with an optional name and version. */ -@Data +@EqualsAndHashCode(callSuper = true) @NoArgsConstructor -public class ToscaConceptIdentifierOptVersion implements Comparable<ToscaConceptIdentifierOptVersion> { - - @NonNull - private String name; - - private String version; +public class ToscaConceptIdentifierOptVersion extends ToscaNameVersion + implements Serializable, Comparable<ToscaConceptIdentifierOptVersion> { + private static final long serialVersionUID = 8010649773816325786L; public ToscaConceptIdentifierOptVersion(@NonNull String name, String version) { - this.name = name; - this.version = version; + super(name, version); } public ToscaConceptIdentifierOptVersion(ToscaConceptIdentifierOptVersion source) { - this.name = source.name; - this.version = source.version; + super(source); } public ToscaConceptIdentifierOptVersion(ToscaConceptIdentifier source) { - this.name = source.getName(); - this.version = source.getVersion(); + super(source.getName(), source.getVersion()); } @Override public int compareTo(ToscaConceptIdentifierOptVersion other) { - if (this == other) { - return 0; - } - - if (other == null) { - return 1; - } - - int result = ObjectUtils.compare(getName(), other.getName()); - if (result != 0) { - return result; - } - - return ObjectUtils.compare(getVersion(), other.getVersion()); - } - - @Override - public String toString() { - return this.name + " " + this.version; + return commonCompareTo(other); } } diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaNameVersion.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaNameVersion.java new file mode 100644 index 000000000..6c83269f1 --- /dev/null +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaNameVersion.java @@ -0,0 +1,87 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP Policy Models + * ================================================================================ + * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.models.tosca.authorative.concepts; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.NonNull; +import org.apache.commons.lang3.ObjectUtils; +import org.onap.policy.models.base.PfConceptKey; +import org.onap.policy.models.base.PfKey; + +/** + * Concept with an optional name and version. + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ToscaNameVersion { + + private String name; + + private String version; + + public ToscaNameVersion(@NonNull PfKey key) { + this.name = key.getName(); + this.version = key.getVersion(); + } + + public ToscaNameVersion(ToscaNameVersion source) { + this.name = source.name; + this.version = source.version; + } + + /** + * Create a PfConcceptKey from the TOSCA identifier. + * + * @return the key + */ + public PfConceptKey asConceptKey() { + return new PfConceptKey(name, version); + } + + protected int commonCompareTo(ToscaNameVersion other) { + if (this == other) { + return 0; + } + + if (other == null) { + return 1; + } + + if (getClass() != other.getClass()) { + return getClass().getSimpleName().compareTo(other.getClass().getSimpleName()); + } + + int result = ObjectUtils.compare(getName(), other.getName()); + if (result != 0) { + return result; + } + + return ObjectUtils.compare(getVersion(), other.getVersion()); + } + + @Override + public String toString() { + return this.name + " " + this.version; + } +} |