summaryrefslogtreecommitdiffstats
path: root/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ComponentDependencyTracker.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ComponentDependencyTracker.java')
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ComponentDependencyTracker.java78
1 files changed, 37 insertions, 41 deletions
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ComponentDependencyTracker.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ComponentDependencyTracker.java
index 39f04d67c6..8d6546f209 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ComponentDependencyTracker.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ComponentDependencyTracker.java
@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.openecomp.sdc.vendorsoftwareproduct.utils;
import java.util.HashMap;
@@ -22,51 +21,48 @@ import java.util.Map;
import java.util.Set;
public class ComponentDependencyTracker {
- private final Map<String, Set<String>> store = new HashMap<>();
- /**
- * Add dependency.
- *
- * @param dependent the dependent
- * @param dependsOn the depends on
- */
- public void addDependency(String dependent, String dependsOn) {
- if (dependent != null && dependsOn != null && dependent.trim().length() > 0 && dependsOn.trim()
- .length() > 0) {
- Set<String> dependsOnList = store
- .computeIfAbsent(dependent.toLowerCase(), k -> new HashSet<>());
- dependsOnList.add(dependsOn.toLowerCase());
- }
- }
+ private final Map<String, Set<String>> store = new HashMap<>();
- /**
- * Is cyclic dependency present boolean.
- *
- * @return the boolean
- */
- public boolean isCyclicDependencyPresent() {
- Set<Map.Entry<String, Set<String>>> entries = store.entrySet();
- for (Map.Entry<String, Set<String>> entry : entries) {
- for (String dependentOn : entry.getValue()) {
- if (!entry.getKey().equals(dependentOn) && isCyclicDependencyPresent(entry.getKey(),
- dependentOn)) {
- return true;
+ /**
+ * Add dependency.
+ *
+ * @param dependent the dependent
+ * @param dependsOn the depends on
+ */
+ public void addDependency(String dependent, String dependsOn) {
+ if (dependent != null && dependsOn != null && dependent.trim().length() > 0 && dependsOn.trim().length() > 0) {
+ Set<String> dependsOnList = store.computeIfAbsent(dependent.toLowerCase(), k -> new HashSet<>());
+ dependsOnList.add(dependsOn.toLowerCase());
}
- }
}
- return false;
- }
- private boolean isCyclicDependencyPresent(String root, String dependentOn) {
- Set<String> dependentOnList = store.get(dependentOn);
- if (dependentOnList != null && dependentOnList.contains(root)) {
- return true;
- } else if (dependentOnList != null) {
- for (String item : dependentOnList) {
- return isCyclicDependencyPresent(root, item);
- }
+ /**
+ * Is cyclic dependency present boolean.
+ *
+ * @return the boolean
+ */
+ public boolean isCyclicDependencyPresent() {
+ Set<Map.Entry<String, Set<String>>> entries = store.entrySet();
+ for (Map.Entry<String, Set<String>> entry : entries) {
+ for (String dependentOn : entry.getValue()) {
+ if (!entry.getKey().equals(dependentOn) && isCyclicDependencyPresent(entry.getKey(), dependentOn)) {
+ return true;
+ }
+ }
+ }
+ return false;
}
- return false;
- }
+ private boolean isCyclicDependencyPresent(String root, String dependentOn) {
+ Set<String> dependentOnList = store.get(dependentOn);
+ if (dependentOnList != null && dependentOnList.contains(root)) {
+ return true;
+ } else if (dependentOnList != null) {
+ for (String item : dependentOnList) {
+ return isCyclicDependencyPresent(root, item);
+ }
+ }
+ return false;
+ }
}