aboutsummaryrefslogtreecommitdiffstats
path: root/cps-ri/src/main/java/org/onap/cps/spi/entities/FragmentEntityArranger.java
diff options
context:
space:
mode:
Diffstat (limited to 'cps-ri/src/main/java/org/onap/cps/spi/entities/FragmentEntityArranger.java')
-rw-r--r--cps-ri/src/main/java/org/onap/cps/spi/entities/FragmentEntityArranger.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/cps-ri/src/main/java/org/onap/cps/spi/entities/FragmentEntityArranger.java b/cps-ri/src/main/java/org/onap/cps/spi/entities/FragmentEntityArranger.java
index 55d3c7e87..a33c8d055 100644
--- a/cps-ri/src/main/java/org/onap/cps/spi/entities/FragmentEntityArranger.java
+++ b/cps-ri/src/main/java/org/onap/cps/spi/entities/FragmentEntityArranger.java
@@ -1,6 +1,7 @@
/*
* ============LICENSE_START=======================================================
* Copyright (C) 2022 Nordix Foundation
+ * Modifications Copyright (C) 2023 TechMahindra Ltd.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -47,6 +48,25 @@ public class FragmentEntityArranger {
return reuniteChildrenWithTheirParents(fragmentEntityPerId);
}
+ /**
+ * Convert a collection of (related) FragmentExtracts into FragmentEntities (trees) with descendants.
+ *
+ * @param fragmentExtracts FragmentExtracts to convert.
+ * @param fragmentExtractAnchorMap Map of fragmentExtract with their anchor.
+ * @return a collection of FragmentEntities (trees) with descendants.
+ */
+ public static Collection<FragmentEntity> toFragmentEntityTreesAcrossAnchors(
+ final Collection<FragmentExtract> fragmentExtracts,
+ final Map<Long, AnchorEntity> fragmentExtractAnchorMap) {
+ final Map<Long, FragmentEntity> fragmentEntityPerId = new HashMap<>();
+ for (final FragmentExtract fragmentExtract : fragmentExtracts) {
+ final AnchorEntity anchorEntity = fragmentExtractAnchorMap.get(fragmentExtract.getId());
+ final FragmentEntity fragmentEntity = toFragmentEntity(anchorEntity, fragmentExtract);
+ fragmentEntityPerId.put(fragmentEntity.getId(), fragmentEntity);
+ }
+ return reuniteChildrenWithTheirParents(fragmentEntityPerId);
+ }
+
private static FragmentEntity toFragmentEntity(final AnchorEntity anchorEntity,
final FragmentExtract fragmentExtract) {
final FragmentEntity fragmentEntity = new FragmentEntity();