From 9d4eabd9b1ecdeeb9a34e9bf2fc8ae49cb1a6384 Mon Sep 17 00:00:00 2001 From: Andreas Bayha <bayha@fortiss.org> Date: Mon, 22 Aug 2022 13:38:22 +0200 Subject: [PATCH] Kernel: Improved comments and added util Fixed review comments. Issue-ref: 4244 Issue-URL: af3#4244 Signed-off-by: Andreas Bayha <bayha@fortiss.org> --- .../org/fortiss/tooling/ext/variability/util/.ratings | 2 +- .../tooling/ext/variability/util/VariabilityUtils.java | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/org.fortiss.tooling.ext.variability/src/org/fortiss/tooling/ext/variability/util/.ratings b/org.fortiss.tooling.ext.variability/src/org/fortiss/tooling/ext/variability/util/.ratings index 0c3df2c12..0ec993944 100644 --- a/org.fortiss.tooling.ext.variability/src/org/fortiss/tooling/ext/variability/util/.ratings +++ b/org.fortiss.tooling.ext.variability/src/org/fortiss/tooling/ext/variability/util/.ratings @@ -1 +1 @@ -VariabilityUtils.java 8ac97aafcbc2409ee39a5d9ee85f234a49bb2079 RED +VariabilityUtils.java ccbcc8a13557a107608130e25880f9523b84cfba YELLOW diff --git a/org.fortiss.tooling.ext.variability/src/org/fortiss/tooling/ext/variability/util/VariabilityUtils.java b/org.fortiss.tooling.ext.variability/src/org/fortiss/tooling/ext/variability/util/VariabilityUtils.java index 8ac97aafc..ccbcc8a13 100644 --- a/org.fortiss.tooling.ext.variability/src/org/fortiss/tooling/ext/variability/util/VariabilityUtils.java +++ b/org.fortiss.tooling.ext.variability/src/org/fortiss/tooling/ext/variability/util/VariabilityUtils.java @@ -16,6 +16,7 @@ package org.fortiss.tooling.ext.variability.util; import static org.fortiss.tooling.ext.variability.model.VariabilityModelElementFactory.createOptionalVariationPointSpecification; +import static org.fortiss.tooling.kernel.utils.EcoreUtils.getFirstChildWithType; import static org.fortiss.tooling.kernel.utils.EcoreUtils.pickFirstInstanceOf; import org.eclipse.emf.ecore.EObject; @@ -71,17 +72,14 @@ public class VariabilityUtils { return true; } - // TODO (TM): Use the methods provided by the `EcoreUtils`. `isAncestor()` can replace the - // check whether the `eContainer` is `null` and `getFirstChildWithType()` can be used to see - // whether any `AbstractFeatureModel` is present. - - // Check whether the root container contains any AbstractFeatureModel + // Find the root container (usually a FileProject) EObject topLevelElem = element; while(topLevelElem.eContainer() != null) { topLevelElem = topLevelElem.eContainer(); } - return topLevelElem.eContents().stream().anyMatch(c -> c instanceof AbstractFeatureModel); + // Check whether this root container contains any AbstractFeatureModel. + return getFirstChildWithType(topLevelElem, AbstractFeatureModel.class) != null; } /** -- GitLab