X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-tosca%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Ftosca%2Fsimple%2Fconcepts%2FJpaToscaPolicyTypes.java;h=00a6d6b50b66291865b89d983c880a7b1fa8a205;hb=88bcb550c2efd5e43ad3d256fe075a6bf7e90538;hp=ce3a8130d11e4e5f580fbc289430f19509acf72d;hpb=66e8e039cdfe540c065c34d6a21412f1bf5305f2;p=policy%2Fmodels.git diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaPolicyTypes.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaPolicyTypes.java index ce3a8130d..00a6d6b50 100644 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaPolicyTypes.java +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaPolicyTypes.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. + * Copyright (C) 2019-2020 Nordix Foundation. + * Modifications Copyright (C) 2019 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,6 +21,7 @@ package org.onap.policy.models.tosca.simple.concepts; +import java.util.List; import java.util.Map; import java.util.TreeMap; @@ -30,9 +32,14 @@ import javax.persistence.Table; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.NonNull; +import lombok.ToString; import org.onap.policy.models.base.PfConceptContainer; import org.onap.policy.models.base.PfConceptKey; +import org.onap.policy.models.base.PfValidationResult; +import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType; +import org.onap.policy.models.tosca.utils.ToscaUtils; /** * This class is a container for TOSCA policy types. @@ -43,24 +50,25 @@ import org.onap.policy.models.base.PfConceptKey; @Table(name = "ToscaPolicyTypes") @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) @Data +@ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) -public class JpaToscaPolicyTypes extends PfConceptContainer { +public class JpaToscaPolicyTypes extends PfConceptContainer { private static final long serialVersionUID = -4157979965271220098L; public static final String DEFAULT_NAME = "ToscaPolicyTypesSimple"; public static final String DEFAULT_VERSION = "1.0.0"; /** - * The Default Constructor creates a {@link JpaToscaPolicyTypes} object with a null artifact key - * and creates an empty concept map. + * The Default Constructor creates a {@link JpaToscaPolicyTypes} object with a null artifact key and creates an + * empty concept map. */ public JpaToscaPolicyTypes() { super(new PfConceptKey(DEFAULT_NAME, DEFAULT_VERSION)); } /** - * The Key Constructor creates a {@link JpaToscaPolicyTypes} object with the given artifact key and - * creates an empty concept map. + * The Key Constructor creates a {@link JpaToscaPolicyTypes} object with the given artifact key and creates an empty + * concept map. * * @param key the concept key */ @@ -86,4 +94,26 @@ public class JpaToscaPolicyTypes extends PfConceptContainer public JpaToscaPolicyTypes(final JpaToscaPolicyTypes copyConcept) { super(copyConcept); } + + /** + * Authorative constructor. + * + * @param authorativeConceptMapList the authorative concept to copy from + */ + public JpaToscaPolicyTypes(final List> authorativeConceptMapList) { + super(new PfConceptKey(DEFAULT_NAME, DEFAULT_VERSION)); + this.fromAuthorative(authorativeConceptMapList); + } + + @Override + public PfValidationResult validate(@NonNull final PfValidationResult resultIn) { + PfValidationResult result = super.validate(resultIn); + + // Check that all ancestors of this policy type exist + for (JpaToscaPolicyType policyType : this.getConceptMap().values()) { + ToscaUtils.getEntityTypeAncestors(this, policyType, result); + } + + return result; + } }