/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation.
+ * Copyright (C) 2019-2020, 2023 Nordix Foundation.
+ * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2022 Bell Canada. 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.
package org.onap.policy.models.tosca.simple.concepts;
+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.JoinColumns;
+import jakarta.persistence.OneToOne;
+import jakarta.persistence.Table;
import java.util.List;
-
-import javax.persistence.CascadeType;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Inheritance;
-import javax.persistence.InheritanceType;
-import javax.persistence.OneToOne;
-import javax.persistence.Table;
-
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NonNull;
-
-import org.onap.policy.common.utils.validation.Assertions;
+import org.onap.policy.common.parameters.annotations.Valid;
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.PfModel;
import org.onap.policy.models.base.PfModelService;
-import org.onap.policy.models.base.PfValidationResult;
/**
- * A container class for a TOSCA model with multiple service templates. This class is a container
- * class that allows a model with many service templates to be constructed that contains a well
- * formed overall TOSCA model.
+ * A container class for a TOSCA model with multiple service templates. This class is a container class that allows a
+ * model with many service templates to be constructed that contains a well-formed overall TOSCA model.
*
* <p>Validation runs {@link JpaToscaModel} validation on the model and all its sub concepts.
*/
private static final long serialVersionUID = 8800599637708309945L;
@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
+ @JoinColumn(name = "serviceTemplatesName", referencedColumnName = "name")
+ @JoinColumn(name = "serviceTemplatesVersion", referencedColumnName = "version")
+ @Valid
private JpaToscaServiceTemplates serviceTemplates;
/**
- * The Default Constructor creates a {@link JpaToscaModel} object with a null concept key and
- * creates an empty TOSCA model.
+ * The Default Constructor creates a {@link JpaToscaModel} object with a null concept key and creates an empty TOSCA
+ * model.
*/
public JpaToscaModel() {
this(new PfConceptKey());
}
/**
- * The Key Constructor creates a {@link JpaToscaModel} object with the given concept key and
- * creates an empty TOSCA model.
+ * The Key Constructor creates a {@link JpaToscaModel} object with the given concept key and creates an empty TOSCA
+ * model.
*
* @param key the TOSCA model key
*/
*/
public JpaToscaModel(@NonNull final JpaToscaModel copyConcept) {
super(copyConcept);
+ this.serviceTemplates = new JpaToscaServiceTemplates(copyConcept.serviceTemplates);
}
@Override
serviceTemplates.clean();
}
- @Override
- public PfValidationResult validate(@NonNull final PfValidationResult resultIn) {
- PfValidationResult result = super.validate(resultIn);
-
- return serviceTemplates.validate(result);
- }
-
@Override
public int compareTo(final PfConcept otherConcept) {
if (otherConcept == null) {
}
final JpaToscaModel other = (JpaToscaModel) otherConcept;
- if (!super.equals(other)) {
- return super.compareTo(other);
+ int result = super.compareTo(other);
+ if (result != 0) {
+ return result;
}
return serviceTemplates.compareTo(other.serviceTemplates);
}
-
- @Override
- public PfConcept copyTo(@NonNull final PfConcept targetObject) {
- Assertions.instanceOf(targetObject, JpaToscaModel.class);
-
- final JpaToscaModel copy = ((JpaToscaModel) targetObject);
- super.copyTo(targetObject);
- copy.setServiceTemplates(new JpaToscaServiceTemplates(serviceTemplates));
-
- return copy;
- }
}