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%2FJpaToscaNodeType.java;h=a7342d2f86c82657b4079c49a856d9c68ad90acf;hb=refs%2Fchanges%2F05%2F136005%2F1;hp=86be4b318917cd60218cdb7abb42eb51e92e60c3;hpb=b07dd8a325f55d03f4dfec511ecd096429b4c7b0;p=policy%2Fmodels.git diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaNodeType.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaNodeType.java index 86be4b318..a7342d2f8 100644 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaNodeType.java +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaNodeType.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. + * Copyright (C) 2020, 2023 Nordix Foundation. * Modifications Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -21,40 +21,27 @@ package org.onap.policy.models.tosca.simple.concepts; -import java.util.Collection; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Inheritance; +import jakarta.persistence.InheritanceType; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import java.io.Serial; import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; -import javax.persistence.CascadeType; -import javax.persistence.ElementCollection; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.Inheritance; -import javax.persistence.InheritanceType; -import javax.persistence.JoinColumn; -import javax.persistence.Lob; -import javax.persistence.OneToOne; -import javax.persistence.Table; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import lombok.NonNull; -import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.onap.policy.common.parameters.BeanValidationResult; -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.PfConceptKey; 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.tosca.authorative.concepts.ToscaNodeType; -import org.onap.policy.models.tosca.authorative.concepts.ToscaProperty; -import org.onap.policy.models.tosca.utils.ToscaUtils; /** * Class to represent the node type in TOSCA definition. @@ -65,13 +52,11 @@ import org.onap.policy.models.tosca.utils.ToscaUtils; @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) @Data @EqualsAndHashCode(callSuper = true) -public class JpaToscaNodeType extends JpaToscaEntityType implements PfAuthorative { +@NoArgsConstructor +public class JpaToscaNodeType extends JpaToscaWithToscaProperties { + @Serial private static final long serialVersionUID = -563659852901842616L; - @ElementCollection - @Lob - private Map<@NotNull String, @NotNull @Valid JpaToscaProperty> properties; - // formatter:off @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true) @@ -81,13 +66,6 @@ public class JpaToscaNodeType extends JpaToscaEntityType implemen @Valid private JpaToscaRequirements requirements; - /** - * The Default Constructor creates a {@link JpaToscaNodeType} object with a null key. - */ - public JpaToscaNodeType() { - this(new PfConceptKey()); - } - /** * The Key Constructor creates a {@link JpaToscaNodeType} object with the given concept key. * @@ -104,7 +82,6 @@ public class JpaToscaNodeType extends JpaToscaEntityType implemen */ public JpaToscaNodeType(final JpaToscaNodeType copyConcept) { super(copyConcept); - this.properties = PfUtils.mapMap(copyConcept.properties, JpaToscaProperty::new); this.requirements = (copyConcept.requirements != null ? new JpaToscaRequirements(copyConcept.requirements) : null); } @@ -115,17 +92,15 @@ public class JpaToscaNodeType extends JpaToscaEntityType implemen * @param authorativeConcept the authorative concept to copy from */ public JpaToscaNodeType(final ToscaNodeType authorativeConcept) { - this.fromAuthorative(authorativeConcept); + super(authorativeConcept); } @Override public ToscaNodeType toAuthorative() { - ToscaNodeType toscaNodeType = new ToscaNodeType(); + var toscaNodeType = new ToscaNodeType(); super.setToscaEntity(toscaNodeType); super.toAuthorative(); - toscaNodeType.setProperties(PfUtils.mapMap(properties, JpaToscaProperty::toAuthorative)); - if (requirements != null) { toscaNodeType.setRequirements(requirements.toAuthorative()); } @@ -137,16 +112,6 @@ public class JpaToscaNodeType extends JpaToscaEntityType implemen public void fromAuthorative(final ToscaNodeType toscaNodeType) { super.fromAuthorative(toscaNodeType); - // Set properties - if (toscaNodeType.getProperties() != null) { - properties = new LinkedHashMap<>(); - for (Entry toscaPropertyEntry : toscaNodeType.getProperties().entrySet()) { - JpaToscaProperty jpaProperty = new JpaToscaProperty(toscaPropertyEntry.getValue()); - jpaProperty.setKey(new PfReferenceKey(getKey(), toscaPropertyEntry.getKey())); - properties.put(toscaPropertyEntry.getKey(), jpaProperty); - } - } - if (toscaNodeType.getRequirements() != null) { requirements = new JpaToscaRequirements(); requirements.fromAuthorative(toscaNodeType.getRequirements()); @@ -157,12 +122,6 @@ public class JpaToscaNodeType extends JpaToscaEntityType implemen public List getKeys() { final List keyList = super.getKeys(); - if (properties != null) { - for (JpaToscaProperty property : properties.values()) { - keyList.addAll(property.getKeys()); - } - } - if (requirements != null) { keyList.addAll(requirements.getKeys()); } @@ -174,12 +133,6 @@ public class JpaToscaNodeType extends JpaToscaEntityType implemen public void clean() { super.clean(); - if (properties != null) { - for (JpaToscaProperty property : properties.values()) { - property.clean(); - } - } - if (requirements != null) { requirements.clean(); } @@ -187,61 +140,22 @@ public class JpaToscaNodeType extends JpaToscaEntityType implemen @Override public BeanValidationResult validate(String fieldName) { - BeanValidationResult result = super.validate(fieldName); - - validateKeyVersionNotNull(result, "key", getKey()); - - return result; + return validateWithKey(fieldName); } @Override public int compareTo(final PfConcept otherConcept) { - if (otherConcept == null) { - return -1; - } if (this == otherConcept) { return 0; } - if (getClass() != otherConcept.getClass()) { - return getClass().getName().compareTo(otherConcept.getClass().getName()); - } - final JpaToscaNodeType other = (JpaToscaNodeType) otherConcept; - int result = super.compareTo(other); + int result = super.compareTo(otherConcept); if (result != 0) { return result; } - result = PfUtils.compareMaps(properties, other.properties); - if (result != 0) { - return result; - } + final JpaToscaNodeType other = (JpaToscaNodeType) otherConcept; return ObjectUtils.compare(requirements, other.requirements); } - - /** - * Get the data types referenced in a node type. - * - * @return the data types referenced in a node type - */ - public Collection getReferencedDataTypes() { - if (properties == null) { - return CollectionUtils.emptyCollection(); - } - - Set referencedDataTypes = new LinkedHashSet<>(); - - for (JpaToscaProperty property : properties.values()) { - referencedDataTypes.add(property.getType()); - - if (property.getEntrySchema() != null) { - referencedDataTypes.add(property.getEntrySchema().getType()); - } - } - - referencedDataTypes.removeAll(ToscaUtils.getPredefinedDataTypes()); - - return referencedDataTypes; - } }