aboutsummaryrefslogtreecommitdiffstats
path: root/models/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'models/src/main')
-rwxr-xr-xmodels/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/AutomationCompositionProvider.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/AutomationCompositionProvider.java b/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/AutomationCompositionProvider.java
index 6b90619c9..1ffcc1b6e 100755
--- a/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/AutomationCompositionProvider.java
+++ b/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/AutomationCompositionProvider.java
@@ -40,6 +40,8 @@ import org.onap.policy.clamp.models.acm.persistence.concepts.JpaAutomationCompos
import org.onap.policy.clamp.models.acm.persistence.repository.AutomationCompositionElementRepository;
import org.onap.policy.clamp.models.acm.persistence.repository.AutomationCompositionRepository;
import org.onap.policy.clamp.models.acm.utils.AcmUtils;
+import org.onap.policy.common.parameters.BeanValidationResult;
+import org.onap.policy.common.parameters.ValidationStatus;
import org.onap.policy.models.base.PfModelRuntimeException;
import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
import org.springframework.data.domain.Example;
@@ -225,4 +227,35 @@ public class AutomationCompositionProvider {
ProviderUtils.validate(element, jpaAcElement, "AutomationCompositionElement");
acElementRepository.save(jpaAcElement);
}
+
+ /**
+ * Validate ElementIds.
+ *
+ * @param automationComposition the AutomationComposition
+ * @return the BeanValidationResult
+ */
+ public BeanValidationResult validateElementIds(final AutomationComposition automationComposition) {
+ var result = new BeanValidationResult(
+ "UUID elements " + automationComposition.getName(), automationComposition);
+
+ var ids = automationComposition
+ .getElements().values().stream().map(AutomationCompositionElement::getId).toList();
+ var elements = acElementRepository.findAllById(ids.stream().map(UUID::toString).toList());
+ if (automationComposition.getInstanceId() == null) {
+ for (var element : elements) {
+ result.addResult(
+ element.getDescription(), element.getElementId(), ValidationStatus.INVALID, "UUID already used");
+ }
+ } else {
+ var instanceId = automationComposition.getInstanceId().toString();
+ for (var element : elements) {
+ if (!instanceId.equals(element.getInstanceId())) {
+ result.addResult(
+ element.getDescription(), element.getElementId(), ValidationStatus.INVALID,
+ "UUID already used");
+ }
+ }
+ }
+ return result;
+ }
}