diff options
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.java | 20 |
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(); |