diff options
Diffstat (limited to 'models-pdp/src/main')
4 files changed, 152 insertions, 59 deletions
diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyIdent.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyIdent.java index 6d6b6fedd..a62d90090 100644 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyIdent.java +++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyIdent.java @@ -20,31 +20,31 @@ package org.onap.policy.models.pdp.concepts; +import lombok.Data; import lombok.NoArgsConstructor; import lombok.NonNull; -import org.onap.policy.models.base.PfConceptKey; -import org.onap.policy.models.base.PfValidationResult; -import org.onap.policy.models.base.Validated; /** * Identifies a policy. Both the name and version must be non-null. */ -@NonNull +@Data @NoArgsConstructor -public class PolicyIdent extends PfConceptKey { - private static final long serialVersionUID = 1L; - private static final Validated validator = new Validated(); +public class PolicyIdent { - public PolicyIdent(String name, String version) { - super(name, version); - } + @NonNull + private String name; - public PolicyIdent(PolicyIdent source) { - super(source); + @NonNull + private String version; + + + public PolicyIdent(@NonNull String name, @NonNull String version) { + this.name = name; + this.version = version; } - @Override - public PfValidationResult validate(PfValidationResult result) { - return super.validate(validator.validateNotNull(this, result)); + public PolicyIdent(PolicyIdent source) { + this.name = source.name; + this.version = source.version; } } diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyIdentOptVersion.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyIdentOptVersion.java index a68a271f2..f86a3c46d 100644 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyIdentOptVersion.java +++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyIdentOptVersion.java @@ -20,42 +20,39 @@ package org.onap.policy.models.pdp.concepts; +import lombok.Data; import lombok.NoArgsConstructor; import lombok.NonNull; -import org.onap.policy.models.base.PfConceptKey; -import org.onap.policy.models.base.PfKey; -import org.onap.policy.models.base.PfValidationResult; -import org.onap.policy.models.base.Validated; /** * Policy identifier with an optional version; only the "name" is required. */ -@NonNull +@Data @NoArgsConstructor -public class PolicyIdentOptVersion extends PfConceptKey { - private static final long serialVersionUID = 1L; - private static final Validated validator = new Validated(); +public class PolicyIdentOptVersion { + @NonNull + private String name; + + private String version; + + + public PolicyIdentOptVersion(@NonNull String name, String version) { + this.name = name; + this.version = version; + } public PolicyIdentOptVersion(PolicyIdentOptVersion source) { - super(source); + this.name = source.name; + this.version = source.version; } /** - * Validates the object. + * Determines if the version is null/missing. * - * @param resultIn where to place any errors - * @return a validation result + * @return {@code true} if the version is null/missing, {@code false} */ - public PfValidationResult validate(@NonNull final PfValidationResult resultIn) { - PfValidationResult result = resultIn; - - String name = getName(); - if (PfConceptKey.NULL_KEY_NAME.equals(name)) { - validator.addError(this, "name", result, "null"); - } - result = validator.validateText(this, "name", name, PfKey.NAME_REGEXP, result); - - return validator.validateText(this, "version", getVersion(), PfKey.VERSION_REGEXP, result); + public boolean isNullVersion() { + return (version == null); } } diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyTypeIdent.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyTypeIdent.java index ef67de86e..44ca168f5 100644 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyTypeIdent.java +++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyTypeIdent.java @@ -20,31 +20,31 @@ package org.onap.policy.models.pdp.concepts; +import lombok.Data; import lombok.NoArgsConstructor; import lombok.NonNull; -import org.onap.policy.models.base.PfConceptKey; -import org.onap.policy.models.base.PfValidationResult; -import org.onap.policy.models.base.Validated; /** * Identifies a policy type. Both the name and version must be non-null. */ -@NonNull +@Data @NoArgsConstructor -public class PolicyTypeIdent extends PfConceptKey { - private static final long serialVersionUID = 1L; - private static final Validated validator = new Validated(); +public class PolicyTypeIdent { - public PolicyTypeIdent(String name, String version) { - super(name, version); - } + @NonNull + private String name; - public PolicyTypeIdent(PolicyTypeIdent source) { - super(source); + @NonNull + private String version; + + + public PolicyTypeIdent(@NonNull String name, @NonNull String version) { + this.name = name; + this.version = version; } - @Override - public PfValidationResult validate(PfValidationResult result) { - return super.validate(validator.validateNotNull(this, result)); + public PolicyTypeIdent(PolicyTypeIdent source) { + this.name = source.name; + this.version = source.version; } } diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java index fe0576dfe..6af2d211b 100644 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java +++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java @@ -20,11 +20,21 @@ package org.onap.policy.models.pdp.persistence.provider; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + import lombok.NonNull; +import org.apache.commons.lang3.tuple.Pair; import org.onap.policy.models.base.PfModelException; import org.onap.policy.models.dao.PfDao; +import org.onap.policy.models.pdp.concepts.PdpGroup; import org.onap.policy.models.pdp.concepts.PdpGroups; +import org.onap.policy.models.pdp.concepts.PdpStatistics; +import org.onap.policy.models.pdp.concepts.PdpSubGroup; +import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; /** * This class provides the provision of information on PAP concepts in the database to callers. @@ -36,16 +46,42 @@ public class PdpProvider { * Get PDP groups. * * @param dao the DAO to use to access the database - * @param pdpGroupFilter a filter for the get + * @param name the name of the policy to get, null to get all PDP groups + * @param version the version of the policy to get, null to get all versions of a PDP group * @return the PDP groups found * @throws PfModelException on errors getting PDP groups */ - public PdpGroups getPdpGroups(@NonNull final PfDao dao, @NonNull final String pdpGroupFilter) + public PdpGroups getPdpGroups(@NonNull final PfDao dao, final String name, final String version) throws PfModelException { return new PdpGroups(); } /** + * Get latest PDP Groups. + * + * @param dao the DAO to use to access the database + * @param name the name of the PDP group to get, null to get all PDP groups + * @return the PDP groups found + * @throws PfModelException on errors getting policies + */ + public PdpGroups getLatestPdpGroups(@NonNull final PfDao dao, final String name) throws PfModelException { + return new PdpGroups(); + } + + /** + * Get a filtered list of PDP groups. + * + * @param dao the DAO to use to access the database + * @param pdpType The PDP type filter for the returned PDP groups + * @param supportedPolicyTypes a list of policy type name/version pairs that the PDP groups must support. + * @return the PDP groups found + */ + public PdpGroups getFilteredPdpGroups(@NonNull final PfDao dao, @NonNull final String pdpType, + @NonNull final List<Pair<String, String>> supportedPolicyTypes) { + return new PdpGroups(); + } + + /** * Creates PDP groups. * * @param dao the DAO to use to access the database @@ -71,16 +107,76 @@ public class PdpProvider { return new PdpGroups(); } + + /** + * Update a PDP subgroup. + * + * @param dao the DAO to use to access the database + * @param pdpGroupName the name of the PDP group of the PDP subgroup + * @param pdpGroupVersion the version of the PDP group of the PDP subgroup + * @param pdpSubGroup the PDP subgroup to be updated + * @throws PfModelException on errors updating PDP subgroups + */ + public void updatePdpSubGroup(@NonNull final PfDao dao, @NonNull final String pdpGroupName, + @NonNull final String pdpGroupVersion, @NonNull final PdpSubGroup pdpSubGroup) throws PfModelException { + // Not implemented yet + } + /** - * Delete PDP groups. + * Delete a PDP group. * * @param dao the DAO to use to access the database - * @param pdpGroupFilter a filter for the get - * @return the PDP groups deleted + * @param name the name of the policy to get, null to get all PDP groups + * @param version the version of the policy to get, null to get all versions of a PDP group + * @return the PDP group deleted * @throws PfModelException on errors deleting PDP groups */ - public PdpGroups deletePdpGroups(@NonNull final PfDao dao, @NonNull final String pdpGroupFilter) + public PdpGroup deletePdpGroup(@NonNull final PfDao dao, @NonNull final String name, @NonNull final String version) throws PfModelException { - return new PdpGroups(); + return new PdpGroup(); + + } + + /** + * Get PDP statistics. + * + * @param dao the DAO to use to access the database + * @param name the name of the PDP group to get statistics for, null to get all PDP groups + * @param version the version of the PDP group to get statistics for, null to get all versions of a PDP group + * @return the statistics found + * @throws PfModelException on errors getting statistics + */ + public List<PdpStatistics> getPdpStatistics(@NonNull final PfDao dao, final String name, final String version) + throws PfModelException { + return new ArrayList<>(); + } + + /** + * Update PDP statistics for a PDP. + * + * @param dao the DAO to use to access the database + * @param pdpGroupName the name of the PDP group containing the PDP that the statistics are for + * @param pdpGroupVersion the version of the PDP group containing the PDP that the statistics are for + * @param pdpType the PDP type of the subgroup containing the PDP that the statistics are for + * @param pdpInstanceId the instance ID of the PDP to update statistics for + * @throws PfModelException on errors updating statistics + */ + public void updatePdpStatistics(@NonNull final PfDao dao, @NonNull final String pdpGroupName, + @NonNull final String pdpGroupVersion, @NonNull final String pdpType, @NonNull final String pdpInstanceId, + @NonNull final PdpStatistics pdppStatistics) throws PfModelException { + // Not implemented yet + } + + /** + * Get deployed policies. + * + * @param dao the DAO to use to access the database + * @param name the name of the policy to get, null to get all policies + * @return the policies deployed as a map of policy lists keyed by PDP group + * @throws PfModelException on errors getting policies + */ + public Map<PdpGroup, List<ToscaPolicy>> getDeployedPolicyList(@NonNull final PfDao dao, final String name) + throws PfModelException { + return new LinkedHashMap<>(); } } |