X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-base%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Fbase%2FPfConcept.java;h=c8be88d22a77aadb49751127c0b44c4cba04ead7;hb=refs%2Fchanges%2F05%2F136005%2F1;hp=c41b0de56b99e49f89e7cea1a73462ed41b650b9;hpb=4c28d2cdbf03be9dfe51caa05d45ba341b4c94cd;p=policy%2Fmodels.git diff --git a/models-base/src/main/java/org/onap/policy/models/base/PfConcept.java b/models-base/src/main/java/org/onap/policy/models/base/PfConcept.java index c41b0de56..c8be88d22 100644 --- a/models-base/src/main/java/org/onap/policy/models/base/PfConcept.java +++ b/models-base/src/main/java/org/onap/policy/models/base/PfConcept.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. + * Copyright (C) 2019, 2023 Nordix Foundation. + * Modifications Copyright (C) 2019-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. @@ -20,31 +21,30 @@ package org.onap.policy.models.base; +import java.io.Serial; import java.io.Serializable; import java.util.List; - +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import lombok.NonNull; /** - * This class is the base class for all Policy Framework concept classes. It enforces implementation - * of abstract methods and interfaces on all concepts that are sub-classes of this class. + * This class is the base class for all Policy Framework concept classes. It enforces implementation of abstract methods + * and interfaces on all concepts that are subclasses of this class. */ -public abstract class PfConcept implements Serializable, Comparable { +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public abstract class PfConcept extends Validated implements Serializable, Comparable { + @Serial private static final long serialVersionUID = -7434939557282697490L; - /** - * Default constructor. - */ - public PfConcept() {} - /** * Copy constructor. * * @param copyConcept the concept to copy from */ - public PfConcept(@NonNull final PfConcept copyConcept) { - copyConcept.copyTo(this); + protected PfConcept(@NonNull final PfConcept copyConcept) { + // nothing else to do (other than @NonNull check) } /** @@ -55,25 +55,15 @@ public abstract class PfConcept implements Serializable, Comparable { public abstract PfKey getKey(); /** - * Gets a list of all keys for this concept and all concepts that are defined or referenced by - * this concept and its sub-concepts. + * Gets a list of all keys for this concept and all concepts that are defined or referenced by this concept and its + * sub-concepts. * * @return the keys used by this concept and its contained concepts */ public abstract List getKeys(); /** - * Validate that this concept is structurally correct. - * - * @param result the parameter in which the result of the validation will be returned - * @return the validation result that was passed in in the @{link result} field with the result - * of this validation added - */ - public abstract PfValidationResult validate(@NonNull final PfValidationResult result); - - /** - * Clean this concept, tidy up any superfluous information such as leading and trailing white - * space. + * Clean this concept, tidy up any superfluous information such as leading and trailing white space. */ public abstract void clean(); @@ -86,15 +76,6 @@ public abstract class PfConcept implements Serializable, Comparable { @Override public abstract int hashCode(); - /** - * Copy this concept to another object. The target object must have the same class as the source - * object. - * - * @param target the target object to which this object is copied - * @return the copied object - */ - public abstract PfConcept copyTo(@NonNull PfConcept target); - /** * Gets the ID string of this concept. * @@ -104,6 +85,24 @@ public abstract class PfConcept implements Serializable, Comparable { return getKey().getId(); } + /** + * Gets the name of this concept. + * + * @return the name of this concept + */ + public String getName() { + return getKey().getName(); + } + + /** + * Gets the version of this concept. + * + * @return the version of this concept + */ + public String getVersion() { + return getKey().getVersion(); + } + /** * Checks if this key matches the given key ID. *