aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementCollaborationStore.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementCollaborationStore.java')
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementCollaborationStore.java42
1 files changed, 28 insertions, 14 deletions
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementCollaborationStore.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementCollaborationStore.java
index 76b0a900c1..ac103c0fbf 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementCollaborationStore.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementCollaborationStore.java
@@ -11,17 +11,20 @@ import org.openecomp.core.zusammen.plugin.dao.ElementRepository;
import org.openecomp.core.zusammen.plugin.dao.ElementRepositoryFactory;
import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashSet;
-import java.util.Objects;
import java.util.Optional;
-import java.util.stream.Collectors;
+import static org.openecomp.core.zusammen.plugin.ZusammenPluginUtil.getCollaborationElement;
import static org.openecomp.core.zusammen.plugin.ZusammenPluginUtil.getSpaceName;
public class ElementCollaborationStore {
+ private static final String SUB_ELEMENT_NOT_EXIST_ERROR_MSG =
+ "List sub elements error: item %s, version %s - " +
+ "element %s, which appears as sub element of element %s, does not exist";
+
public Collection<CollaborationElement> listElements(SessionContext context,
ElementContext elementContext,
Id elementId) {
@@ -33,14 +36,26 @@ public class ElementCollaborationStore {
}
ElementRepository elementRepository = getElementRepository(context);
- return elementRepository.get(context, elementEntityContext, new ElementEntity(elementId))
- .map(ElementEntity::getSubElementIds).orElse(new HashSet<>()).stream()
- .map(subElementId -> elementRepository
- .get(context, elementEntityContext, new ElementEntity(subElementId)).get())
- .filter(Objects::nonNull)
- .map(subElement -> ZusammenPluginUtil
- .getCollaborationElement(elementEntityContext, subElement))
- .collect(Collectors.toList());
+ String elementIdValue = elementId.getValue();
+ String versionIdValue = elementContext.getChangeRef() == null
+ ? elementContext.getVersionId().getValue()
+ : elementContext.getChangeRef();
+ Collection<CollaborationElement> subElements = new ArrayList<>();
+
+ Optional<ElementEntity> element =
+ elementRepository.get(context, elementEntityContext, new ElementEntity(elementId));
+ if (element.isPresent() && element.get().getSubElementIds() != null) {
+ for (Id subElementId : element.get().getSubElementIds()) {
+ ElementEntity subElement =
+ elementRepository.get(context, elementEntityContext, new ElementEntity(subElementId))
+ .orElseThrow(
+ () -> new IllegalStateException(String.format(SUB_ELEMENT_NOT_EXIST_ERROR_MSG,
+ elementContext.getItemId().getValue(), versionIdValue,
+ subElementId.getValue(), elementIdValue)));
+ subElements.add(getCollaborationElement(elementEntityContext, subElement));
+ }
+ }
+ return subElements;
}
public CollaborationElement getElement(SessionContext context, ElementContext elementContext,
@@ -49,8 +64,7 @@ public class ElementCollaborationStore {
new ElementEntityContext(ZusammenPluginUtil.getPrivateSpaceName(context), elementContext);
return getElementRepository(context)
.get(context, elementEntityContext, new ElementEntity(elementId))
- .map(elementEntity -> ZusammenPluginUtil
- .getCollaborationElement(elementEntityContext, elementEntity))
+ .map(elementEntity -> getCollaborationElement(elementEntityContext, elementEntity))
.orElse(null);
}
@@ -78,7 +92,7 @@ public class ElementCollaborationStore {
ZusammenPluginUtil.getElementEntity(element));
}
- public boolean checkHealth(SessionContext sessionContext){
+ public boolean checkHealth(SessionContext sessionContext) {
return getElementRepository(sessionContext).checkHealth(sessionContext);
}