2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2019 Nordix Foundation.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.models.base;
23 import org.apache.commons.lang3.ObjectUtils;
24 import org.onap.policy.common.utils.validation.Version;
27 * An interface that forces a POJO to have getName() and getVersion() methods.
29 * @author Liam Fallon (liam.fallon@est.tech)
31 public interface PfNameVersion {
32 public String getName();
34 public void setName(final String name);
36 public String getVersion();
38 public void setVersion(final String version);
41 * COmpare two name version implementation objects.
43 * @param left the left name/version implementation
44 * @param right the right name/version implementation
45 * @return the comparison resilt
47 public default int compareNameVersion(final PfNameVersion left, final PfNameVersion right) {
48 if (left == null && right == null) {
60 int result = ObjectUtils.compare(left.getName(), right.getName());
65 if (left.getVersion() == null && right.getVersion() == null) {
69 if (left.getVersion() == null) {
73 if (right.getVersion() == null) {
76 return new Version(left.getVersion()).compareTo(new Version(right.getVersion()));