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%2FJpaToscaTopologyTemplate.java;h=30152df103b620384608c456f3c39b44b08edd5d;hb=refs%2Fchanges%2F05%2F136005%2F1;hp=538680f5fc5b295df8001f4264e9e87a9fcbc839;hpb=6345dce40405740dc09176c45dae03baeb939b8e;p=policy%2Fmodels.git diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaTopologyTemplate.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaTopologyTemplate.java index 538680f5f..30152df10 100644 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaTopologyTemplate.java +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaTopologyTemplate.java @@ -1,7 +1,7 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019-2020 Nordix Foundation. - * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019-2020, 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. @@ -22,34 +22,37 @@ package org.onap.policy.models.tosca.simple.concepts; import com.google.gson.annotations.SerializedName; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.ElementCollection; +import jakarta.persistence.EmbeddedId; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Inheritance; +import jakarta.persistence.InheritanceType; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.JoinColumns; +import jakarta.persistence.Lob; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import java.io.Serial; import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.ElementCollection; -import javax.persistence.EmbeddedId; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.Inheritance; -import javax.persistence.InheritanceType; -import javax.persistence.JoinColumn; -import javax.persistence.JoinColumns; -import javax.persistence.Lob; -import javax.persistence.OneToOne; -import javax.persistence.Table; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NonNull; import org.apache.commons.lang3.ObjectUtils; -import org.onap.policy.common.parameters.BeanValidationResult; +import org.onap.policy.common.parameters.annotations.NotBlank; +import org.onap.policy.common.parameters.annotations.NotNull; +import org.onap.policy.common.parameters.annotations.Valid; import org.onap.policy.models.base.PfAuthorative; import org.onap.policy.models.base.PfConcept; import org.onap.policy.models.base.PfKey; import org.onap.policy.models.base.PfReferenceKey; import org.onap.policy.models.base.PfUtils; -import org.onap.policy.models.base.Validated; +import org.onap.policy.models.base.validation.annotations.VerifyKey; import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate; import org.onap.policy.models.tosca.authorative.concepts.ToscaParameter; import org.onap.policy.models.tosca.authorative.concepts.ToscaTopologyTemplate; @@ -66,39 +69,35 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaTopologyTemplate; @Data @EqualsAndHashCode(callSuper = false) public class JpaToscaTopologyTemplate extends PfConcept implements PfAuthorative { + @Serial private static final long serialVersionUID = 8969698734673232603L; public static final String DEFAULT_LOCAL_NAME = "ToscaTopologyTemplateSimple"; @EmbeddedId + @VerifyKey + @NotNull private PfReferenceKey key; @Column(name = "description") + @NotBlank private String description; - // @formatter:off @ElementCollection @Lob - private Map inputs; + private Map<@NotNull String, @NotNull @Valid JpaToscaParameter> inputs; @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true) - @JoinColumns( - { - @JoinColumn(name = "nodeTemplatesName", referencedColumnName = "name"), - @JoinColumn(name = "nodeTemplatessVersion", referencedColumnName = "version") - } - ) + @JoinColumn(name = "nodeTemplatesName", referencedColumnName = "name") + @JoinColumn(name = "nodeTemplatessVersion", referencedColumnName = "version") @SerializedName("data_types") + @Valid private JpaToscaNodeTemplates nodeTemplates; @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true) - @JoinColumns( - { - @JoinColumn(name = "policyName", referencedColumnName = "name"), - @JoinColumn(name = "policyVersion", referencedColumnName = "version") - } - ) - // @formatter:on + @JoinColumn(name = "policyName", referencedColumnName = "name") + @JoinColumn(name = "policyVersion", referencedColumnName = "version") + @Valid private JpaToscaPolicies policies; /** @@ -106,7 +105,7 @@ public class JpaToscaTopologyTemplate extends PfConcept implements PfAuthorative */ public JpaToscaTopologyTemplate() { this(new PfReferenceKey(JpaToscaServiceTemplate.DEFAULT_NAME, JpaToscaServiceTemplate.DEFAULT_VERSION, - DEFAULT_LOCAL_NAME)); + DEFAULT_LOCAL_NAME)); } /** @@ -129,7 +128,7 @@ public class JpaToscaTopologyTemplate extends PfConcept implements PfAuthorative this.description = copyConcept.description; this.inputs = PfUtils.mapMap(copyConcept.inputs, JpaToscaParameter::new); this.nodeTemplates = - (copyConcept.nodeTemplates != null ? new JpaToscaNodeTemplates(copyConcept.nodeTemplates) : null); + (copyConcept.nodeTemplates != null ? new JpaToscaNodeTemplates(copyConcept.nodeTemplates) : null); this.policies = (copyConcept.policies != null ? new JpaToscaPolicies(copyConcept.policies) : null); } @@ -144,7 +143,7 @@ public class JpaToscaTopologyTemplate extends PfConcept implements PfAuthorative @Override public ToscaTopologyTemplate toAuthorative() { - final ToscaTopologyTemplate toscaTopologyTemplate = new ToscaTopologyTemplate(); + final var toscaTopologyTemplate = new ToscaTopologyTemplate(); toscaTopologyTemplate.setDescription(description); @@ -180,7 +179,7 @@ public class JpaToscaTopologyTemplate extends PfConcept implements PfAuthorative if (toscaTopologyTemplate.getInputs() != null) { inputs = new LinkedHashMap<>(); for (Map.Entry toscaInputEntry : toscaTopologyTemplate.getInputs().entrySet()) { - JpaToscaParameter jpaInput = new JpaToscaParameter(toscaInputEntry.getValue()); + var jpaInput = new JpaToscaParameter(toscaInputEntry.getValue()); jpaInput.setKey(new PfReferenceKey(getKey(), toscaInputEntry.getKey())); inputs.put(toscaInputEntry.getKey(), jpaInput); } @@ -239,21 +238,6 @@ public class JpaToscaTopologyTemplate extends PfConcept implements PfAuthorative } } - @Override - public BeanValidationResult validate(@NonNull String fieldName) { - BeanValidationResult result = new BeanValidationResult(fieldName, this); - - result.addResult(validateKeyNotNull("key", key)); - result.addResult(validateNotBlank("description", description, false)); - - validateMap(result, "inputs", inputs, Validated::validateEntryValueNotNull); - - validateOptional(result, "nodeTemplates", nodeTemplates); - validateOptional(result, "policies", policies); - - return result; - } - @Override public int compareTo(final PfConcept otherConcept) { int result = compareToWithoutEntities(otherConcept);