summaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CompositionBusinessLogic.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CompositionBusinessLogic.java')
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CompositionBusinessLogic.java52
1 files changed, 23 insertions, 29 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CompositionBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CompositionBusinessLogic.java
index b591c9e1b9..fa39cf0dca 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CompositionBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CompositionBusinessLogic.java
@@ -20,16 +20,8 @@
package org.openecomp.sdc.be.components.impl;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Optional;
-import java.util.Set;
-import java.util.stream.Collectors;
-
import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.OriginTypeEnum;
import org.openecomp.sdc.be.model.ComponentInstance;
@@ -39,7 +31,10 @@ import org.openecomp.sdc.exception.ResponseFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
-import fj.data.Either;
+import java.util.*;
+import java.util.Collection;
+import java.util.Map.Entry;
+import java.util.stream.Collectors;
/**
* This class holds the logic of arranging resource instance on the canvas for imported VF
@@ -63,25 +58,24 @@ public class CompositionBusinessLogic {
LEFT, RIGHT, UP, DOWN
};
- protected Either<List<ComponentInstance>, ResponseFormat> setPositionsForComponentInstances(Resource resource, String userId) {
- Either<List<ComponentInstance>, ResponseFormat> result = Either.left(resource.getComponentInstances());
-
+ protected void setPositionsForComponentInstances(Resource resource, String userId) {
boolean isNotAllPositionsCalculated = resource.getComponentInstances() == null
- || resource.getComponentInstances().stream().filter(p -> (p.getPosX() == null || p.getPosX().isEmpty()) || (p.getPosY() == null || p.getPosY().isEmpty())).findAny().isPresent();
-
+ || resource.getComponentInstances().stream().anyMatch(p -> (p.getPosX() == null || p.getPosX().isEmpty()) || (p.getPosY() == null || p.getPosY().isEmpty()));
if (isNotAllPositionsCalculated && resource.getComponentInstances() != null) {
// Arrange Icons In Spiral Pattern
Map<ImmutablePair<Double, Double>, ComponentInstance> componentInstanceLocations = buildSpiralPatternPositioningForComponentInstances(resource);
-
// Set Relative Locations According to Canvas Size
- componentInstanceLocations.entrySet().stream().forEach(e -> setRelativePosition(e));
-
+ componentInstanceLocations.entrySet().forEach(this::setRelativePosition);
// Update in DB
- result = componentInstanceBusinessLogic.updateComponentInstance(ComponentTypeEnum.RESOURCE_PARAM_NAME, resource.getUniqueId(), userId, resource.getComponentInstances(), false, false);
-
+ componentInstanceBusinessLogic.updateComponentInstance(ComponentTypeEnum.RESOURCE_PARAM_NAME,resource.getUniqueId(),
+ userId, resource.getComponentInstances(), false)
+ .left()
+ .on(this::throwComponentException);
}
- return result;
+ }
+ private List<ComponentInstance> throwComponentException(ResponseFormat responseFormat) {
+ throw new ComponentException(responseFormat);
}
private void setRelativePosition(Entry<ImmutablePair<Double, Double>, ComponentInstance> entry) {
@@ -128,7 +122,7 @@ public class CompositionBusinessLogic {
componentInstances.addAll(resource.getComponentInstances());
Map<ComponentInstance, List<ComponentInstance>> connectededCps = getCpsConnectedToVFC(componentInstances, resource);
// Remove all cp that are connected from the list
- componentInstances.removeAll(connectededCps.values().stream().flatMap(e -> e.stream()).collect(Collectors.toList()));
+ componentInstances.removeAll(connectededCps.values().stream().flatMap(Collection::stream).collect(Collectors.toList()));
buildSpiralPatternForMajorComponents(componentInstanceLocations, componentInstances);
buildCirclePatternForCps(componentInstanceLocations, connectededCps);
@@ -154,7 +148,7 @@ public class CompositionBusinessLogic {
for (ComponentInstance currCp : cpsGroup) {
double cpXposition = xCenter + CompositionBusinessLogic.CP_RADIUS_FACTOR * Math.cos(currentAngle);
double cpYposition = yCenter + CompositionBusinessLogic.CP_RADIUS_FACTOR * Math.sin(currentAngle);
- componentInstLocations.put(new ImmutablePair<Double, Double>(cpXposition, cpYposition), currCp);
+ componentInstLocations.put(new ImmutablePair<>(cpXposition, cpYposition), currCp);
currentAngle += angleBetweenCps;
}
@@ -168,9 +162,9 @@ public class CompositionBusinessLogic {
for (ComponentInstance curr : componentInstances) {
elementsCounter++;
if (elementsCounter == 1) {
- currPlacement = new ImmutablePair<Double, Double>(0D, 0D);
+ currPlacement = new ImmutablePair<>(0D, 0D);
} else if (elementsCounter == 2) {
- currPlacement = new ImmutablePair<Double, Double>(-1D, 0D);
+ currPlacement = new ImmutablePair<>(-1D, 0D);
relationToPrevElement = RelativePosition.LEFT;
} else {
relationToPrevElement = getRelativePositionForCurrentElement(componentInstanceLocations, relationToPrevElement, prevPlacement);
@@ -263,19 +257,19 @@ public class CompositionBusinessLogic {
switch (relativeLocation) {
case LEFT: {
- relativeElementPosition = new ImmutablePair<Double, Double>(currElement.getLeft() - 1, currElement.getRight());
+ relativeElementPosition = new ImmutablePair<>(currElement.getLeft() - 1, currElement.getRight());
break;
}
case RIGHT: {
- relativeElementPosition = new ImmutablePair<Double, Double>(currElement.getLeft() + 1, currElement.getRight());
+ relativeElementPosition = new ImmutablePair<>(currElement.getLeft() + 1, currElement.getRight());
break;
}
case UP: {
- relativeElementPosition = new ImmutablePair<Double, Double>(currElement.getLeft(), currElement.getRight() + 1);
+ relativeElementPosition = new ImmutablePair<>(currElement.getLeft(), currElement.getRight() + 1);
break;
}
case DOWN: {
- relativeElementPosition = new ImmutablePair<Double, Double>(currElement.getLeft(), currElement.getRight() - 1);
+ relativeElementPosition = new ImmutablePair<>(currElement.getLeft(), currElement.getRight() - 1);
break;
}
default: {