From 9c794ad49fd4cd4a7fb63f273b8efec6431ca104 Mon Sep 17 00:00:00 2001
From: Andreas Bayha <bayha@fortiss.org>
Date: Fri, 28 Apr 2023 17:53:44 +0200
Subject: [PATCH] Product Line Analysis: Enables access to null elements of
 translation

The map if EClass to Z3 null elements can be accessed via a getter.

Issue-ref: 4240
Issue-URL: af3#4240

Signed-off-by: Andreas Bayha <bayha@fortiss.org>
---
 .../variability/analysis/ProductLineBaseAnalysis.java        | 3 ++-
 .../variability/analysis/ProductLineBaseTranslation.java     | 5 +++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/org.fortiss.variability/src/org/fortiss/variability/analysis/ProductLineBaseAnalysis.java b/org.fortiss.variability/src/org/fortiss/variability/analysis/ProductLineBaseAnalysis.java
index 3ccf3d52f..d1977a789 100644
--- a/org.fortiss.variability/src/org/fortiss/variability/analysis/ProductLineBaseAnalysis.java
+++ b/org.fortiss.variability/src/org/fortiss/variability/analysis/ProductLineBaseAnalysis.java
@@ -249,7 +249,8 @@ public class ProductLineBaseAnalysis {
 
 			FuncDecl selFun = translation.eClass2SelectionFunction.get(cls);
 			BoolExpr selected = (BoolExpr)ctx.mkApp(selFun, var);
-			BoolExpr notNull = ctx.mkNot(ctx.mkEq(var, translation.eClass2NullElement.get(cls)));
+			BoolExpr notNull =
+					ctx.mkNot(ctx.mkEq(var, translation.getEClass2NullElement().get(cls)));
 
 			selExprs[i] = ctx.mkAnd(selected, notNull);
 		}
diff --git a/org.fortiss.variability/src/org/fortiss/variability/analysis/ProductLineBaseTranslation.java b/org.fortiss.variability/src/org/fortiss/variability/analysis/ProductLineBaseTranslation.java
index 162c1fa17..a492f4f4d 100644
--- a/org.fortiss.variability/src/org/fortiss/variability/analysis/ProductLineBaseTranslation.java
+++ b/org.fortiss.variability/src/org/fortiss/variability/analysis/ProductLineBaseTranslation.java
@@ -793,4 +793,9 @@ public class ProductLineBaseTranslation {
 	public Context getContext() {
 		return ctx;
 	}
+
+	/** Returns eClass2NullElement. */
+	public Map<EClass, Expr> getEClass2NullElement() {
+		return eClass2NullElement;
+	}
 }
-- 
GitLab