diff options
author | Jim Hahn <jrh3@att.com> | 2021-02-17 14:27:03 -0500 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2021-02-17 14:29:29 -0500 |
commit | 1f7ddcb95f4de6fc7a05d7a74d95a5f6bd41f9c5 (patch) | |
tree | 6b698b16df2e5617d5e0e52ecdf0077e7919d3e5 /models-tosca/src/main/java | |
parent | 9f0fbd02f184071c2de30c944bec311741e6180e (diff) |
Remove more duplicate code from models
Addressed sonar "duplicate code" issue by extracting a common
ToscaNameVersion class from the XxxIdentifier classes.
Also removed junit test for class that no longer exists and renamed
another junit to match the renaming of the class being tested.
Issue-ID: POLICY-2905
Change-Id: I4a28cd7de2478f2771a864439c0b440ad8310299
Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'models-tosca/src/main/java')
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; + } +} |